diff options
| author | Steve Piercy <web@stevepiercy.com> | 2016-12-05 23:15:17 -0800 |
|---|---|---|
| committer | Steve Piercy <web@stevepiercy.com> | 2016-12-13 17:38:59 -0800 |
| commit | 4996dbe000774b8d6fe015dd5d29b9bd9bfc827d (patch) | |
| tree | 44e8f6c6b84dbb8af4117823a4904bdf4b13ffe7 | |
| parent | 8d6301820dd4f13d2ab0424764d6969a8508b2a8 (diff) | |
| download | pyramid-4996dbe000774b8d6fe015dd5d29b9bd9bfc827d.tar.gz pyramid-4996dbe000774b8d6fe015dd5d29b9bd9bfc827d.tar.bz2 pyramid-4996dbe000774b8d6fe015dd5d29b9bd9bfc827d.zip | |
add new test in attempt to catch status code and stderr
| -rw-r--r-- | pyramid/tests/test_scripts/test_pcreate.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/pyramid/tests/test_scripts/test_pcreate.py b/pyramid/tests/test_scripts/test_pcreate.py index 0286614ce..d6e6814fa 100644 --- a/pyramid/tests/test_scripts/test_pcreate.py +++ b/pyramid/tests/test_scripts/test_pcreate.py @@ -1,6 +1,32 @@ +from contextlib import contextmanager import unittest +@contextmanager +def patch_argparser(parser): + result = {} + old_exit = parser.exit + old_error = parser.error + try: + def dummy_exit(status=0, message=None): + result['status'] = status + result['message'] = message + raise ArgumentParserExit + + def dummy_error(message): + result['message'] = message + + parser.exit = dummy_exit + parser.error = dummy_error + yield result + finally: + parser.exit = old_exit + parser.error = old_error + +class ArgumentParserExit(Exception): + pass + + class TestPCreateCommand(unittest.TestCase): def setUp(self): from pyramid.compat import NativeIO @@ -49,6 +75,19 @@ class TestPCreateCommand(unittest.TestCase): self.assertTrue(out.count( 'You must provide at least one scaffold name')) + def test_test_no_project_name(self): + cmd = self._makeOne('-s', 'dummy') + with patch_argparser(cmd.parser) as result: + try: + cmd.run() + except ArgumentParserExit: + self.assertEqual(result['status'], 2) + self.assertTrue(result['message'].startswith( + 'usage: pcreate [-h] [-s SCAFFOLD_NAME] [-t SCAFFOLD_NAME] [-l]' + )) + else: # pragma: no cover + raise AssertionError + def test_no_project_name(self): cmd = self._makeOne('-s', 'dummy') result = cmd.run() |
