summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgoodwillcoding <goodwillcoding@webhippo.net>2014-04-20 13:45:32 -0700
committergoodwillcoding <goodwillcoding@webhippo.net>2014-04-20 13:45:32 -0700
commite18b5f5d6a2cd73d4df99433258146856960ac50 (patch)
tree4bf53dee02a1d49ac91aa9105397d34275a5bddf
parenta89ac0a6626924099922e5c8964a9f3f5ebb460a (diff)
downloadpyramid-e18b5f5d6a2cd73d4df99433258146856960ac50.tar.gz
pyramid-e18b5f5d6a2cd73d4df99433258146856960ac50.tar.bz2
pyramid-e18b5f5d6a2cd73d4df99433258146856960ac50.zip
update the version detection to use better regex matching for version
and add more test cases
-rw-r--r--pyramid/scripts/pcreate.py15
-rw-r--r--pyramid/tests/test_scripts/test_pcreate.py37
2 files changed, 49 insertions, 3 deletions
diff --git a/pyramid/scripts/pcreate.py b/pyramid/scripts/pcreate.py
index 32cb14ab0..ffa459588 100644
--- a/pyramid/scripts/pcreate.py
+++ b/pyramid/scripts/pcreate.py
@@ -87,11 +87,20 @@ class PCreateCommand(object):
# 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'
+ # if version ends with 'dev' then docs version is latest'
+ if self.pyramid_dist.version[-3:] == 'dev':
+ pyramid_docs_branch = 'latest'
else:
- pyramid_docs_branch = "%s-branch" % self.pyramid_dist.version[:3]
+ # find the version.major version
+ major_version = re.match(r'(\d+\.\d+)', self.pyramid_dist.version)
+ # if can not find the version then default docs version to 'latest'
+ # otherwise the docs version is 'version.major_version-branch'
+ if major_version is None:
+ pyramid_docs_branch = 'latest'
+ else:
+ pyramid_docs_branch = "%s-branch" % major_version.group()
vars = {
'project': project_name,
diff --git a/pyramid/tests/test_scripts/test_pcreate.py b/pyramid/tests/test_scripts/test_pcreate.py
index c247d06b4..8c697bf2a 100644
--- a/pyramid/tests/test_scripts/test_pcreate.py
+++ b/pyramid/tests/test_scripts/test_pcreate.py
@@ -148,6 +148,30 @@ class TestPCreateCommand(unittest.TestCase):
{'project': 'Distro', 'egg': 'Distro', 'package': 'distro',
'pyramid_version': '0.2', 'pyramid_docs_branch':'0.2-branch'})
+ def test_scaffold_with_prod_pyramid_long_version(self):
+ cmd = self._makeOne('-s', 'dummy', 'Distro')
+ scaffold = DummyScaffold('dummy')
+ cmd.scaffolds = [scaffold]
+ cmd.pyramid_dist = DummyDist("0.2.1")
+ result = cmd.run()
+ self.assertEqual(result, 0)
+ self.assertEqual(
+ scaffold.vars,
+ {'project': 'Distro', 'egg': 'Distro', 'package': 'distro',
+ 'pyramid_version': '0.2.1', 'pyramid_docs_branch':'0.2-branch'})
+
+ def test_scaffold_with_prod_pyramid_unparsable_version(self):
+ cmd = self._makeOne('-s', 'dummy', 'Distro')
+ scaffold = DummyScaffold('dummy')
+ cmd.scaffolds = [scaffold]
+ cmd.pyramid_dist = DummyDist("abc")
+ result = cmd.run()
+ self.assertEqual(result, 0)
+ self.assertEqual(
+ scaffold.vars,
+ {'project': 'Distro', 'egg': 'Distro', 'package': 'distro',
+ 'pyramid_version': 'abc', 'pyramid_docs_branch':'latest'})
+
def test_scaffold_with_dev_pyramid_version(self):
cmd = self._makeOne('-s', 'dummy', 'Distro')
scaffold = DummyScaffold('dummy')
@@ -160,6 +184,19 @@ class TestPCreateCommand(unittest.TestCase):
{'project': 'Distro', 'egg': 'Distro', 'package': 'distro',
'pyramid_version': '0.2dev', 'pyramid_docs_branch':'latest'})
+ def test_scaffold_with_dev_pyramid_long_version(self):
+ cmd = self._makeOne('-s', 'dummy', 'Distro')
+ scaffold = DummyScaffold('dummy')
+ cmd.scaffolds = [scaffold]
+ cmd.pyramid_dist = DummyDist("0.2.1dev")
+ result = cmd.run()
+ self.assertEqual(result, 0)
+ self.assertEqual(
+ scaffold.vars,
+ {'project': 'Distro', 'egg': 'Distro', 'package': 'distro',
+ 'pyramid_version': '0.2.1dev', 'pyramid_docs_branch':'latest'})
+
+
class Test_main(unittest.TestCase):
def _callFUT(self, argv):
from pyramid.scripts.pcreate import main