def __make_fake_folder(cls, dashboard=None, look=None): dashboard_data = json.loads( serialize.serialize(dashboard)) if dashboard else None look_data = json.loads(serialize.serialize(look)) if look else None folder_data = { 'id': 'test_folder', 'name': 'Test folder', 'parent_id': '', 'dashboards': [dashboard_data] if dashboard_data else None, 'looks': [look_data] if look_data else None, } return serialize.deserialize(json.dumps(folder_data), models.Folder)
def test_serialize_partial(): """Do not send json null for model None field values.""" model = Model( enum1=Enum1.entry1, model_no_refs1=ModelNoRefs1(name1="model_no_refs1_name"), enum2=Enum2.entry2, model_no_refs2=ModelNoRefs2(name2="model_no_refs2_name"), list_enum1=[Enum1.entry1], list_model_no_refs1=[ModelNoRefs1(name1="model_no_refs1_name")], ) expected = json.dumps({ "enum1": "entry1", "model_no_refs1": { "name1": "model_no_refs1_name" }, "enum2": "entry2", "model_no_refs2": { "name2": "model_no_refs2_name" }, "list_enum1": ["entry1"], "list_model_no_refs1": [{ "name1": "model_no_refs1_name" }], }).encode("utf-8") assert sr.serialize(api_model=model, converter=converter) == expected
def __make_fake_look(cls, folder): look_data = { 'id': 123, 'space': json.loads(serialize.serialize(folder)), } return serialize.deserialize31(data=json.dumps(look_data), structure=models.Look)
def test_serialize_explict_null(): """Send json null for model field EXPLICIT_NULL values. """ # pass EXPLICIT_NULL into constructor model = Model( enum1=Enum1.entry1, model_no_refs1=ModelNoRefs1(name1="model_no_refs1_name"), enum2=Enum2.entry2, model_no_refs2=ModelNoRefs2(name2="model_no_refs2_name"), list_enum1=[Enum1.entry1], list_model_no_refs1=[ModelNoRefs1(name1="model_no_refs1_name")], name=ml.EXPLICIT_NULL, class_=ml.EXPLICIT_NULL, ) # set property to EXPLICIT_NULL model.finally_ = ml.EXPLICIT_NULL expected = json.dumps( { "enum1": "entry1", "model_no_refs1": {"name1": "model_no_refs1_name"}, "enum2": "entry2", "model_no_refs2": {"name2": "model_no_refs2_name"}, "list_enum1": ["entry1"], "list_model_no_refs1": [{"name1": "model_no_refs1_name"}], # json.dumps puts these into the json as null "name": None, "class": None, "finally": None, } ).encode("utf-8") assert sr.serialize(model) == expected
def __make_fake_dashboard(cls, folder): dashboard_data = { 'id': 'test_dashboard', 'space': json.loads(serialize.serialize(folder)), 'dashboard_elements': [], } return serialize.deserialize31(data=json.dumps(dashboard_data), structure=models.Dashboard)
def __make_fake_folder(cls, parent=None): parent_data = json.loads( serialize.serialize(parent)) if parent else None folder_data = { 'id': 'test_child_folder' if parent else 'test_folder', 'name': 'Test child folder' if parent else 'Test folder', 'parent_id': parent_data['id'] if parent_data else '', 'child_count': 1 if parent else 0, } return serialize.deserialize(json.dumps(folder_data), models.Folder)
def test_serialize_sequence(): model = WriteModel( id=1, name="my-name", class_="model-name", finally_=[ WriteChildModel(id=1, import_="child1"), WriteChildModel(id=2, import_="child2"), ], ) expected = json.dumps([MODEL_DATA, MODEL_DATA]).encode("utf-8") assert sr.serialize([model, model]) == expected
def test_serialize_sequence(): model = Model( enum1=Enum1.entry1, model_no_refs1=ModelNoRefs1(name1="model_no_refs1_name"), enum2=Enum2.entry2, model_no_refs2=ModelNoRefs2(name2="model_no_refs2_name"), list_enum1=[Enum1.entry1], list_model_no_refs1=[ModelNoRefs1(name1="model_no_refs1_name")], opt_enum1=Enum1.entry1, opt_model_no_refs1=ModelNoRefs1(name1="model_no_refs1_name"), id=1, name="my-name", class_="model-name", finally_=[1, 2, 3], ) expected = json.dumps([MODEL_DATA, MODEL_DATA]).encode("utf-8") assert sr.serialize([model, model]) == expected
def test_serialize_single(): model = Model( enum1=Enum1.entry1, model_no_refs1=ModelNoRefs1(name1="model_no_refs1_name"), enum2=Enum2.entry2, model_no_refs2=ModelNoRefs2(name2="model_no_refs2_name"), list_enum1=[Enum1.entry1], list_model_no_refs1=[ModelNoRefs1(name1="model_no_refs1_name")], opt_enum1=Enum1.entry1, opt_model_no_refs1=ModelNoRefs1(name1="model_no_refs1_name"), list_opt_model_no_refs1=[ModelNoRefs1(name1="model_no_refs1_name")], id=1, name="my-name", datetime_field=DATETIME_VALUE, class_="model-name", finally_=[1, 2, 3], ) expected = json.dumps(MODEL_DATA).encode("utf-8") assert sr.serialize(api_model=model, converter=converter) == expected
def test_serialize_explict_null(): """Send json null for model field EXPLICIT_NULL values. """ model = WriteModel( id=1, name=ml.EXPLICIT_NULL, class_=ml.EXPLICIT_NULL, finally_=[ WriteChildModel(id=1, import_="child1"), WriteChildModel(id=2, import_="child2"), ], ) model.finally_[0].import_ = ml.EXPLICIT_NULL data = copy.deepcopy(MODEL_DATA) # json.dumps sets these to null data["name"] = None data["class"] = None data["finally"][0]["import"] = None expected = json.dumps(data).encode("utf-8") assert sr.serialize(model) == expected
def test_serialize_partial(): """Do not send json null for model None field values. """ model = WriteModel(id=1, finally_=[WriteChildModel(id=1)]) expected = json.dumps({"id": 1, "finally": [{"id": 1}]}).encode("utf-8") assert sr.serialize(model) == expected