mirror of
https://github.com/cloudflare/cloudflare-python.git
synced 2026-01-16 23:01:03 +00:00
58 lines
1.5 KiB
Python
58 lines
1.5 KiB
Python
from cloudflare._utils import deepcopy_minimal
|
|
|
|
|
|
def assert_different_identities(obj1: object, obj2: object) -> None:
|
|
assert obj1 == obj2
|
|
assert id(obj1) != id(obj2)
|
|
|
|
|
|
def test_simple_dict() -> None:
|
|
obj1 = {"foo": "bar"}
|
|
obj2 = deepcopy_minimal(obj1)
|
|
assert_different_identities(obj1, obj2)
|
|
|
|
|
|
def test_nested_dict() -> None:
|
|
obj1 = {"foo": {"bar": True}}
|
|
obj2 = deepcopy_minimal(obj1)
|
|
assert_different_identities(obj1, obj2)
|
|
assert_different_identities(obj1["foo"], obj2["foo"])
|
|
|
|
|
|
def test_complex_nested_dict() -> None:
|
|
obj1 = {"foo": {"bar": [{"hello": "world"}]}}
|
|
obj2 = deepcopy_minimal(obj1)
|
|
assert_different_identities(obj1, obj2)
|
|
assert_different_identities(obj1["foo"], obj2["foo"])
|
|
assert_different_identities(obj1["foo"]["bar"], obj2["foo"]["bar"])
|
|
assert_different_identities(obj1["foo"]["bar"][0], obj2["foo"]["bar"][0])
|
|
|
|
|
|
def test_simple_list() -> None:
|
|
obj1 = ["a", "b", "c"]
|
|
obj2 = deepcopy_minimal(obj1)
|
|
assert_different_identities(obj1, obj2)
|
|
|
|
|
|
def test_nested_list() -> None:
|
|
obj1 = ["a", [1, 2, 3]]
|
|
obj2 = deepcopy_minimal(obj1)
|
|
assert_different_identities(obj1, obj2)
|
|
assert_different_identities(obj1[1], obj2[1])
|
|
|
|
|
|
class MyObject: ...
|
|
|
|
|
|
def test_ignores_other_types() -> None:
|
|
# custom classes
|
|
my_obj = MyObject()
|
|
obj1 = {"foo": my_obj}
|
|
obj2 = deepcopy_minimal(obj1)
|
|
assert_different_identities(obj1, obj2)
|
|
assert obj1["foo"] is my_obj
|
|
|
|
# tuples
|
|
obj3 = ("a", "b")
|
|
obj4 = deepcopy_minimal(obj3)
|
|
assert obj3 is obj4
|