| 5 | |
| 6 | |
| 7 | def test_struct_roundtrip(): |
| 8 | data = { |
| 9 | "foo": "bar", |
| 10 | "baz": None, |
| 11 | "quux": 123, |
| 12 | "zap": [1, {"two": 3}, "four"], |
| 13 | } |
| 14 | data_json = json.dumps(data) |
| 15 | |
| 16 | struct_from_dict = Struct().from_dict(data) |
| 17 | assert struct_from_dict.fields == data |
| 18 | assert struct_from_dict.to_dict() == data |
| 19 | assert struct_from_dict.to_json() == data_json |
| 20 | |
| 21 | struct_from_json = Struct().from_json(data_json) |
| 22 | assert struct_from_json.fields == data |
| 23 | assert struct_from_json.to_dict() == data |
| 24 | assert struct_from_json == struct_from_dict |
| 25 | assert struct_from_json.to_json() == data_json |
| 26 | |
| 27 | struct_pyd_from_dict = StructPydantic(fields={}).from_dict(data) |
| 28 | assert struct_pyd_from_dict.fields == data |
| 29 | assert struct_pyd_from_dict.to_dict() == data |
| 30 | assert struct_pyd_from_dict.to_json() == data_json |
| 31 | |
| 32 | struct_pyd_from_dict = StructPydantic(fields={}).from_json(data_json) |
| 33 | assert struct_pyd_from_dict.fields == data |
| 34 | assert struct_pyd_from_dict.to_dict() == data |
| 35 | assert struct_pyd_from_dict == struct_pyd_from_dict |
| 36 | assert struct_pyd_from_dict.to_json() == data_json |