class ModelWithJsonProperty(Model): j = props.Json()
def test_jsons_fail_to_load_invalid_data(): with pytest.raises(ValueError): props.Json().prepare_to_load(None, json.dumps({"__anom_type": "unknown"}))
def test_jsons_fail_to_dump_invalid_data(): with pytest.raises(TypeError): props.Json().prepare_to_store(None, object())
def test_jsons_dump_and_load_entities(person, mutant, human): for entity in (person, mutant, human): json = props.Json() entity_json = json.prepare_to_store(None, entity) loaded_entity = json.prepare_to_load(None, entity_json) assert loaded_entity == entity
def test_jsons_load_data_from_json_on_load(): data = {"foo": {"bar": 42}} assert props.Json().prepare_to_load(None, json.dumps(data)) == data
def test_jsons_dump_data_to_json_on_store(): data = {"foo": {"bar": 42}} assert props.Json().prepare_to_store(None, data) == json.dumps(data, separators=(",", ":"))