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)
Exemple #2
0
 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)
Exemple #3
0
 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'])
Exemple #4
0
 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)
Exemple #6
0
 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'])
Exemple #8
0
 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'])
Exemple #9
0
 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'])
Exemple #10
0
 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'])
Exemple #11
0
 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'])
Exemple #12
0
 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'])
Exemple #13
0
 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)
Exemple #16
0
 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)
Exemple #17
0
 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)
Exemple #18
0
 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)
Exemple #21
0
 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)
Exemple #26
0
 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)
Exemple #31
0
 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))
Exemple #38
0
 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)
Exemple #46
0
 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)
Exemple #48
0
 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)
Exemple #49
0
 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'])
Exemple #50
0
 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()
Exemple #53
0
 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()