diff options
| author | Gordon Chung <chungg@ca.ibm.com> | 2013-02-06 12:34:06 -0500 |
|---|---|---|
| committer | Gordon Chung <chungg@ca.ibm.com> | 2013-02-07 11:58:48 -0500 |
| commit | 5342209a3dc0bf4e41cab87b894954526edcbffd (patch) | |
| tree | 199b363835df5e0ba794b0b9af64cf8f85ab8c23 | |
| parent | 8ec247bf61be0e487332d5d891246d2b7b606989 (diff) | |
| download | keystone-5342209a3dc0bf4e41cab87b894954526edcbffd.tar.gz keystone-5342209a3dc0bf4e41cab87b894954526edcbffd.tar.xz keystone-5342209a3dc0bf4e41cab87b894954526edcbffd.zip | |
return 400 Bad Request if invalid params supplied (bug1061738)
return a 400 Bad Request if there are invalid arguments params supplied
Change-Id: I82da8a6db4a2847c8407cd0917b2d71ac9f9ba7a
| -rw-r--r-- | keystone/common/wsgi.py | 3 | ||||
| -rw-r--r-- | tests/test_content_types.py | 21 |
2 files changed, 24 insertions, 0 deletions
diff --git a/keystone/common/wsgi.py b/keystone/common/wsgi.py index 42a4bc31..92f6e1c1 100644 --- a/keystone/common/wsgi.py +++ b/keystone/common/wsgi.py @@ -233,6 +233,9 @@ class Application(BaseApplication): except exception.Error as e: LOG.warning(e) return render_exception(e) + except TypeError as e: + logging.exception(e) + return render_exception(exception.ValidationError(e)) except Exception as e: logging.exception(e) return render_exception(exception.UnexpectedError(exception=e)) diff --git a/tests/test_content_types.py b/tests/test_content_types.py index 6b0a03e0..20bf3386 100644 --- a/tests/test_content_types.py +++ b/tests/test_content_types.py @@ -506,6 +506,27 @@ class CoreApiTests(object): """This triggers assertValidErrorResponse by convention.""" self.public_request(path='/v2.0/tenants', expected_status=401) + def test_invalid_parameter_error_response(self): + token = self.get_scoped_token() + bad_body = { + 'OS-KSADM:serviceBAD': { + 'name': uuid.uuid4().hex, + 'type': uuid.uuid4().hex, + }, + } + res = self.admin_request(method='POST', + path='/v2.0/OS-KSADM/services', + body=bad_body, + token=token, + expected_status=400) + self.assertValidErrorResponse(res) + res = self.admin_request(method='POST', + path='/v2.0/users', + body=bad_body, + token=token, + expected_status=400) + self.assertValidErrorResponse(res) + class JsonTestCase(RestfulTestCase, CoreApiTests): content_type = 'json' |
