Ejemplo n.º 1
0
    def test_field_should_exist_if_ommitted_but_is_parent_of_omit(self):
        serializer = FlexFieldsModelSerializer()

        result = serializer._should_field_exist("employer", ["employer"], [],
                                                {"employer": ["address"]})

        self.assertTrue(result)
 def test_get_expanded_names_including_omitted_when_defer_to_next_level(self):
     serializer = FlexFieldsModelSerializer()
     serializer.expandable_fields = {"cat": "field", "dog": "field"}
     result = serializer._get_expanded_field_names(
         ["cat"], ["cat"], [], {"cat": ["age"]}
     )
     self.assertEqual(result, ["cat"])
Ejemplo n.º 3
0
    def test_get_omit_input_from_explicit_settings(self):
        serializer = FlexFieldsModelSerializer(context={})

        serializer.context["request"] = MockRequest(
            method="GET", query_params={"omit": "cat,dog"})

        result = serializer._get_omit_input({"omit": ["fish"]})
        self.assertEqual(result, ["fish"])
Ejemplo n.º 4
0
    def test_parse_request_list_value(self):
        serializer = FlexFieldsModelSerializer(context={})

        serializer.context["request"] = MockRequest(
            method="GET", query_params={"abc": "cat,dog,mouse"})

        result = serializer._parse_request_list_value("abc")
        self.assertEqual(result, ["cat", "dog", "mouse"])
Ejemplo n.º 5
0
    def test_get_expand_input_from_query_param(self):
        serializer = FlexFieldsModelSerializer(context={})

        serializer.context["request"] = MockRequest(
            method="GET", query_params={"expand": "cat,dog"})

        result = serializer._get_expand_input({"expand": []})
        self.assertEqual(result, ["cat", "dog"])
Ejemplo n.º 6
0
    def test_get_omit_input_from_query_param(self):
        serializer = FlexFieldsModelSerializer(context={})

        serializer.context["request"] = MockRequest(
            method="GET", query_params=MultiValueDict({"omit": ["cat,dog"]}))

        result = serializer._get_omit_input({"omit": []})
        self.assertEqual(result, ["cat", "dog"])
 def test_get_query_param_value_should_return_empty_if_not_root_serializer(
         self):
     serializer = FlexFieldsModelSerializer(context={
         "request":
         MockRequest(method="GET",
                     query_params=MultiValueDict({"expand": ["cat"]}))
     }, )
     serializer.parent = "Another serializer here"
     self.assertFalse(serializer._get_query_param_value("expand"), [])
Ejemplo n.º 8
0
    def test_get_expand_input_from_query_param_limit_to_list_permitted(self):
        serializer = FlexFieldsModelSerializer(context={})

        serializer.context["request"] = MockRequest(
            method="GET", query_params=MultiValueDict({"expand": ["cat,dog"]}))

        serializer.context["permitted_expands"] = ["cat"]
        result = serializer._get_expand_input({"expand": []})
        self.assertEqual(result, ["cat"])
    def test_parse_request_list_value(self):
        test_params = [
            {"abc": ["cat,dog,mouse"]},
            {"abc": ["cat", "dog", "mouse"]},
            {"abc[]": ["cat", "dog", "mouse"]},
        ]
        for query_params in test_params:
            serializer = FlexFieldsModelSerializer(context={})
            serializer.context["request"] = MockRequest(
                method="GET", query_params=MultiValueDict(query_params)
            )

            result = serializer._get_query_param_value("abc")
            self.assertEqual(result, ["cat", "dog", "mouse"])
 def test_set_omit_input_from_query_param(self):
     serializer = FlexFieldsModelSerializer(
         context={
             "request":
             MockRequest(method="GET",
                         query_params=MultiValueDict({"omit": ["cat,dog"]}))
         })
     self.assertEqual(serializer._flex_options_all["omit"], ["cat", "dog"])
    def test_get_expand_input_from_query_param_limit_to_list_permitted(self):
        serializer = FlexFieldsModelSerializer(
            context={
                "request": MockRequest(
                    method="GET", query_params=MultiValueDict({"expand": ["cat,dog"]})
                ),
                "permitted_expands": ["cat"],
            }
        )

        self.assertEqual(serializer._flex_options["expand"], ["cat"])
    def test_set_fields_input_from_explicit_settings(self):
        serializer = FlexFieldsModelSerializer(
            fields=["fish"],
            context={
                "request": MockRequest(
                    method="GET", query_params=MultiValueDict({"fields": "cat,dog"})
                )
            },
        )

        self.assertEqual(serializer._flex_options["fields"], ["fish"])
Ejemplo n.º 13
0
 def test_field_should_not_exist_if_not_in_sparse(self):
     serializer = FlexFieldsModelSerializer()
     result = serializer._should_field_exist("name", [], ["age"], {})
     self.assertFalse(result)
Ejemplo n.º 14
0
 def test_can_access_request_if_request_method_is_get(self):
     serializer = FlexFieldsModelSerializer(
         context={"request": MockRequest(method="GET")})
     self.assertTrue(serializer._can_access_request)
Ejemplo n.º 15
0
 def test_cannot_access_request_if_context_missing_request(self):
     serializer = FlexFieldsModelSerializer(context={})
     self.assertFalse(serializer._can_access_request)
Ejemplo n.º 16
0
 def test_cannot_access_request_if_no_context(self):
     serializer = FlexFieldsModelSerializer()
     self.assertFalse(serializer._can_access_request)
Ejemplo n.º 17
0
 def test_cannot_access_request_if_not_root_serializer(self):
     serializer = FlexFieldsModelSerializer()
     serializer.parent = "Another serializer here"
     self.assertFalse(serializer._can_access_request)
Ejemplo n.º 18
0
 def test_get_expanded_names_but_only_sparse(self):
     serializer = FlexFieldsModelSerializer()
     serializer.expandable_fields = {"cat": "field", "dog": "field"}
     result = serializer._get_expanded_names(["cat"], [], ["cat"], {})
     self.assertEqual(result, ["cat"])
Ejemplo n.º 19
0
 def test_get_expanded_names_if_all(self):
     serializer = FlexFieldsModelSerializer()
     serializer.expandable_fields = {"cat": "field", "dog": "field"}
     result = serializer._get_expanded_names("*", [], [], {})
     self.assertEqual(result, ["cat", "dog"])
Ejemplo n.º 20
0
 def test_clean_fields(self):
     serializer = FlexFieldsModelSerializer()
     serializer.fields = {"cat": 1, "dog": 2, "zebra": 3}
     serializer._clean_fields(["cat"], [], {})
     self.assertEqual(serializer.fields, {"dog": 2, "zebra": 3})
Ejemplo n.º 21
0
 def test_parse_request_list_value_empty_if_cannot_access_request(self):
     serializer = FlexFieldsModelSerializer(context={})
     result = serializer._parse_request_list_value("abc")
     self.assertEqual(result, [])
 def test_clean_fields(self):
     serializer = FlexFieldsModelSerializer()
     serializer.fields = {"cat": 1, "dog": 2, "zebra": 3}
     result = serializer._get_fields_names_to_remove(["cat"], [], {})
     self.assertEqual(result, ["cat"])