import pytest from flexoentity.in_memory_backend import InMemoryBackend from flexoentity.domain import Domain def test_save_and_load_roundtrip(local_backend, sample_domain): local_backend.save(sample_domain.to_dict()) loaded_dict = local_backend.load(sample_domain.flexo_id) loaded = Domain.from_dict(loaded_dict) assert isinstance(loaded, Domain) assert loaded == sample_domain def test_update_overwrites_entity(local_backend, sample_domain): local_backend.save(sample_domain.to_dict()) # change something sample_domain.description = "UPDATED DESC" local_backend.update(sample_domain.to_dict()) loaded = Domain.from_dict(local_backend.load(sample_domain.flexo_id)) assert loaded.description == "UPDATED DESC" def test_delete_removes_entity(local_backend, sample_domain): local_backend.save(sample_domain.to_dict()) local_backend.delete(sample_domain.flexo_id) assert local_backend.load(sample_domain.flexo_id) is None assert local_backend.load_all() == [] def test_clear_removes_all(local_backend, sample_domain): local_backend.save(sample_domain.to_dict()) local_backend.clear() assert local_backend.load(sample_domain.flexo_id) is None assert local_backend.load_all() == []