Ejemplo n.º 1
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)
Ejemplo n.º 2
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)
Ejemplo n.º 3
0
 def test_raise_with_wrapper(self):
     class MyException(Exception):
         pass
     self.uut = SwaggerClient(self.resource_listing, raise_with=MyException)
     httpretty.register_uri(
         httpretty.GET, "http://swagger.py/swagger-test/pet", status=500)
     self.assertRaises(MyException, self.uut.pet.listPets().result)
Ejemplo n.º 4
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'])
Ejemplo n.º 5
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)
Ejemplo n.º 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))
Ejemplo n.º 7
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)
Ejemplo n.º 8
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)
Ejemplo n.º 9
0
 def test_success_if_ref_but_no_type_in_property(self):
     self.response["models"]["User"]["properties"]["school"] = {
         "$ref": "School"
     }
     self.register_urls()
     resource = SwaggerClient(u'http://localhost/api-docs').api_test
     self.assertTrue('school' in resource.models.User().__dict__)
Ejemplo n.º 10
0
 def test_headers_present_when_loading_resource_through_Asynchronous(self):
     self.response['apis'] = []
     self.register_urls()
     async_http_client = AsynchronousHttpClient(headers={'foo': 'bar'})
     SwaggerClient(u'http://localhost/api-docs',
                   http_client=async_http_client)
     self.assertEqual('bar', httpretty.last_request().headers['foo'])
Ejemplo n.º 11
0
 def setup_client(self):
     http_client = SynchronousHttpClient()
     http_client.set_basic_auth(
         urlparse(self.http_uri).netloc.split(':')[0], self.ari_user,
         self.ari_pass)
     self.client = SwaggerClient(self.ari_url, http_client=http_client)
     logger.info('ARI client setup done.')
Ejemplo n.º 12
0
 def test_success_with_api_call(self):
     self.register_urls()
     httpretty.register_uri(
         httpretty.GET,
         "http://localhost/api-docs/api",
         body='{"swaggerVersion": "1.2", "basePath": "/", "apis":[]}')
     self.client = SwaggerClient(u'http://localhost/api-docs')
     self.assertNotEqual(None, self.client)
Ejemplo n.º 13
0
 def test_success_on_model_types_instantiation(self):
     self.register_urls()
     resource = SwaggerClient(u'http://localhost/api-docs').api_test
     User = resource.models.User
     School = resource.models.School
     user = User(id=42, schools=[School(name="a"), School(name="b")])
     user1 = User(schools=[School(name="a"), School(name="b")], id=42)
     self.assertEqual(user1, user)
Ejemplo n.º 14
0
 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)
Ejemplo n.º 15
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)
Ejemplo n.º 16
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'])
Ejemplo n.º 17
0
 def test_types_of_model_attributes(self):
     self.register_urls()
     resource = SwaggerClient(u'http://localhost/api-docs').api_test
     models = resource.models
     user = models.User()
     school = models.School()
     self.assertTrue(isinstance(user.id, long))
     self.assertTrue(isinstance(user.schools, list))
     self.assertTrue(isinstance(school.name, str))
Ejemplo n.º 18
0
 def test_error_on_wrong_type_instead_of_complex_type(self):
     self.register_urls()
     httpretty.register_uri(httpretty.GET,
                            "http://localhost/test_http",
                            body='"NOT_COMPLEX_TYPE"')
     self.assertRaises(
         TypeError,
         SwaggerClient(
             u'http://localhost/api-docs').api_test.testHTTP().result)
Ejemplo n.º 19
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))
Ejemplo n.º 20
0
 def test_success_on_extra_field_in_complex_type(self):
     self.register_urls()
     self.sample_model["extra"] = 42
     httpretty.register_uri(httpretty.GET,
                            "http://localhost/test_http",
                            body=json.dumps(self.sample_model))
     result = SwaggerClient(
         u'http://localhost/api-docs').api_test.testHTTP().result()
     self.assertEqual(result._raw["extra"], 42)
Ejemplo n.º 21
0
 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)
Ejemplo n.º 22
0
    def test_headers(self):
        self.uut = SwaggerClient(self.resource_listing,
                                 SynchronousHttpClient(headers={'foo': 'bar'}))
        httpretty.register_uri(httpretty.GET,
                               "http://swagger.py/swagger-test/pet",
                               body='[]')

        self.uut.pet.listPets().result()
        self.assertEqual('bar', httpretty.last_request().headers['foo'])
Ejemplo n.º 23
0
 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)
Ejemplo n.º 24
0
 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)
Ejemplo n.º 25
0
 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))
Ejemplo n.º 26
0
 def test_error_on_missing_required_type_instead_of_complex_type(self):
     self.register_urls()
     self.sample_model.pop("id")
     httpretty.register_uri(httpretty.GET,
                            "http://localhost/test_http",
                            body=json.dumps(self.sample_model))
     self.assertRaises(
         AssertionError,
         SwaggerClient(
             u'http://localhost/api-docs').api_test.testHTTP().result)
Ejemplo n.º 27
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'])
Ejemplo n.º 28
0
 def test_error_on_missing_type_inside_nested_complex_type_1(self):
     self.register_urls()
     self.sample_model["schools"][0] = {}  # Omit 'name'
     httpretty.register_uri(httpretty.GET,
                            "http://localhost/test_http",
                            body=json.dumps(self.sample_model))
     self.assertRaises(
         AssertionError,
         SwaggerClient(
             u'http://localhost/api-docs').api_test.testHTTP().result)
Ejemplo n.º 29
0
 def test_error_on_wrong_type_inside_complex_type(self):
     self.register_urls()
     self.sample_model["id"] = "Not Integer"
     httpretty.register_uri(httpretty.GET,
                            "http://localhost/test_http",
                            body=json.dumps(self.sample_model))
     self.assertRaises(
         TypeError,
         SwaggerClient(
             u'http://localhost/api-docs').api_test.testHTTP().result)
Ejemplo n.º 30
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'])