diff options
| author | goodwillcoding <goodwillcoding@webhippo.net> | 2016-10-02 18:12:32 -0700 |
|---|---|---|
| committer | goodwillcoding <goodwillcoding@webhippo.net> | 2016-10-02 18:12:32 -0700 |
| commit | 24c63558d04dc9ad2a1ee2243a63ace0d355ffe5 (patch) | |
| tree | 87201647fc414c2a946b58ec08a1dce242c048c2 | |
| parent | 2058b2e25cf261505efeb75db6ca49bc2749d3cf (diff) | |
| download | pyramid-24c63558d04dc9ad2a1ee2243a63ace0d355ffe5.tar.gz pyramid-24c63558d04dc9ad2a1ee2243a63ace0d355ffe5.tar.bz2 pyramid-24c63558d04dc9ad2a1ee2243a63ace0d355ffe5.zip | |
Add --package-name option to pcreate. This solves the problem
of scaffold creating an existing directory where the package
created should not be named after the base folder.
For example if I am in I run pcreate in ~/code/trypyramid.com and
would like to create package called tpc this is currently
impossible. This solves the issues by allowing me to specify
the package name on the command line
| -rw-r--r-- | pyramid/scripts/pcreate.py | 17 | ||||
| -rw-r--r-- | pyramid/tests/test_scripts/test_pcreate.py | 21 |
2 files changed, 35 insertions, 3 deletions
diff --git a/pyramid/scripts/pcreate.py b/pyramid/scripts/pcreate.py index f3121a915..7da501c49 100644 --- a/pyramid/scripts/pcreate.py +++ b/pyramid/scripts/pcreate.py @@ -45,6 +45,13 @@ 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. Has to be a valid python ' + 'package name. (By default package name is derived ' + 'from output_directory base folder name)') parser.add_option('--simulate', dest='simulate', action='store_true', @@ -99,9 +106,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-') |
