From e18b5f5d6a2cd73d4df99433258146856960ac50 Mon Sep 17 00:00:00 2001 From: goodwillcoding Date: Sun, 20 Apr 2014 13:45:32 -0700 Subject: update the version detection to use better regex matching for version and add more test cases --- pyramid/scripts/pcreate.py | 15 +++++++++--- pyramid/tests/test_scripts/test_pcreate.py | 37 ++++++++++++++++++++++++++++++ 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 -- cgit v1.2.3