diff options
| author | Éric Araujo <merwok@netwok.org> | 2013-06-19 12:57:26 -0400 |
|---|---|---|
| committer | Éric Araujo <merwok@netwok.org> | 2013-06-19 12:57:26 -0400 |
| commit | cd9d7f5b3b087cb151052315ec6decf9e4786475 (patch) | |
| tree | 54cff8be8a7b5d9b570e6e4f30155ee46a58228d | |
| parent | cb8bb94941299269d8b29ff7ae08064f4483a07f (diff) | |
| download | pyramid-cd9d7f5b3b087cb151052315ec6decf9e4786475.tar.gz pyramid-cd9d7f5b3b087cb151052315ec6decf9e4786475.tar.bz2 pyramid-cd9d7f5b3b087cb151052315ec6decf9e4786475.zip | |
Add support for PUT and PATCH in prequest (#877)
| -rw-r--r-- | pyramid/scripts/prequest.py | 6 | ||||
| -rw-r--r-- | pyramid/tests/test_scripts/test_prequest.py | 26 |
2 files changed, 29 insertions, 3 deletions
diff --git a/pyramid/scripts/prequest.py b/pyramid/scripts/prequest.py index da6b8cc14..82380b8ca 100644 --- a/pyramid/scripts/prequest.py +++ b/pyramid/scripts/prequest.py @@ -59,9 +59,9 @@ class PRequestCommand(object): parser.add_option( '-m', '--method', dest='method', - choices=['GET', 'HEAD', 'POST', 'DELETE'], + choices=['GET', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE'], type='choice', - help='Request method type (GET, POST, DELETE)', + help='Request method type', ) get_app = staticmethod(get_app) @@ -127,7 +127,7 @@ class PRequestCommand(object): 'paste.command_request': True, } - if request_method == 'POST': + if request_method in ('POST', 'PUT', 'PATCH'): environ['wsgi.input'] = self.stdin environ['CONTENT_LENGTH'] = '-1' diff --git a/pyramid/tests/test_scripts/test_prequest.py b/pyramid/tests/test_scripts/test_prequest.py index 91d2b322a..64a7c3045 100644 --- a/pyramid/tests/test_scripts/test_prequest.py +++ b/pyramid/tests/test_scripts/test_prequest.py @@ -114,6 +114,32 @@ class TestPRequestCommand(unittest.TestCase): self.assertEqual(self._app_name, None) self.assertEqual(self._out, ['abc']) + def test_command_method_put(self): + from pyramid.compat import NativeIO + command = self._makeOne(['', '--method=PUT', 'development.ini', '/']) + stdin = NativeIO() + command.stdin = stdin + command.run() + self.assertEqual(self._environ['CONTENT_LENGTH'], '-1') + self.assertEqual(self._environ['wsgi.input'], stdin) + self.assertEqual(self._path_info, '/') + self.assertEqual(self._spec, 'development.ini') + self.assertEqual(self._app_name, None) + self.assertEqual(self._out, ['abc']) + + def test_command_method_patch(self): + from pyramid.compat import NativeIO + command = self._makeOne(['', '--method=PATCH', 'development.ini', '/']) + stdin = NativeIO() + command.stdin = stdin + command.run() + self.assertEqual(self._environ['CONTENT_LENGTH'], '-1') + self.assertEqual(self._environ['wsgi.input'], stdin) + self.assertEqual(self._path_info, '/') + self.assertEqual(self._spec, 'development.ini') + self.assertEqual(self._app_name, None) + self.assertEqual(self._out, ['abc']) + def test_command_with_query_string(self): command = self._makeOne(['', 'development.ini', '/abc?a=1&b=2&c']) command.run() |
