summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2015-02-07 02:55:22 -0600
committerMichael Merickel <michael@merickel.org>2015-02-07 02:55:22 -0600
commitb17fa8b19da6e8272515588abbd2299f03bc2942 (patch)
tree511fcf2e8b7bc065c8fdb06c6c3da84f5e54461b
parent04f7542941149010f31d42ed729d6317ffa06239 (diff)
parent58b8adf4135656efcc063eb822e4d29f6112d329 (diff)
downloadpyramid-b17fa8b19da6e8272515588abbd2299f03bc2942.tar.gz
pyramid-b17fa8b19da6e8272515588abbd2299f03bc2942.tar.bz2
pyramid-b17fa8b19da6e8272515588abbd2299f03bc2942.zip
Merge pull request #1566 from bertjwregeer/feature/pcreate-help
When running pcreate without scaffold, list scaffolds
-rw-r--r--CHANGES.txt5
-rw-r--r--pyramid/scripts/pcreate.py12
-rw-r--r--pyramid/tests/test_scripts/test_pcreate.py11
3 files changed, 23 insertions, 5 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index 2dee64a84..27052cf0f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -4,6 +4,11 @@ Next release
Features
--------
+- pcreate when run without a scaffold argument will now print information on
+ the missing flag, as well as a list of available scaffolds.
+ See https://github.com/Pylons/pyramid/pull/1566 and
+ https://github.com/Pylons/pyramid/issues/1297
+
- Added support / testing for 'pypy3' under Tox and Travis.
See https://github.com/Pylons/pyramid/pull/1469
diff --git a/pyramid/scripts/pcreate.py b/pyramid/scripts/pcreate.py
index edf2c39f7..d2c5f8c27 100644
--- a/pyramid/scripts/pcreate.py
+++ b/pyramid/scripts/pcreate.py
@@ -18,7 +18,7 @@ def main(argv=sys.argv, quiet=False):
class PCreateCommand(object):
verbosity = 1 # required
description = "Render Pyramid scaffolding to an output directory"
- usage = "usage: %prog [options] output_directory"
+ usage = "usage: %prog [options] -s <scaffold> output_directory"
parser = optparse.OptionParser(usage, description=description)
parser.add_option('-s', '--scaffold',
dest='scaffold_name',
@@ -63,8 +63,16 @@ class PCreateCommand(object):
def run(self):
if self.options.list:
return self.show_scaffolds()
+ if not self.options.scaffold_name and not self.args:
+ if not self.quiet: # pragma: no cover
+ self.parser.print_help()
+ self.out('')
+ self.show_scaffolds()
+ return 2
if not self.options.scaffold_name:
- self.out('You must provide at least one scaffold name')
+ self.out('You must provide at least one scaffold name: -s <scaffold name>')
+ self.out('')
+ self.show_scaffolds()
return 2
if not self.args:
self.out('You must provide a project name')
diff --git a/pyramid/tests/test_scripts/test_pcreate.py b/pyramid/tests/test_scripts/test_pcreate.py
index 020721ca7..63e5e6368 100644
--- a/pyramid/tests/test_scripts/test_pcreate.py
+++ b/pyramid/tests/test_scripts/test_pcreate.py
@@ -12,10 +12,10 @@ class TestPCreateCommand(unittest.TestCase):
from pyramid.scripts.pcreate import PCreateCommand
return PCreateCommand
- def _makeOne(self, *args):
+ def _makeOne(self, *args, **kw):
effargs = ['pcreate']
effargs.extend(args)
- cmd = self._getTargetClass()(effargs)
+ cmd = self._getTargetClass()(effargs, **kw)
cmd.out = self.out
return cmd
@@ -34,8 +34,13 @@ class TestPCreateCommand(unittest.TestCase):
out = self.out_.getvalue()
self.assertTrue(out.startswith('No scaffolds available'))
+ def test_run_no_scaffold_no_args(self):
+ cmd = self._makeOne(quiet=True)
+ result = cmd.run()
+ self.assertEqual(result, 2)
+
def test_run_no_scaffold_name(self):
- cmd = self._makeOne()
+ cmd = self._makeOne('dummy')
result = cmd.run()
self.assertEqual(result, 2)
out = self.out_.getvalue()