diff options
| author | Michael Merickel <michael@merickel.org> | 2015-02-07 02:55:22 -0600 |
|---|---|---|
| committer | Michael Merickel <michael@merickel.org> | 2015-02-07 02:55:22 -0600 |
| commit | b17fa8b19da6e8272515588abbd2299f03bc2942 (patch) | |
| tree | 511fcf2e8b7bc065c8fdb06c6c3da84f5e54461b | |
| parent | 04f7542941149010f31d42ed729d6317ffa06239 (diff) | |
| parent | 58b8adf4135656efcc063eb822e4d29f6112d329 (diff) | |
| download | pyramid-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.txt | 5 | ||||
| -rw-r--r-- | pyramid/scripts/pcreate.py | 12 | ||||
| -rw-r--r-- | pyramid/tests/test_scripts/test_pcreate.py | 11 |
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() |
