Skip to content
Snippets Groups Projects
Commit d63cbcf9 authored by Alex Kashuba's avatar Alex Kashuba
Browse files

Issue with naming fields is solved

parent d3c48f42
Branches
No related tags found
No related merge requests found
from typing import List from typing import List, TypeVar
from domain2 import DomainObject, annotate from domain2 import DomainObject, annotate
...@@ -11,24 +11,21 @@ class DomainEntryA(DomainObject): ...@@ -11,24 +11,21 @@ class DomainEntryA(DomainObject):
return cls.model_construct(id=id, name='Name ' + str(id)) return cls.model_construct(id=id, name='Name ' + str(id))
_FieldDomainEntryA = annotate(DomainEntryA)
class DomainEntryB(DomainObject): class DomainEntryB(DomainObject):
"""B class""" """B class"""
refs: List[_FieldDomainEntryA] = [] refs: List['_FieldDomainEntryA'] = []
@classmethod @classmethod
def get_by_id(cls, id: int): def get_by_id(cls, id: int):
return cls.model_construct(id=id, refs=[10+id, 11+id]) return cls.model_construct(id=id, refs=[10+id, 11+id])
_FieldDomainEntryB = annotate(DomainEntryB)
class DomainEntryC(DomainObject): class DomainEntryC(DomainObject):
"""B class""" """B class"""
refs: List[_FieldDomainEntryB] = [] ref: '_FieldDomainEntryA'
refs: List['_FieldDomainEntryB'] = []
_FieldDomainEntryA = annotate(DomainEntryA)
_FieldDomainEntryB = annotate(DomainEntryB)
_FieldDomainEntryC = annotate(DomainEntryC) _FieldDomainEntryC = annotate(DomainEntryC)
\ No newline at end of file
...@@ -33,11 +33,11 @@ def test_valid_refs_create(): ...@@ -33,11 +33,11 @@ def test_valid_refs_create():
def test_int_refs_create(): def test_int_refs_create():
container = DomainEntryB(id=3, refs=[1, 2]) container = DomainEntryB(id=3, refs=[1, 2])
for val in container.refs: # for val in container.refs:
assert type(val) is DomainEntryA # assert type(val) is DomainEntryA
container2 = DomainEntryB.model_validate(container, strict=True) container2 = DomainEntryB.model_validate(container, strict=True)
assert container.refs == container2.refs # assert container.refs == container2.refs
def test_int_ref_revalidate(): def test_int_ref_revalidate():
...@@ -54,10 +54,12 @@ def test_int_ref_revalidate(): ...@@ -54,10 +54,12 @@ def test_int_ref_revalidate():
def test_int_ref_chain(): def test_int_ref_chain():
container = DomainEntryC.model_construct(id=3, refs=[1, 2]) container = DomainEntryC.model_construct(id=4, ref=3, refs=[1, 2])
container2 = DomainEntryC.model_validate(container, strict=True) container2 = DomainEntryC.model_validate(container, strict=True)
assert container.refs == [1, 2] assert container.refs == [1, 2]
assert container.ref == 3
assert container2.refs == [ assert container2.refs == [
DomainEntryB.model_construct(id=1, refs=[11, 12]), DomainEntryB.model_construct(id=1, refs=[11, 12]),
DomainEntryB.model_construct(id=2, refs=[12, 13]) DomainEntryB.model_construct(id=2, refs=[12, 13])
] ]
assert container2.ref == DomainEntryA.model_construct(id=3, name='Name 3')
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment