MCPcopy
hub / github.com/python-attrs/attrs / assert_proper_dict_class

Method assert_proper_dict_class

tests/test_funcs.py:111–132  ·  tests/test_funcs.py::TestAsDict.assert_proper_dict_class
(obj, obj_dict)

Source from the content-addressed store, hash-verified

109 obj_dict = asdict(obj, dict_factory=dict_class)
110
111 def assert_proper_dict_class(obj, obj_dict):
112 assert isinstance(obj_dict, dict_class)
113
114 for field in fields(obj.__class__):
115 field_val = getattr(obj, field.name)
116 if has(field_val.__class__):
117 class="cm"># This field holds a class, recurse the assertions.
118 assert_proper_dict_class(field_val, obj_dict[field.name])
119 elif isinstance(field_val, Sequence):
120 dict_val = obj_dict[field.name]
121 for item, item_dict in zip(field_val, dict_val):
122 if has(item.__class__):
123 assert_proper_dict_class(item, item_dict)
124 elif isinstance(field_val, Mapping):
125 class="cm"># This field holds a dictionary.
126 assert isinstance(obj_dict[field.name], dict_class)
127
128 for key, val in field_val.items():
129 if has(val.__class__):
130 assert_proper_dict_class(
131 val, obj_dict[field.name][key]
132 )
133
134 assert_proper_dict_class(obj, obj_dict)
135

Callers

nothing calls this directly

Calls 2

fieldsFunction · 0.90
hasFunction · 0.90

Tested by

no test coverage detected