Skip to content

Commit 11aaebe

Browse files
author
Sergio García Prado
committed
ISSUE #276
* Improve exception message.
1 parent 68f4971 commit 11aaebe

File tree

2 files changed

+27
-4
lines changed
  • packages/core/minos-microservice-aggregate

2 files changed

+27
-4
lines changed

packages/core/minos-microservice-aggregate/minos/aggregate/entities/refs/models.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff 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})"

packages/core/minos-microservice-aggregate/tests/test_aggregate/test_entities/test_refs/test_models.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)