Beispiel #1
0
    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"])
Beispiel #2
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
    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)
Beispiel #6
0
    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)
Beispiel #8
0
 def test_sort_method_lt(self):
     v1 = Method()
     v1.name = "a"
     v2 = Method()
     v2.name = "b"
     self.assertLess(v1, v2)
Beispiel #9
0
 def test_sort_method_equals(self):
     v1 = Method()
     v1.name = "a"
     v2 = Method()
     v2.name = "a"
     self.assertEqual(v1, v2)