File tree Expand file tree Collapse file tree 2 files changed +27
-4
lines changed
packages/core/minos-microservice-aggregate
minos/aggregate/entities/refs
tests/test_aggregate/test_entities/test_refs Expand file tree Collapse file tree 2 files changed +27
-4
lines changed Original file line number Diff line number Diff line change @@ -64,6 +64,9 @@ def __getitem__(self, item: str) -> Any:
6464 if item == "uuid" :
6565 return self .uuid
6666
67+ if not self .resolved :
68+ raise KeyError (f"The reference is not resolved: { self !r} " )
69+
6770 try :
6871 return self .data [item ]
6972 except Exception :
@@ -89,6 +92,9 @@ def __getattr__(self, item: str) -> Any:
8992 if item == "data" :
9093 raise exc
9194
95+ if not self .resolved :
96+ raise AttributeError (f"The reference is not resolved: { self !r} " )
97+
9298 try :
9399 return getattr (self .data , item )
94100 except Exception :
@@ -218,7 +224,10 @@ def resolved(self) -> bool:
218224
219225 :return: ``True`` if resolved or ``False`` otherwise.
220226 """
221- return not isinstance (self .data , UUID )
227+ try :
228+ return not isinstance (self .data , UUID )
229+ except AttributeError :
230+ return False
222231
223232 def __repr__ (self ) -> str :
224233 return f"{ type (self ).__name__ } ({ self .data !r} )"
Original file line number Diff line number Diff line change @@ -68,6 +68,13 @@ def test_uuid_getattr(self):
6868
6969 self .assertEqual (uuid , value .uuid )
7070
71+ def test_uuid_getattr_raises (self ):
72+ uuid = uuid4 ()
73+ value = Ref (uuid )
74+
75+ with self .assertRaises (AttributeError ):
76+ value .color
77+
7178 def test_uuid_setattr (self ):
7279 uuid_1 = uuid4 ()
7380 uuid_2 = uuid4 ()
@@ -83,11 +90,12 @@ def test_uuid_getitem(self):
8390
8491 self .assertEqual (uuid , value ["uuid" ])
8592
86- def test_model_getitem_raises (self ):
87- value = Ref (Bar (uuid4 (), 1 ))
93+ def test_uuid_getitem_raises (self ):
94+ uuid = uuid4 ()
95+ value = Ref (uuid )
8896
8997 with self .assertRaises (KeyError ):
90- value ["year " ]
98+ value ["color " ]
9199
92100 def test_uuid_setitem (self ):
93101 uuid_1 = uuid4 ()
@@ -148,6 +156,12 @@ def test_model_getitem(self):
148156
149157 self .assertEqual (1 , value ["age" ])
150158
159+ def test_model_getitem_raises (self ):
160+ value = Ref (Bar (uuid4 (), 1 ))
161+
162+ with self .assertRaises (KeyError ):
163+ value ["year" ]
164+
151165 def test_model_setitem (self ):
152166 value = Ref (Bar (uuid4 (), 1 ))
153167
You can’t perform that action at this time.
0 commit comments