source: flexoentity/tests/conftest.py@ 8a238e2

Last change on this file since 8a238e2 was 8a238e2, checked in by Enrico Schwass <ennoausberlin@…>, 3 months ago

skip some tests due to missing correct serialized entities

  • Property mode set to 100644
File size: 1.2 KB
Line 
1# tests/conftest.py
2
3import pytest
4import json
5from flexoentity import FlexoEntity, EntityType, EntityState
6
7
8class DummyEntity(FlexoEntity):
9 """Minimal concrete subclass for testing FlexoEntity logic."""
10
11 def __init__(self, domain, etype, state, seed="DUMMY"):
12 self._seed = seed
13 super().__init__(domain, etype, state)
14
15 @property
16 def text_seed(self) -> str:
17 return self._seed
18
19 @classmethod
20 def from_dict(cls, data):
21 """Ensure enums and seed are reconstructed correctly."""
22 domain = data["domain"]
23 etype = EntityType[data["etype"]] if isinstance(data["etype"], str) else data["etype"]
24 state = EntityState[data["state"]] if isinstance(data["state"], str) else data["state"]
25 seed = data.get("text_seed", "DUMMY-CONTENT")
26 return cls(domain=domain, etype=etype, state=state, seed=seed)
27
28 @classmethod
29 def from_json(cls, data_str: str):
30 return cls.from_dict(json.loads(data_str))
31
32@pytest.fixture
33def entity():
34 """Generic FlexoEntity-like instance in draft state."""
35 return DummyEntity(
36 domain="AF",
37 etype=EntityType.CATALOG,
38 state=EntityState.DRAFT,
39 )
Note: See TracBrowser for help on using the repository browser.