def test_deserialisation(): store = ListStore() # pylint: disable=protected-access first_id = store._generate_identifier() second_id = store._generate_identifier() additional_id = store._generate_identifier() serialized = [ {"name": "people", "primary_person": second_id, "items": [first_id, second_id]}, {"name": "pets", "items": [additional_id]}, ] deserialized = ListStore.deserialize(serialized) assert deserialized["people"].items == [first_id, second_id] assert deserialized["people"].primary_person == second_id assert deserialized["pets"].items == [additional_id]
def test_unique_id_generation(): """ Ensure that every id generated is unique per questionnaire. """ # Mock the app.data_models.list_store.random_string method to return duplicates. with patch( "app.data_models.list_store.random_string", side_effect=["first", "first", "second"], ): store = ListStore() # pylint: disable=protected-access store._lists["test"] = ListModel(name="test", items=["first"]) result = store._generate_identifier() assert result == "second"