summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael R <goodwillcoding@webhippo.net>2014-04-16 16:49:53 -0400
committerMichael R <goodwillcoding@webhippo.net>2014-04-16 16:49:53 -0400
commit0eff6638d2470f77bd444941cb8261d91c236591 (patch)
tree45c35121a4f8f681ead0ca893a146468d2bb12f5
parentb666df0d5f299eca20e9370ac43cddee71b6dd06 (diff)
downloadpyramid-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_tmpl4
-rw-r--r--pyramid/scaffolds/starter/+package+/views.py_tmpl5
-rw-r--r--pyramid/scripts/pcreate.py13
-rw-r--r--pyramid/tests/test_scripts/test_pcreate.py58
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