source: flexoentity/tests/conftest.py@ 2f650ac

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

add domain as entity

  • Property mode set to 100644
File size: 1.3 KB
Line 
1# tests/conftest.py
2
3import pytest
4import json
5from flexoentity import FlexoEntity, EntityType, EntityState, Domain
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=Domain(domain="SIG", etype=EntityType.DOMAIN, state=EntityState.DRAFT, fullname="Signal Corps", classification="RESTRICTED"),
37 etype=EntityType.CATALOG,
38 state=EntityState.DRAFT,
39 )
Note: See TracBrowser for help on using the repository browser.