def test_json_validate_success(self): "Request JSON arguments successfully validated." test_request = DummyRequest() test_request.setHeader("Content-Type", "application/json; charset=utf-8") test_request.write(json.dumps({"arg1" : unicode("hi")})) self.dummy_render_func2(test_request) self.assertTrue(hasattr(test_request, "jsonArgs")) self.assertTrue(test_request.jsonArgs.has_key("arg1")) self.assertEqual(test_request.jsonArgs["arg1"], unicode("hi"))
def test_content_arg_type_mismatch_optional_arg(self): "Request JSON optional arguments contain data which doesn't match expected type." test_request = DummyRequest() test_request.setHeader("Content-Type", "application/json; charset=utf-8") test_request.write(json.dumps({"arg1" : 1})) outer_wrap = webapi.json_arguments([("arg1", unicode, True)]) inner_wrap = outer_wrap(self.dummy_render_func) self.assertEqual(str(webapi.ValueError(test_request, "arg1", "Must be of type unicode")), inner_wrap(self, test_request))
def test_content_required_arg_missing_optional_flag_false(self): "Request JSON arguments missing required argument." test_request = DummyRequest() test_request.setHeader("Content-Type", "application/json; charset=utf-8") test_request.write(json.dumps({"arg2" : 1})) outer_wrap = webapi.json_arguments([("arg1", unicode, False)]) inner_wrap = outer_wrap(self.dummy_render_func) self.assertEqual(str(webapi.ValueError(test_request, "arg1", "Argument is missing.")), inner_wrap(self, test_request))
def test_content_invalid_json(self): "Request content not valid JSON." test_request = DummyRequest() test_request.setHeader("Content-Type", "application/json; charset=utf-8") test_request.write("boingo! bad json!") outer_wrap = webapi.json_arguments([("arg1", unicode)]) inner_wrap = outer_wrap(self.dummy_render_func) self.assertEqual(str(webapi.JSONDecodeError(test_request)), inner_wrap(self, test_request))
def test_content_not_dict(self): "Request content contained in a dictionary/hash." test_request = DummyRequest() test_request.setHeader("Content-Type", "application/json; charset=utf-8") test_request.write(json.dumps("not a dict")) outer_wrap = webapi.json_arguments([("arg1", unicode)]) inner_wrap = outer_wrap(self.dummy_render_func) self.assertEqual(str(webapi.RequestNotHashError(test_request)), inner_wrap(self, test_request))
def test_json_validate_success(self): "Request JSON arguments successfully validated." test_request = DummyRequest() test_request.setHeader("Content-Type", "application/json; charset=utf-8") test_request.write(json.dumps({"arg1": unicode("hi")})) self.dummy_render_func2(test_request) self.assertTrue(hasattr(test_request, "jsonArgs")) self.assertTrue(test_request.jsonArgs.has_key("arg1")) self.assertEqual(test_request.jsonArgs["arg1"], unicode("hi"))
def test_content_required_arg_missing_optional_flag_false(self): "Request JSON arguments missing required argument." test_request = DummyRequest() test_request.setHeader("Content-Type", "application/json; charset=utf-8") test_request.write(json.dumps({"arg2": 1})) outer_wrap = webapi.json_arguments([("arg1", unicode, False)]) inner_wrap = outer_wrap(self.dummy_render_func) self.assertEqual( str(webapi.ValueError(test_request, "arg1", "Argument is missing.")), inner_wrap(self, test_request))
def test_content_arg_type_mismatch_optional_arg(self): "Request JSON optional arguments contain data which doesn't match expected type." test_request = DummyRequest() test_request.setHeader("Content-Type", "application/json; charset=utf-8") test_request.write(json.dumps({"arg1": 1})) outer_wrap = webapi.json_arguments([("arg1", unicode, True)]) inner_wrap = outer_wrap(self.dummy_render_func) self.assertEqual( str( webapi.ValueError(test_request, "arg1", "Must be of type unicode")), inner_wrap(self, test_request))