def test_hydrate_method_changed(self): root = Root() version1 = Version() version1.name = "v1" version2 = Version() version2.name = "v2" method1 = Method() method1.name = "m1" method1.description = "b" method2 = Method() method2.name = "m1" method2.description = "c" root.versions = {"v1": version1, "v2": version2} version1.methods = {"m1": method1} version2.methods = {"m1": method2} root_dto = RootDto() Hydrator(version1, root.versions, []).hydrate_method(root_dto, root, method1) Hydrator(version2, root.versions, []).hydrate_method(root_dto, root, method2) self.assertEqual(1, len(root_dto.method_categories)) self.assertEqual(1, len(root_dto.method_categories[0].methods)) self.assertEqual(2, len(root_dto.method_categories[0].methods[0].description)) self.assertEqual(MultiVersion.Changes.updated, root_dto.method_categories[0].methods[0].changes_status["v2"])
def test_method(self): method = Method() method.name = "a" method.description = "b" method.method = Method.Methods.put parameter1 = RequestParameterDto(Parameter()) parameter1.position = 2 parameter2 = RequestParameterDto(Parameter()) parameter2.position = -1 method.parameter = {"p1": parameter1, "p2": parameter2} method_dto = MethodDto(method) self.assertEqual("a", method_dto.name) self.assertEqual("put", str(method_dto.method)) self.assertEqual([], method_dto.description) self.assertEqual([], method_dto.code) self.assertEqual([], method_dto.full_uri) self.assertEqual([], method_dto.absolute_uri) self.assertEqual([], method_dto.request_headers) self.assertEqual([], method_dto.request_parameters) self.assertEqual([], method_dto.request_body) self.assertEqual([], method_dto.response_codes) self.assertEqual([], method_dto.response_body) self.assertEqual([], method_dto.versions) self.assertEqual({}, method_dto.changes_status) self.assertEqual({}, method_dto.samples) m1 = MultiVersionDto(parameter1, "v1") m2 = MultiVersionDto(parameter2, "v1") method_dto.request_parameters = [m1, m2] self.assertEqual([m1], method_dto.request_uri_parameters) self.assertEqual([m2], method_dto.request_query_string_parameters)
def test_method(self): method = Method() method.name = "a" method.method = Method.Methods.post method.code = 200 method.full_uri = "c" method.absolute_uri = "d" parameter = Parameter() parameter.type = "string" method.request_headers = {"e": parameter} method.request_parameters = {"f": parameter} method.request_body = ObjectObject() method.response_body = ObjectArray() method_sample = MethodSample(method) self.assertEqual("a", method_sample.name) self.assertEqual(Method.Methods.post, method_sample.method) self.assertEqual(200, method_sample.code) self.assertEqual("OK", method_sample.message) self.assertEqual("c", method_sample.full_uri) self.assertEqual("d", method_sample.absolute_uri) self.assertIsInstance(method_sample.request_headers, list) self.assertEqual(1, len(method_sample.request_headers)) self.assertIsInstance(method_sample.request_headers[0], ParameterSample) self.assertIsInstance(method_sample.request_parameters, dict) self.assertEqual(1, len(method_sample.request_parameters.values())) self.assertIsInstance(method_sample.request_parameters["f"], ParameterSample) self.assertIsInstance(method_sample.request_body, ObjectObjectSample) self.assertIsInstance(method_sample.response_body, ObjectArraySample)
def test_get_uri_with_missing_parameters(self): root = Root() version = Version() version.name = "v" method = Method() method.name = "m" method.category = "a" method.full_uri = "/{foo}/{p}" parameter = Parameter() parameter.name = "p" parameter.type = "string" method.request_parameters = {"p": parameter} root.versions = {"v": version} version.methods = {"m": method} version.types = {"m": type} root_dto = RootDto() hydrator = Hydrator(version, {"v": version}, []) hydrator.hydrate_method(root_dto, root, method) parameters = self.source.validate(root_dto) parameters = self.source.get_uri_with_missing_parameters(root_dto) self.assertEqual([ {"name": "foo", "uri": "/{foo}/{p}", "method": "m", "version": "v"}, ], parameters)
def test_method(self): method = Method() method.name = "a" method.description = "b" method.method = Method.Methods.put parameter1 = RequestParameterDto(Parameter()) parameter1.position = 2 parameter2 = RequestParameterDto(Parameter()) parameter2.position = -1 method.parameter = {"p1": parameter1, "p2": parameter2} method_dto = MethodDto(method) self.assertEqual("a", method_dto.name) self.assertEqual("put", str(method_dto.method)) self.assertEqual([], method_dto.description) self.assertEqual([], method_dto.code) self.assertEqual([], method_dto.full_uri) self.assertEqual([], method_dto.absolute_uri) self.assertEqual([], method_dto.request_headers) self.assertEqual([], method_dto.request_parameters) self.assertEqual([], method_dto.request_body) self.assertEqual([], method_dto.response_codes) self.assertEqual([], method_dto.response_body) self.assertEqual([], method_dto.versions) self.assertEqual({}, method_dto.changes_status) self.assertEqual({}, method_dto.samples) m1 = MultiVersionDto(parameter1, "v1") m2 = MultiVersionDto(parameter2, "v1") method_dto.request_parameters = [m1, m2] self.assertEqual([m1], method_dto.request_uri_parameters) self.assertEqual([m2], method_dto.request_query_string_parameters)
def test_get_uri_with_missing_parameters(self): root = Root() version = Version() version.name = "v" method = Method() method.name = "m" method.category = "a" method.full_uri = "/{foo}/{p}" parameter = Parameter() parameter.name = "p" parameter.type = "string" method.request_parameters = {"p": parameter} root.versions = {"v": version} version.methods = {"m": method} version.types = {"m": type} root_dto = RootDto() hydrator = Hydrator(version, {"v": version}, []) hydrator.hydrate_method(root_dto, root, method) parameters = self.source.validate(root_dto) parameters = self.source.get_uri_with_missing_parameters(root_dto) self.assertEqual([ { "name": "foo", "uri": "/{foo}/{p}", "method": "m", "version": "v" }, ], parameters)
def test_method(self): method = Method() method.name = "a" method.method = Method.Methods.post method.code = 200 method.full_uri = "c" method.absolute_uri = "d" parameter = Parameter() parameter.type = "string" method.request_headers = {"e": parameter} method.request_parameters = {"f": parameter} method.request_body = ObjectObject() method.response_body = ObjectArray() method_sample = MethodSample(method) self.assertEqual("a", method_sample.name) self.assertEqual(Method.Methods.post, method_sample.method) self.assertEqual(200, method_sample.code) self.assertEqual("OK", method_sample.message) self.assertEqual("c", method_sample.full_uri) self.assertEqual("d", method_sample.absolute_uri) self.assertIsInstance(method_sample.request_headers, list) self.assertEqual(1, len(method_sample.request_headers)) self.assertIsInstance(method_sample.request_headers[0], ParameterSample) self.assertIsInstance(method_sample.request_parameters, dict) self.assertEqual(1, len(method_sample.request_parameters.values())) self.assertIsInstance(method_sample.request_parameters["f"], ParameterSample) self.assertIsInstance(method_sample.request_body, ObjectObjectSample) self.assertIsInstance(method_sample.response_body, ObjectArraySample)
def test_sort_method_lt(self): v1 = Method() v1.name = "a" v2 = Method() v2.name = "b" self.assertLess(v1, v2)
def test_sort_method_equals(self): v1 = Method() v1.name = "a" v2 = Method() v2.name = "a" self.assertEqual(v1, v2)