diff options
| author | Bert JW Regeer <xistence@0x58.com> | 2016-10-02 20:42:47 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-10-02 20:42:47 -0600 |
| commit | 11cbc8fed50d9b652c8a178cebb290c98ecfeba4 (patch) | |
| tree | 4869f047300477271984cd70a1763a0fda9228ce | |
| parent | 2058b2e25cf261505efeb75db6ca49bc2749d3cf (diff) | |
| parent | 5aa7573db77281bd09981ae29d4700d839a864b8 (diff) | |
| download | pyramid-11cbc8fed50d9b652c8a178cebb290c98ecfeba4.tar.gz pyramid-11cbc8fed50d9b652c8a178cebb290c98ecfeba4.tar.bz2 pyramid-11cbc8fed50d9b652c8a178cebb290c98ecfeba4.zip | |
Merge pull request #2783 from goodwillcoding/pcreate_specify_project_name
Add --package-name option to pcreate.
| -rw-r--r-- | pyramid/scripts/pcreate.py | 18 | ||||
| -rw-r--r-- | pyramid/tests/test_scripts/test_pcreate.py | 21 |
2 files changed, 36 insertions, 3 deletions
diff --git a/pyramid/scripts/pcreate.py b/pyramid/scripts/pcreate.py index f3121a915..5cae5cc5d 100644 --- a/pyramid/scripts/pcreate.py +++ b/pyramid/scripts/pcreate.py @@ -45,6 +45,14 @@ class PCreateCommand(object): action='store_true', help=("A backwards compatibility alias for -l/--list. " "List all available scaffold names.")) + parser.add_option('--package-name', + dest='package_name', + action='store', + type='string', + help='Package name to use. Named provided is assumed to ' + 'be a valid python package name and will not be ' + 'validated. (By default package name is derived ' + 'from output_directory base folder name)') parser.add_option('--simulate', dest='simulate', action='store_true', @@ -99,9 +107,13 @@ class PCreateCommand(object): def project_vars(self): output_dir = self.output_path project_name = os.path.basename(os.path.split(output_dir)[1]) - pkg_name = _bad_chars_re.sub( - '', project_name.lower().replace('-', '_')) - safe_name = pkg_resources.safe_name(project_name) + if self.options.package_name is None: + pkg_name = _bad_chars_re.sub( + '', project_name.lower().replace('-', '_')) + safe_name = pkg_resources.safe_name(project_name) + else: + pkg_name = self.options.package_name + safe_name = pkg_name egg_name = pkg_resources.to_filename(safe_name) # get pyramid package version diff --git a/pyramid/tests/test_scripts/test_pcreate.py b/pyramid/tests/test_scripts/test_pcreate.py index eaa7c1464..b7013bc73 100644 --- a/pyramid/tests/test_scripts/test_pcreate.py +++ b/pyramid/tests/test_scripts/test_pcreate.py @@ -80,6 +80,27 @@ class TestPCreateCommand(unittest.TestCase): {'project': 'Distro', 'egg': 'Distro', 'package': 'distro', 'pyramid_version': '0.1', 'pyramid_docs_branch':'0.1-branch'}) + def test_scaffold_with_package_name(self): + import os + cmd = self._makeOne('-s', 'dummy', '--package-name', 'dummy_package', + 'Distro') + scaffold = DummyScaffold('dummy') + cmd.scaffolds = [scaffold] + cmd.pyramid_dist = DummyDist("0.1") + result = cmd.run() + + self.assertEqual(result, 0) + self.assertEqual( + scaffold.output_dir, + os.path.normpath(os.path.join(os.getcwd(), 'Distro')) + ) + self.assertEqual( + scaffold.vars, + {'project': 'Distro', 'egg': 'dummy_package', + 'package': 'dummy_package', 'pyramid_version': '0.1', + 'pyramid_docs_branch':'0.1-branch'}) + + def test_scaffold_with_hyphen_in_project_name(self): import os cmd = self._makeOne('-s', 'dummy', 'Distro-') |
