Exemple #1
0
    def get_changed(self) -> Dict[str, Any]:
        """Gets dictionary of all changed fields"""

        new_data = self.dict(exclude=self._get_excluded_changed_fields())
        updated = dict_diff(self._initial_data, new_data)

        return updated
Exemple #2
0
def test_dict_diff_equal():
    assert dict_diff({}, {}) == {}

    obj = {
        "a": 1,
        "b": 2,
        "c": None,
        "d": 2.5,
        "e": "test",
        "f": [],
        "g": [1, 2, 3]
    }
    assert dict_diff(obj, obj) == {}

    obj = {
        "a": 1,
        "b": {
            "b": 2,
            "c": None,
            "d": 2.5,
            "e": "test",
            "f": [],
            "g": [1, 2, 3]
        }
    }
    assert dict_diff(obj, obj) == {}

    obj = {
        "a": 1,
        "b": {
            "b": 2,
            "c": {
                "c": None,
                "d": 2.5,
                "e": "test",
                "f": [],
                "g": [1, 2, 3]
            }
        }
    }
    assert dict_diff(obj, obj) == {}
Exemple #3
0
def test_dict_diff_new_keys():
    obj = {
        "a": 1,
        "b": 2,
        "c": None,
        "d": 2.5,
        "e": "test",
        "f": [],
        "g": [1, 2, 3]
    }
    assert dict_diff({}, obj) == obj
    assert dict_diff({"a": 1, "b": {}}, {"a": 1, "b": obj}) == {"b": obj}

    obj = {
        "a": 1,
        "b": {
            "b": 2,
            "c": None,
            "d": 2.5,
            "e": "test",
            "f": [],
            "g": [1, 2, 3]
        }
    }
    assert dict_diff({}, obj) == obj
    assert dict_diff({"a": 1, "b": {}}, {"a": 1, "b": obj}) == {"b": obj}

    obj = {
        "a": 1,
        "b": {
            "b": 2,
            "c": {
                "c": None,
                "d": 2.5,
                "e": "test",
                "f": [],
                "g": [1, 2, 3]
            }
        }
    }
    assert dict_diff({}, obj) == obj
    assert dict_diff({"a": 1, "b": {}}, {"a": 1, "b": obj}) == {"b": obj}
Exemple #4
0
def test_dict_diff_new_changed():
    assert (dict_diff(
        {
            "a": 1,
            "b": 2,
            "c": None,
            "d": 2.5,
            "e": "test",
            "f": [],
            "g": [1, 2, 3]
        },
        {
            "a": 3,
            "b": 2,
            "c": "test",
            "d": "test",
            "e": "test6",
            "f": [1],
            "g": [1, 2, 3]
        },
    ) == {
        "a": 3,
        "c": "test",
        "d": "test",
        "e": "test6",
        "f": [1]
    })

    assert (dict_diff(
        {
            "a": 1,
            "b": {
                "b": 2,
                "c": None,
                "d": 2.5,
                "e": "test",
                "f": [],
                "g": [1, 2, 3]
            }
        },
        {
            "a": 3,
            "b": {
                "b": 2,
                "c": "test",
                "d": "test",
                "e": "test6",
                "f": [1],
                "g": [1, 2, 3]
            }
        },
    ) == {
        "a": 3,
        "b": {
            "c": "test",
            "d": "test",
            "e": "test6",
            "f": [1]
        }
    })

    assert (dict_diff(
        {
            "a": 1,
            "b": {
                "b": 2,
                "c": {
                    "c": None,
                    "d": 2.5,
                    "e": "test",
                    "f": [],
                    "g": [1, 2, 3]
                }
            }
        },
        {
            "a": 3,
            "b": {
                "b": 2,
                "c": {
                    "c": "test",
                    "d": "test",
                    "e": "test6",
                    "f": [1],
                    "g": [1, 2, 3]
                }
            }
        },
    ) == {
        "a": 3,
        "b": {
            "c": {
                "c": "test",
                "d": "test",
                "e": "test6",
                "f": [1]
            }
        }
    })
Exemple #5
0
 def get_changed(self: ProtectObject) -> Dict[str, Any]:
     return dict_diff(self._initial_data, self.dict())