Changeset 5c72356 in flexoentity for tests/conftest.py
- Timestamp:
- 11/02/25 18:49:14 (2 months ago)
- Branches:
- master
- Children:
- bf30018
- Parents:
- 8aa20c7
- File:
-
- 1 edited
-
tests/conftest.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tests/conftest.py
r8aa20c7 r5c72356 4 4 from dataclasses import dataclass, field 5 5 from typing import List 6 from flexoentity import Flex oEntity, EntityType, EntityState, Domain6 from flexoentity import FlexOID, FlexoEntity, EntityType, EntityState, Domain 7 7 8 8 @pytest.fixture … … 37 37 class SingleChoiceQuestion(FlexoEntity): 38 38 """A minimal stub to test FlexoEntity integration.""" 39 ENTITY_TYPE = EntityType.ITEM 40 39 41 text: str = "" 40 42 options: List[AnswerOption] = field(default_factory=list) 41 43 44 def __post_init__(self): 45 # If no FlexOID yet, generate a draft ID now. 46 if not getattr(self, "flexo_id", None): 47 domain_code = ( 48 self.domain.domain if isinstance(self.domain, Domain) else "GEN" 49 ) 50 self.flexo_id = FlexOID.safe_generate( 51 domain=domain_code, 52 entity_type=EntityType.ITEM.value, # 'I' 53 estate=EntityState.DRAFT.value, # 'D' 54 text=self.text_seed or self.text, 55 version=1, 56 ) 42 57 43 58 @classmethod 44 59 def default(cls): 45 return cls(domain=Domain(domain="GEN", 46 entity_type=EntityType.DOMAIN, 47 state=EntityState.DRAFT), 48 state=EntityState.DRAFT, entity_type=EntityType.ITEM) 60 return cls(domain=Domain(domain="GEN")) 49 61 50 62 def to_dict(self): … … 68 80 @classmethod 69 81 def from_dict(cls, data): 70 obj = cls( 82 obj = cls(domain=Domain(domain="GEN"), 71 83 text=data.get("text", ""), 72 84 options=[AnswerOption.from_dict(o) for o in data.get("options", [])], … … 74 86 # restore FlexoEntity core fields 75 87 obj.domain = data.get("domain") 76 obj.entity_type = EntityType[data.get("etype")] if "etype" in data else EntityType.ITEM77 obj.state = EntityState[data.get("state")] if "state" in data else EntityState.DRAFT78 88 if "flexo_id" in data: 79 from flexoentity import FlexOID80 89 obj.flexo_id = FlexOID.parsed(data["flexo_id"]) 81 90 return obj … … 87 96 @pytest.fixture 88 97 def sample_question(): 89 returnSingleChoiceQuestion(domain=Domain.default(),90 text="What is 2 + 2?",91 options=[],92 entity_type=EntityType.ITEM,93 state=EntityState.DRAFT)98 q = SingleChoiceQuestion(domain=Domain.default(), 99 text="What is 2 + 2?", 100 options=[]) 101 q._update_fingerprint() 102 return q
Note:
See TracChangeset
for help on using the changeset viewer.
