diff options
| author | Michael R <goodwillcoding@webhippo.net> | 2014-04-16 16:49:53 -0400 |
|---|---|---|
| committer | Michael R <goodwillcoding@webhippo.net> | 2014-04-16 16:49:53 -0400 |
| commit | 0eff6638d2470f77bd444941cb8261d91c236591 (patch) | |
| tree | 45c35121a4f8f681ead0ca893a146468d2bb12f5 | |
| parent | b666df0d5f299eca20e9370ac43cddee71b6dd06 (diff) | |
| download | pyramid-0eff6638d2470f77bd444941cb8261d91c236591.tar.gz pyramid-0eff6638d2470f77bd444941cb8261d91c236591.tar.bz2 pyramid-0eff6638d2470f77bd444941cb8261d91c236591.zip | |
add pyramid version and pyramid docs branch to the scaffold generation
machinery so it is available in scaffold templates, this will help
generate proper links in scaffolds and not confiuse people when
they go to documentation
| -rw-r--r-- | pyramid/scaffolds/starter/+package+/templates/mytemplate.pt_tmpl | 4 | ||||
| -rw-r--r-- | pyramid/scaffolds/starter/+package+/views.py_tmpl | 5 | ||||
| -rw-r--r-- | pyramid/scripts/pcreate.py | 13 | ||||
| -rw-r--r-- | pyramid/tests/test_scripts/test_pcreate.py | 58 |
4 files changed, 67 insertions, 13 deletions
diff --git a/pyramid/scaffolds/starter/+package+/templates/mytemplate.pt_tmpl b/pyramid/scaffolds/starter/+package+/templates/mytemplate.pt_tmpl index 76451f9b5..5f860da26 100644 --- a/pyramid/scaffolds/starter/+package+/templates/mytemplate.pt_tmpl +++ b/pyramid/scaffolds/starter/+package+/templates/mytemplate.pt_tmpl @@ -41,8 +41,8 @@ <div class="row"> <div class="links"> <ul> - <li class="current-version">Currently v1.5</li> - <li><i class="glyphicon glyphicon-bookmark icon-muted"></i><a href="http://docs.pylonsproject.org">Docs</a></li> + <li class="current-version">Currently v${pyramid_version}</li> + <li><i class="glyphicon glyphicon-bookmark icon-muted"></i><a href="http://docs.pylonsproject.org/projects/pyramid/en/${pyramid_docs_branch}/">Docs</a></li> <li><i class="glyphicon glyphicon-cog icon-muted"></i><a href="https://github.com/Pylons/pyramid">Github Project</a></li> <li><i class="glyphicon glyphicon-globe icon-muted"></i><a href="irc://irc.freenode.net#pyramid">IRC Channel</a></li> <li><i class="glyphicon glyphicon-home icon-muted"></i><a href="http://pylonsproject.org">Pylons Project</a></li> diff --git a/pyramid/scaffolds/starter/+package+/views.py_tmpl b/pyramid/scaffolds/starter/+package+/views.py_tmpl index ad9af7292..b7a50929c 100644 --- a/pyramid/scaffolds/starter/+package+/views.py_tmpl +++ b/pyramid/scaffolds/starter/+package+/views.py_tmpl @@ -3,4 +3,7 @@ from pyramid.view import view_config @view_config(route_name='home', renderer='templates/mytemplate.pt') def my_view(request): - return {'project': '{{project}}'} + return { + 'project': '{{project}}', + 'pyramid_version': '{{pyramid_version}}', + 'pyramid_docs_branch': '{{pyramid_docs_branch}}'} diff --git a/pyramid/scripts/pcreate.py b/pyramid/scripts/pcreate.py index 9a3b53b33..32cb14ab0 100644 --- a/pyramid/scripts/pcreate.py +++ b/pyramid/scripts/pcreate.py @@ -53,6 +53,8 @@ class PCreateCommand(object): action='store_true', help='When a file would be overwritten, interrogate') + pyramid_dist = pkg_resources.get_distribution("pyramid") + def __init__(self, argv, quiet=False): self.quiet = quiet self.options, self.args = self.parser.parse_args(argv[1:]) @@ -82,10 +84,21 @@ class PCreateCommand(object): pkg_name = _bad_chars_re.sub('', project_name.lower()) safe_name = pkg_resources.safe_name(project_name) egg_name = pkg_resources.to_filename(safe_name) + + # get pyramid package version + pyramid_version = self.pyramid_dist.version + # map pyramid package version of the documentation branch + if self.pyramid_dist.version[3:] == 'dev': + pyramid_docs_branch = 'latest' + else: + pyramid_docs_branch = "%s-branch" % self.pyramid_dist.version[:3] + vars = { 'project': project_name, 'package': pkg_name, 'egg': egg_name, + 'pyramid_version': pyramid_version, + 'pyramid_docs_branch': pyramid_docs_branch, } for scaffold_name in options.scaffold_name: for scaffold in self.scaffolds: diff --git a/pyramid/tests/test_scripts/test_pcreate.py b/pyramid/tests/test_scripts/test_pcreate.py index 6516ac229..c247d06b4 100644 --- a/pyramid/tests/test_scripts/test_pcreate.py +++ b/pyramid/tests/test_scripts/test_pcreate.py @@ -7,7 +7,7 @@ class TestPCreateCommand(unittest.TestCase): def out(self, msg): self.out_.write(msg) - + def _getTargetClass(self): from pyramid.scripts.pcreate import PCreateCommand return PCreateCommand @@ -25,7 +25,7 @@ class TestPCreateCommand(unittest.TestCase): self.assertEqual(result, 0) out = self.out_.getvalue() self.assertTrue(out.startswith('Available scaffolds')) - + def test_run_show_scaffolds_none_exist(self): cmd = self._makeOne('-l') cmd.scaffolds = [] @@ -33,7 +33,7 @@ class TestPCreateCommand(unittest.TestCase): self.assertEqual(result, 0) out = self.out_.getvalue() self.assertTrue(out.startswith('No scaffolds available')) - + def test_run_no_scaffold_name(self): cmd = self._makeOne() result = cmd.run() @@ -61,6 +61,7 @@ class TestPCreateCommand(unittest.TestCase): cmd = self._makeOne('-s', 'dummy', 'Distro') scaffold = DummyScaffold('dummy') cmd.scaffolds = [scaffold] + cmd.pyramid_dist = DummyDist("0.1") result = cmd.run() self.assertEqual(result, 0) self.assertEqual( @@ -69,14 +70,17 @@ class TestPCreateCommand(unittest.TestCase): ) self.assertEqual( scaffold.vars, - {'project': 'Distro', 'egg': 'Distro', 'package': 'distro'}) + {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', + 'pyramid_version': '0.1', 'pyramid_docs_branch':'0.1-branch'}) def test_known_scaffold_absolute_path(self): import os path = os.path.abspath('Distro') cmd = self._makeOne('-s', 'dummy', path) + cmd.pyramid_dist = DummyDist("0.1") scaffold = DummyScaffold('dummy') cmd.scaffolds = [scaffold] + cmd.pyramid_dist = DummyDist("0.1") result = cmd.run() self.assertEqual(result, 0) self.assertEqual( @@ -85,7 +89,8 @@ class TestPCreateCommand(unittest.TestCase): ) self.assertEqual( scaffold.vars, - {'project': 'Distro', 'egg': 'Distro', 'package': 'distro'}) + {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', + 'pyramid_version': '0.1', 'pyramid_docs_branch':'0.1-branch'}) def test_known_scaffold_multiple_rendered(self): import os @@ -93,6 +98,7 @@ class TestPCreateCommand(unittest.TestCase): scaffold1 = DummyScaffold('dummy1') scaffold2 = DummyScaffold('dummy2') cmd.scaffolds = [scaffold1, scaffold2] + cmd.pyramid_dist = DummyDist("0.1") result = cmd.run() self.assertEqual(result, 0) self.assertEqual( @@ -101,20 +107,23 @@ class TestPCreateCommand(unittest.TestCase): ) self.assertEqual( scaffold1.vars, - {'project': 'Distro', 'egg': 'Distro', 'package': 'distro'}) + {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', + 'pyramid_version': '0.1', 'pyramid_docs_branch':'0.1-branch'}) self.assertEqual( scaffold2.output_dir, os.path.normpath(os.path.join(os.getcwd(), 'Distro')) ) self.assertEqual( scaffold2.vars, - {'project': 'Distro', 'egg': 'Distro', 'package': 'distro'}) + {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', + 'pyramid_version': '0.1', 'pyramid_docs_branch':'0.1-branch'}) def test_known_scaffold_with_path_as_project_target_rendered(self): import os cmd = self._makeOne('-s', 'dummy', '/tmp/foo/Distro/') scaffold = DummyScaffold('dummy') cmd.scaffolds = [scaffold] + cmd.pyramid_dist = DummyDist("0.1") result = cmd.run() self.assertEqual(result, 0) self.assertEqual( @@ -123,8 +132,34 @@ class TestPCreateCommand(unittest.TestCase): ) self.assertEqual( scaffold.vars, - {'project': 'Distro', 'egg': 'Distro', 'package': 'distro'}) - + {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', + 'pyramid_version': '0.1', 'pyramid_docs_branch':'0.1-branch'}) + + + def test_scaffold_with_prod_pyramid_version(self): + cmd = self._makeOne('-s', 'dummy', 'Distro') + scaffold = DummyScaffold('dummy') + cmd.scaffolds = [scaffold] + cmd.pyramid_dist = DummyDist("0.2") + result = cmd.run() + self.assertEqual(result, 0) + self.assertEqual( + scaffold.vars, + {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', + 'pyramid_version': '0.2', 'pyramid_docs_branch':'0.2-branch'}) + + def test_scaffold_with_dev_pyramid_version(self): + cmd = self._makeOne('-s', 'dummy', 'Distro') + scaffold = DummyScaffold('dummy') + cmd.scaffolds = [scaffold] + cmd.pyramid_dist = DummyDist("0.2dev") + result = cmd.run() + self.assertEqual(result, 0) + self.assertEqual( + scaffold.vars, + {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', + 'pyramid_version': '0.2dev', 'pyramid_docs_branch':'latest'}) + class Test_main(unittest.TestCase): def _callFUT(self, argv): from pyramid.scripts.pcreate import main @@ -142,4 +177,7 @@ class DummyScaffold(object): self.command = command self.output_dir = output_dir self.vars = vars - + +class DummyDist(object): + def __init__(self, version): + self.version = version |
