summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Piercy <web@stevepiercy.com>2016-12-05 23:15:17 -0800
committerSteve Piercy <web@stevepiercy.com>2016-12-13 17:38:59 -0800
commit4996dbe000774b8d6fe015dd5d29b9bd9bfc827d (patch)
tree44e8f6c6b84dbb8af4117823a4904bdf4b13ffe7
parent8d6301820dd4f13d2ab0424764d6969a8508b2a8 (diff)
downloadpyramid-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.py39
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()