Exemple #1
0
    def test_parse_request_parameters_with_ref(self, patched_reference,
                                               instance):

        interface = OpenAPITaskInterface()
        interface.method = constants.POST
        interface.url = "url"
        interface.parameters = {"param_1": {constants.REF: "some_ref"}}

        instance.parse_request_parameters(interface, {})

        patched_reference.assert_called()
Exemple #2
0
    def test_functionality(self, patched_print, instance):
        inter_1 = OpenAPITaskInterface()
        inter_1.parameters = {
            # Resource, with path param, which has pure producers
            "param_1": {
                constants.RESOURCE: "resource_1",
                constants.IN_: constants.PATH_PARAM
            },
            # Resource but no path param
            "param_2": {
                constants.RESOURCE: "resource_2",
                constants.IN_: constants.BODY_PARAM
            },
            # No resource
            "param_3": {
                constants.IN_: constants.PATH_PARAM
            },
            # Resource with path param, does not have any pure producers
            "param_4": {
                constants.RESOURCE: "resource_4",
                constants.IN_: constants.PATH_PARAM
            },
        }

        instance.interfaces = [inter_1]

        res_1 = self.get_resource("resource_1")
        res_2 = self.get_resource("resource_2")
        res_3 = self.get_resource("resource_3")
        res_4 = self.get_resource("resource_4")
        res_5 = self.get_resource("resource_5")

        res_4.consumers.add("b")

        res_graph = ResourceGraph({})
        res_graph.nodes = {
            "res_1": res_1,
            "res_2": res_2,
            "res_3": res_3,
            "res_4": res_4,
            "res_5": res_5
        }

        instance.resource_graph = res_graph

        assert instance.get_resources_with_no_producers() == {"resource_4"}

        instance.validate()
        patched_print.assert_called()
Exemple #3
0
    def test_parse_request_parameters_with_destructor_resource(self, instance):
        interface = OpenAPITaskInterface()
        interface.method = constants.POST
        interface.url = "url"
        interface.parameters = {
            "param_1": {
                constants.RESOURCE: "some_resource"
            }
        }
        instance.is_delete_resource = mock.MagicMock(return_value=True)

        ref_graph = {}
        instance.parse_request_parameters(interface, ref_graph)

        assert ref_graph == {"some_resource": "destructor"}
Exemple #4
0
    def test_parse_request_parameters_with_body_params(self, instance):
        interface = OpenAPITaskInterface()
        interface.method = constants.POST
        interface.url = "url"
        interface.parameters = {
            "param_1": {
                constants.IN_: constants.BODY_PARAM
            }
        }
        instance.get_schema_refs = mock.MagicMock(
            return_value=["ref_1", "ref_2"])

        ref_graph = {"ref_1": "producer", "ref_3": "producer"}
        instance.parse_request_parameters(interface, ref_graph)

        assert ref_graph == {
            "ref_1": "producer",
            "ref_2": "consumer",
            "ref_3": "producer"
        }
Exemple #5
0
    def test_parse_paths_with_producers(self, instance):
        dummy_resource = Resource("res")

        instance.remove_dependent_producers = mock.MagicMock()
        instance.parse_request_parameters = mock.MagicMock()
        instance.get_associated_resource_for_ref = mock.MagicMock(
            return_value="res")
        instance.nodes = {"res": dummy_resource}
        interface = OpenAPITaskInterface()
        interface.producer_references = "some_ref"
        interface.method = constants.POST
        interface.url = "url"

        instance.parse_paths([interface])

        instance.remove_dependent_producers.assert_called()
        instance.parse_request_parameters.assert_called()
        assert dummy_resource.consumers == set()
        assert dummy_resource.producers == {interface.op_id}
        assert dummy_resource.destructors == set()
Exemple #6
0
    def test_parse_paths_with_no_valid_resource_node(self, instance):
        dummy_resource = Resource("res")

        def add_destructor(*args):
            ref_graph = args[1]
            ref_graph["ref"] = "destructor"

        instance.remove_dependent_producers = mock.MagicMock()
        instance.parse_request_parameters = mock.MagicMock(
            side_effect=add_destructor)
        instance.get_associated_resource_for_ref = mock.MagicMock(
            return_value="invalid_res")
        instance.nodes = {"res": dummy_resource}
        interface = OpenAPITaskInterface()
        interface.method = constants.POST
        interface.url = "url"

        instance.parse_paths([interface])

        instance.remove_dependent_producers.assert_called()
        instance.parse_request_parameters.assert_called()
        assert dummy_resource.consumers == set()
        assert dummy_resource.producers == set()
        assert dummy_resource.destructors == set()
 def create_interface(method=None, url=None):
     interface = OpenAPITaskInterface()
     interface.method = method or constants.GET
     interface.url = url or "url"
     return interface
 def instance(self):
     return OpenAPITaskInterface()