Skip to content

Commit

Permalink
Merge pull request #2783 from goodwillcoding/pcreate_specify_project_…
Browse files Browse the repository at this point in the history
…name

Add --package-name option to pcreate.
  • Loading branch information
digitalresistor committed Oct 3, 2016
2 parents 2058b2e + 5aa7573 commit 11cbc8f
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 3 deletions.
18 changes: 15 additions & 3 deletions pyramid/scripts/pcreate.py
Expand Up @@ -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',
Expand Down Expand Up @@ -99,9 +107,13 @@ def output_path(self):
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
Expand Down
21 changes: 21 additions & 0 deletions pyramid/tests/test_scripts/test_pcreate.py
Expand Up @@ -80,6 +80,27 @@ def test_known_scaffold_single_rendered(self):
{'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-')
Expand Down

0 comments on commit 11cbc8f

Please sign in to comment.