summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert JW Regeer <xistence@0x58.com>2016-10-02 20:42:47 -0600
committerGitHub <noreply@github.com>2016-10-02 20:42:47 -0600
commit11cbc8fed50d9b652c8a178cebb290c98ecfeba4 (patch)
tree4869f047300477271984cd70a1763a0fda9228ce
parent2058b2e25cf261505efeb75db6ca49bc2749d3cf (diff)
parent5aa7573db77281bd09981ae29d4700d839a864b8 (diff)
downloadpyramid-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.py18
-rw-r--r--pyramid/tests/test_scripts/test_pcreate.py21
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-')