def test_success_on_post_with_form_params_with_files(self): form_parameter_1 = { "paramType": "form", "name": "param_id", "type": "integer" } form_parameter_2 = { "paramType": "form", "name": "file_name", "type": "File" } self.response["apis"][0]["operations"][0]["method"] = "POST" self.response["apis"][0]["operations"][0]["parameters"] = [ form_parameter_1, form_parameter_2] self.register_urls() httpretty.register_uri( httpretty.POST, "http://localhost/test_http?", body='') resource = SwaggerClient(u'http://localhost/api-docs').api_test with open("test-data/1.2/simple/simple.json", "rb") as f: resource.testHTTP(param_id=42, file_name=f).result() content_type = httpretty.last_request().headers['content-type'] self.assertTrue(content_type.startswith('multipart/form-data')) self.assertTrue("42" in httpretty.last_request().body) # instead of asserting the contents, just assert filename is there self.assertTrue("simple.json" in httpretty.last_request().body)
def test_alllow_null_as_response_if_allow_null_is_given(self): self.register_urls() httpretty.register_uri(httpretty.GET, "http://localhost/test_http", body=json.dumps(None)) resource = SwaggerClient(u'http://localhost/api-docs').api_test resource.testHTTP().result(allow_null=True)
def test_success_on_passing_datetime_in_param(self): query_parameter = { "paramType": "query", "name": "test_param", "type": "string", "format": "date-time" } self.response["apis"][0]["operations"][0]["parameters"] = [ query_parameter ] httpretty.register_uri(httpretty.GET, "http://localhost/test_http", body='') self.register_urls() resource = SwaggerClient(u'http://localhost/api-docs').api_test some_datetime = datetime.datetime(2014, 6, 10, 23, 49, 54, 728000, tzinfo=tzutc()) resource.testHTTP(test_param=some_datetime).result() self.assertEqual(['2014-06-10 23:49:54.728000 00:00'], httpretty.last_request().querystring['test_param'])
def test_success_on_post_with_form_params_with_files(self): form_parameter_1 = { "paramType": "form", "name": "param_id", "type": "integer" } form_parameter_2 = { "paramType": "form", "name": "file_name", "type": "File" } self.response["apis"][0]["operations"][0]["method"] = "POST" self.response["apis"][0]["operations"][0]["parameters"] = [ form_parameter_1, form_parameter_2 ] self.register_urls() httpretty.register_uri(httpretty.POST, "http://localhost/test_http?", body='') resource = SwaggerClient(u'http://localhost/api-docs').api_test with open("test-data/1.2/simple/simple.json", "rb") as f: resource.testHTTP(param_id=42, file_name=f).result() content_type = httpretty.last_request().headers['content-type'] self.assertTrue(content_type.startswith('multipart/form-data')) self.assertTrue("42" in httpretty.last_request().body) # instead of asserting the contents, just assert filename is there self.assertTrue("simple.json" in httpretty.last_request().body)
def test_alllow_null_as_response_if_allow_null_is_given(self): self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/test_http", body=json.dumps(None)) resource = SwaggerClient(u'http://localhost/api-docs').api_test resource.testHTTP().result(allow_null=True)
def test_success_on_post_with_form_params(self): form_parameter_1 = { "paramType": "form", "name": "param_id", "type": "integer" } form_parameter_2 = { "paramType": "form", "name": "param_name", "type": "string" } self.response["apis"][0]["operations"][0]["method"] = "POST" self.response["apis"][0]["operations"][0]["parameters"] = [ form_parameter_1, form_parameter_2 ] self.register_urls() httpretty.register_uri(httpretty.POST, "http://localhost/test_http?", body='') resource = SwaggerClient(u'http://localhost/api-docs').api_test resource.testHTTP(param_id=42, param_name='str').result() self.assertEqual('application/x-www-form-urlencoded', httpretty.last_request().headers['content-type']) self.assertEqual({ 'param_name': ['str'], 'param_id': ['42'] }, urlparse.parse_qs(httpretty.last_request().body))
def test_success_on_passing_default_value_if_param_not_passed(self): self.parameter['defaultValue'] = 'testString' self.register_urls() httpretty.register_uri(httpretty.GET, "http://localhost/test_http?", body='') resource = SwaggerClient(u'http://localhost/api-docs').api_test resource.testHTTP().result() self.assertEqual(['testString'], httpretty.last_request().querystring['test_param'])
def test_api_base_path_if_passed_is_always_used_as_base_path(self): httpretty.register_uri(httpretty.GET, "http://foo/test_http?", body='') self.response["basePath"] = "http://localhost" self.register_urls() resource = SwaggerClient(u'http://localhost/api-docs', api_base_path='http://foo').api_test resource.testHTTP(test_param="foo").result() self.assertEqual(["foo"], httpretty.last_request().querystring['test_param'])
def test_api_base_path_if_passed_is_always_used_as_base_path(self): httpretty.register_uri( httpretty.GET, "http://foo/test_http?", body='') self.response["basePath"] = "http://localhost" self.register_urls() resource = SwaggerClient(u'http://localhost/api-docs', api_base_path='http://foo').api_test resource.testHTTP(test_param="foo").result() self.assertEqual(["foo"], httpretty.last_request().querystring['test_param'])
def test_append_base_path_if_base_path_isnt_absolute(self): self.response["basePath"] = "/append" httpretty.register_uri( httpretty.GET, "http://localhost/append/test_http?", body='[]') self.register_urls() resource = SwaggerClient(u'http://localhost/api-docs').api_test resource.testHTTP(test_param="foo").result() self.assertEqual(["foo"], httpretty.last_request().querystring['test_param'])
def test_append_base_path_if_base_path_isnt_absolute(self): self.response["basePath"] = "/append" httpretty.register_uri(httpretty.GET, "http://localhost/append/test_http?", body='[]') self.register_urls() resource = SwaggerClient(u'http://localhost/api-docs').api_test resource.testHTTP(test_param="foo").result() self.assertEqual(["foo"], httpretty.last_request().querystring['test_param'])
def test_success_on_post_with_path_query_and_body_params(self): query_parameter = self.parameter path_parameter = { "paramType": "path", "name": "param_id", "type": "string" } body_parameter = { "paramType": "body", "name": "body", "type": "string" } self.response["apis"][0]["path"] = "/params/{param_id}/test_http" operations = self.response["apis"][0]["operations"] operations[0]["method"] = "POST" operations[0]["parameters"] = [ query_parameter, path_parameter, body_parameter ] self.register_urls() httpretty.register_uri( httpretty.POST, "http://localhost/params/42/test_http?test_param=foo", body='') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo", param_id="42", body="some_test").result() self.assertEqual('some_test', httpretty.last_request().body) self.assertEqual(None, resp)
def test_error_if_response_is_null_and_allow_null_not_given(self): self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/test_http", body=json.dumps(None)) resource = SwaggerClient(u'http://localhost/api-docs').api_test self.assertRaises(TypeError, resource.testHTTP().result)
def test_success_on_post_with_path_query_and_body_params(self): query_parameter = self.parameter path_parameter = { "paramType": "path", "name": "param_id", "type": "string" } body_parameter = { "paramType": "body", "name": "body", "type": "string" } self.response["apis"][0]["path"] = "/params/{param_id}/test_http" operations = self.response["apis"][0]["operations"] operations[0]["method"] = "POST" operations[0]["parameters"] = [query_parameter, path_parameter, body_parameter] self.register_urls() httpretty.register_uri( httpretty.POST, "http://localhost/params/42/test_http?test_param=foo", body='') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo", param_id="42", body="some_test").result() self.assertEqual('some_test', httpretty.last_request().body) self.assertEqual(None, resp)
def test_error_if_response_is_null_and_allow_null_not_given(self): self.register_urls() httpretty.register_uri(httpretty.GET, "http://localhost/test_http", body=json.dumps(None)) resource = SwaggerClient(u'http://localhost/api-docs').api_test self.assertRaises(TypeError, resource.testHTTP().result)
def test_success_on_get_with_array_in_path_and_query_params(self): query_parameter = { "paramType": "query", "name": "test_params", "type": "string" } path_parameter = { "paramType": "path", "name": "param_ids", "type": "array", "items": { "type": "integer" } } self.response["apis"][0]["path"] = "/params/{param_ids}/test_http" self.response["apis"][0]["operations"][0]["parameters"] = [ query_parameter, path_parameter ] self.register_urls() httpretty.register_uri(httpretty.GET, "http://localhost/params/40,41,42/test_http?", body='') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_params=["foo", "bar"], param_ids=[40, 41, 42]).result() self.assertEqual(["foo", "bar"], httpretty.last_request().querystring['test_params']) self.assertEqual(None, resp)
def test_correct_route_with_basePath_as_slash(self): httpretty.register_uri( httpretty.GET, "http://localhost/test_http?query=foo", body='[]') self.register_urls() resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo").result() self.assertEqual([], resp)
def test_none_value_response_if_response_not_OK(self): self.register_urls() httpretty.register_uri(httpretty.GET, "http://localhost/test_http?test_param=foo", status=500) resource = SwaggerClient(u'http://localhost/api-docs').api_test self.assertRaises(HTTPError, resource.testHTTP(test_param="foo").result)
def test_none_value_response_if_response_not_OK(self): self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/test_http?test_param=foo", status=500) resource = SwaggerClient(u'http://localhost/api-docs').api_test self.assertRaises(HTTPError, resource.testHTTP(test_param="foo").result)
def test_correct_route_with_basePath_as_slash(self): httpretty.register_uri(httpretty.GET, "http://localhost/test_http?query=foo", body='[]') self.register_urls() resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo").result() self.assertEqual([], resp)
def test_success_on_passing_datetime_in_param(self): query_parameter = { "paramType": "query", "name": "test_param", "type": "string", "format": "date-time" } self.response["apis"][0]["operations"][0]["parameters"] = [ query_parameter] httpretty.register_uri( httpretty.GET, "http://localhost/test_http", body='') self.register_urls() resource = SwaggerClient(u'http://localhost/api-docs').api_test some_date = datetime(2014, 6, 10, 23, 49, 54, 728000, tzinfo=tzutc()) resource.testHTTP(test_param=some_date).result() self.assertEqual(['2014-06-10 23:49:54.728000 00:00'], httpretty.last_request().querystring['test_param'])
def test_success_on_returning_anything_for_type_void(self): # default operation type is void self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/test_http?test_param=foo", body='{"some_foo": "bar"}') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo").result() self.assertEqual({"some_foo": "bar"}, resp)
def test_alllow_null_in_response_body_if_allow_null_is_given(self): self.register_urls() self.sample_model["schools"].append(None) httpretty.register_uri( httpretty.GET, "http://localhost/test_http", body=json.dumps(self.sample_model)) resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP().result(allow_null=True) self.assertTrue(isinstance(resp, resource.models.User))
def test_success_on_returning_anything_for_type_void(self): # default operation type is void self.register_urls() httpretty.register_uri(httpretty.GET, "http://localhost/test_http?test_param=foo", body='{"some_foo": "bar"}') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo").result() self.assertEqual({"some_foo": "bar"}, resp)
def test_alllow_null_in_response_body_if_allow_null_is_given(self): self.register_urls() self.sample_model["schools"].append(None) httpretty.register_uri(httpretty.GET, "http://localhost/test_http", body=json.dumps(self.sample_model)) resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP().result(allow_null=True) self.assertTrue(isinstance(resp, resource.models.User))
def test_content_type_as_json_if_complex_type_in_body(self): query_parameter = { "paramType": "body", "name": "body", "type": "School", } school = {"name": "temp"} self.response["apis"][0]["operations"][0]["type"] = "School" self.response["apis"][0]["operations"][0]["parameters"] = [ query_parameter] self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/test_http", body=json.dumps(school)) resource = SwaggerClient(u'http://localhost/api-docs').api_test resource.testHTTP(body=school).result() self.assertEqual("application/json", httpretty.last_request().headers[ 'content-type'])
def test_error_on_incorrect_array_type_returned(self): self.response["apis"][0]["operations"][0]["type"] = "array" self.response["apis"][0]["operations"][0]["items"] = {"type": "string"} self.register_urls() httpretty.register_uri(httpretty.GET, "http://localhost/test_http?test_param=foo", body="123.32") resource = SwaggerClient(u'http://localhost/api-docs').api_test future = resource.testHTTP(test_param="foo") self.assertRaises(TypeError, future)
def test_success_on_date_type(self): self.response["apis"][0]["operations"][0]["type"] = "string" self.response["apis"][0]["operations"][0]["format"] = "date" self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/test_http?test_param=foo", body='"2014-06-10"') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo").result() self.assertEqual(resp, datetime.date(2014, 6, 10))
def test_success_on_returning_raw_response_if_given_in_parameter(self): self.response["apis"][0]["operations"][0]["type"] = "array" self.response["apis"][0]["operations"][0]["items"] = {"type": "string"} self.register_urls() httpretty.register_uri(httpretty.GET, "http://localhost/test_http?", body='{"some_foo": "bar"}') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo").result(raw_response=True) self.assertEqual({"some_foo": "bar"}, resp)
def test_content_type_as_json_if_complex_type_in_body(self): query_parameter = { "paramType": "body", "name": "body", "type": "School", } school = {"name": "temp"} self.response["apis"][0]["operations"][0]["type"] = "School" self.response["apis"][0]["operations"][0]["parameters"] = [ query_parameter ] self.register_urls() httpretty.register_uri(httpretty.GET, "http://localhost/test_http", body=json.dumps(school)) resource = SwaggerClient(u'http://localhost/api-docs').api_test resource.testHTTP(body=school).result() self.assertEqual("application/json", httpretty.last_request().headers['content-type'])
def test_error_on_incorrect_array_type_returned(self): self.response["apis"][0]["operations"][0]["type"] = "array" self.response["apis"][0]["operations"][0]["items"] = {"type": "string"} self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/test_http?test_param=foo", body="123.32") resource = SwaggerClient(u'http://localhost/api-docs').api_test future = resource.testHTTP(test_param="foo") self.assertRaises(TypeError, future)
def test_success_on_returning_raw_response_if_given_in_parameter(self): self.response["apis"][0]["operations"][0]["type"] = "array" self.response["apis"][0]["operations"][0]["items"] = { "type": "string"} self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/test_http?", body='{"some_foo": "bar"}') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo").result(raw_response=True) self.assertEqual({"some_foo": "bar"}, resp)
def test_success_on_complex_operation_response_type(self): self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/test_http", body=json.dumps(self.sample_model)) resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP().result() User = resource.models.User School = resource.models.School self.assertTrue(isinstance(resp, User)) [self.assertTrue(isinstance(x, School)) for x in resp.schools] self.assertEqual(User(id=42, schools=[School( name="School1"), School(name="School2")]), resp)
def test_success_on_correct_array_type_returned_by_operation(self): self.response["apis"][0]["operations"][0]["type"] = "array" self.response["apis"][0]["operations"][0]["items"] = { "type": "string", "format": "date-time" } self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/test_http?test_param=foo", body='["2014-06-10T23:49:54.728+0000"]') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo").result() self.assertEqual(resp, [datetime( 2014, 6, 10, 23, 49, 54, 728000, tzinfo=tzutc())])
def test_success_on_correct_array_type_returned_by_operation(self): self.response["apis"][0]["operations"][0]["type"] = "array" self.response["apis"][0]["operations"][0]["items"] = { "type": "string", "format": "date-time" } self.register_urls() httpretty.register_uri(httpretty.GET, "http://localhost/test_http?test_param=foo", body='["2014-06-10T23:49:54.728+0000"]') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo").result() self.assertEqual( resp, [datetime(2014, 6, 10, 23, 49, 54, 728000, tzinfo=tzutc())])
def test_success_on_post_with_form_params(self): form_parameter_1 = { "paramType": "form", "name": "param_id", "type": "integer" } form_parameter_2 = { "paramType": "form", "name": "param_name", "type": "string" } self.response["apis"][0]["operations"][0]["method"] = "POST" self.response["apis"][0]["operations"][0]["parameters"] = [ form_parameter_1, form_parameter_2] self.register_urls() httpretty.register_uri( httpretty.POST, "http://localhost/test_http?", body='') resource = SwaggerClient(u'http://localhost/api-docs').api_test resource.testHTTP(param_id=42, param_name='str').result() self.assertEqual('application/x-www-form-urlencoded', httpretty.last_request().headers['content-type']) self.assertEqual({'param_name': ['str'], 'param_id': ['42']}, urlparse.parse_qs(httpretty.last_request().body))
def test_success_on_complex_operation_response_type(self): self.register_urls() httpretty.register_uri(httpretty.GET, "http://localhost/test_http", body=json.dumps(self.sample_model)) resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP().result() User = resource.models.User School = resource.models.School self.assertTrue(isinstance(resp, User)) [self.assertTrue(isinstance(x, School)) for x in resp.schools] self.assertEqual( User(id=42, schools=[School(name="School1"), School(name="School2")]), resp)
def test_error_on_incorrect_primitive_types_returned(self): types = { 'string': '42', 'integer': '3.4', 'number': '42', 'boolean': '"NOT_BOOL"' } for type_ in types: self.response["apis"][0]["operations"][0]["type"] = type_ self.register_urls() httpretty.register_uri(httpretty.GET, "http://localhost/test_http?test_param=foo", body=types[type_]) resource = SwaggerClient(u'http://localhost/api-docs').api_test future = resource.testHTTP(test_param="foo") self.assertRaises(TypeError, future)
def test_error_on_incorrect_primitive_types_returned(self): types = { 'string': '42', 'integer': '3.4', 'number': '42', 'boolean': '"NOT_BOOL"' } for type_ in types: self.response["apis"][0]["operations"][0]["type"] = type_ self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/test_http?test_param=foo", body=types[type_]) resource = SwaggerClient(u'http://localhost/api-docs').api_test future = resource.testHTTP(test_param="foo") self.assertRaises(TypeError, future)
def test_removal_of_none_attributes_from_param_body_model(self): query_parameter = { "paramType": "body", "name": "body", "type": "User", } self.response["apis"][0]["operations"][0]["parameters"] = [ query_parameter] self.response["models"]["User"]["properties"]["school"] = { "$ref": "School"} self.register_urls() resource = SwaggerClient(u'http://localhost/api-docs').api_test user = resource.models.User(id=42) future = resource.testHTTP(body=user) # Removed the 'school': None - key, value pair from dict self.assertEqual(json.dumps({'id': 42, 'schools': []}), future._http_client.request_params['data'])
def test_success_model_in_param_body_converts_to_dict(self): query_parameter = { "paramType": "body", "name": "body", "type": "User", } self.response["apis"][0]["operations"][0]["parameters"] = [ query_parameter] self.register_urls() resource = SwaggerClient(u'http://localhost/api-docs').api_test School = resource.models.School # Also test all None items are removed from array list user = resource.models.User(id=42, schools=[School(name='s1'), None]) future = resource.testHTTP(body=user) self.assertEqual(json.dumps({'id': 42, 'schools': [{'name': 's1'}]}), future._http_client.request_params['data'])
def test_success_on_correct_primitive_types_returned_by_operation(self): types = { 'void': '[]', 'string': '"test"', 'integer': '42', 'number': '3.4', 'boolean': 'true' } for type_ in types: self.response["apis"][0]["operations"][0]["type"] = type_ self.register_urls() httpretty.register_uri(httpretty.GET, "http://localhost/test_http?test_param=foo", body=types[type_]) resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo").result() self.assertEqual(json.loads(types[type_]), resp)
def test_success_on_correct_primitive_types_returned_by_operation(self): types = { 'void': '[]', 'string': '"test"', 'integer': '42', 'number': '3.4', 'boolean': 'true' } for type_ in types: self.response["apis"][0]["operations"][0]["type"] = type_ self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/test_http?test_param=foo", body=types[type_]) resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo").result() self.assertEqual(json.loads(types[type_]), resp)
def test_success_on_get_with_path_and_query_params(self): query_parameter = self.parameter path_parameter = { "paramType": "path", "name": "param_id", "type": "string" } self.response["apis"][0]["path"] = "/params/{param_id}/test_http" self.response["apis"][0]["operations"][0]["parameters"] = [ query_parameter, path_parameter] self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/params/42/test_http?test_param=foo", body='') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo", param_id="42").result() self.assertEqual(None, resp)
def test_success_on_get_with_path_and_query_params(self): query_parameter = self.parameter path_parameter = { "paramType": "path", "name": "param_id", "type": "string" } self.response["apis"][0]["path"] = "/params/{param_id}/test_http" self.response["apis"][0]["operations"][0]["parameters"] = [ query_parameter, path_parameter ] self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/params/42/test_http?test_param=foo", body='') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_param="foo", param_id="42").result() self.assertEqual(None, resp)
def test_success_on_post_with_array_in_body_params(self): body_parameter = { "paramType": "body", "name": "body", "type": "array", "items": { "type": "string" } } operations = self.response["apis"][0]["operations"] operations[0]["parameters"] = [body_parameter] operations[0]["method"] = "POST" self.register_urls() httpretty.register_uri(httpretty.POST, "http://localhost/test_http", body='') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(body=["a", "b", "c"]).result() self.assertEqual(["a", "b", "c"], json.loads(httpretty.last_request().body)) self.assertEqual(None, resp)
def test_success_model_in_param_body_converts_to_dict(self): query_parameter = { "paramType": "body", "name": "body", "type": "User", } self.response["apis"][0]["operations"][0]["parameters"] = [ query_parameter ] self.register_urls() resource = SwaggerClient(u'http://localhost/api-docs').api_test School = resource.models.School # Also test all None items are removed from array list user = resource.models.User(id=42, schools=[School(name='s1'), None]) future = resource.testHTTP(body=user) self.assertEqual(json.dumps({ 'id': 42, 'schools': [{ 'name': 's1' }] }), future._http_client.request_params['data'])
def test_removal_of_none_attributes_from_param_body_model(self): query_parameter = { "paramType": "body", "name": "body", "type": "User", } self.response["apis"][0]["operations"][0]["parameters"] = [ query_parameter ] self.response["models"]["User"]["properties"]["school"] = { "$ref": "School" } self.register_urls() resource = SwaggerClient(u'http://localhost/api-docs').api_test user = resource.models.User(id=42) future = resource.testHTTP(body=user) # Removed the 'school': None - key, value pair from dict self.assertEqual(json.dumps({ 'id': 42, 'schools': [] }), future._http_client.request_params['data'])
def test_success_on_get_with_array_in_path_and_query_params(self): query_parameter = { "paramType": "query", "name": "test_params", "type": "string"} path_parameter = { "paramType": "path", "name": "param_ids", "type": "array", "items": { "type": "integer"}} self.response["apis"][0]["path"] = "/params/{param_ids}/test_http" self.response["apis"][0]["operations"][0]["parameters"] = [ query_parameter, path_parameter] self.register_urls() httpretty.register_uri( httpretty.GET, "http://localhost/params/40,41,42/test_http?", body='') resource = SwaggerClient(u'http://localhost/api-docs').api_test resp = resource.testHTTP(test_params=["foo", "bar"], param_ids=[40, 41, 42]).result() self.assertEqual(["foo", "bar"], httpretty.last_request().querystring['test_params']) self.assertEqual(None, resp)
def test_no_error_on_not_passing_non_required_param_in_query(self): self.register_urls() resource = SwaggerClient(u'http://localhost/api-docs').api_test # No error should be raised on not passing test_param (not required) resource.testHTTP()