Skip to content

Commit 0398aa6

Browse files
committed
update: tests with property oveeride
1 parent 6cb6230 commit 0398aa6

File tree

1 file changed

+41
-34
lines changed

1 file changed

+41
-34
lines changed

tests/py/unit/test_entity.py

Lines changed: 41 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
from pydantic import BaseModel
55

66
REFERENCE_OBJECT_VALID = {"key1": "value1", "key2": 1}
7+
REFERENCE_OBJECT_VALID_UPDATED = {"key1": "value1-updated", "key2": 2}
78
REFERENCE_OBJECT_INVALID = {"key1": "value1", "key2": "value2"}
89
REFERENCE_OBJECT_VALID_JSON = json.dumps(REFERENCE_OBJECT_VALID)
910
REFERENCE_OBJECT_NESTED_VALID = {"nested_key1": {**REFERENCE_OBJECT_VALID}}
10-
REFERENCE_OBJECT_OVERRIDE_VALID = {"as_class_instance": {**REFERENCE_OBJECT_VALID}}
11+
REFERENCE_OBJECT_NESTED_VALID_UPDATED = {"nested_key1": {**REFERENCE_OBJECT_VALID_UPDATED}}
1112

1213

1314
class ExampleSchema(BaseModel):
@@ -19,10 +20,6 @@ class ExampleNestedSchema(BaseModel):
1920
nested_key1: ExampleSchema
2021

2122

22-
class ExampleOverrideSchema(BaseModel):
23-
as_class_instance: ExampleSchema
24-
25-
2623
class ExampleClass(ExampleSchema, InMemoryEntityPydantic):
2724
pass
2825

@@ -33,43 +30,53 @@ def nested_key1_instance(self) -> ExampleClass:
3330
return ExampleClass.create(self.nested_key1.model_dump())
3431

3532

36-
class ExampleFullClass(ExampleOverrideSchema, InMemoryEntityPydantic):
37-
__default_config__ = REFERENCE_OBJECT_OVERRIDE_VALID
33+
class ExampleNestedKeyAsClassInstanceClass(ExampleNestedSchema, InMemoryEntityPydantic):
34+
__default_config__ = REFERENCE_OBJECT_NESTED_VALID
3835

39-
# We override the as_class_instance field to be an instance of ExampleClass
40-
as_class_instance: ExampleClass = ExampleClass(**REFERENCE_OBJECT_VALID)
36+
nested_key1: ExampleClass = ExampleClass(**REFERENCE_OBJECT_VALID)
4137

4238

4339
def test_create():
44-
in_memory_entity = ExampleClass.create(REFERENCE_OBJECT_VALID)
45-
assert isinstance(in_memory_entity, ExampleClass)
46-
assert in_memory_entity.key1 == "value1"
47-
assert in_memory_entity.key2 == 1
40+
entity = ExampleClass.create(REFERENCE_OBJECT_VALID)
41+
assert isinstance(entity, ExampleClass)
42+
assert entity.key1 == "value1"
43+
assert entity.key2 == 1
4844

4945

5046
def test_create_nested():
5147
# Test creating an instance with nested valid data
52-
in_memory_entity = ExampleNestedClass.create(REFERENCE_OBJECT_NESTED_VALID)
53-
assert isinstance(in_memory_entity, ExampleNestedClass)
54-
assert isinstance(in_memory_entity.nested_key1, ExampleSchema)
55-
assert in_memory_entity.nested_key1.key1 == "value1"
56-
assert in_memory_entity.nested_key1.key2 == 1
57-
assert isinstance(in_memory_entity.nested_key1_instance, ExampleClass)
58-
59-
60-
def test_full_class():
61-
in_memory_entity = ExampleFullClass.create(REFERENCE_OBJECT_OVERRIDE_VALID)
62-
assert isinstance(in_memory_entity, ExampleFullClass)
63-
assert isinstance(in_memory_entity.as_class_instance, ExampleClass)
64-
assert in_memory_entity.as_class_instance.key1 == "value1"
65-
assert in_memory_entity.as_class_instance.key2 == 1
66-
assert in_memory_entity.get_data_model() == ExampleOverrideSchema
48+
entity = ExampleNestedClass.create(REFERENCE_OBJECT_NESTED_VALID)
49+
assert isinstance(entity, ExampleNestedClass)
50+
assert isinstance(entity.nested_key1, ExampleSchema)
51+
assert entity.nested_key1.key1 == "value1"
52+
assert entity.nested_key1.key2 == 1
53+
assert isinstance(entity.nested_key1_instance, ExampleClass)
54+
55+
56+
def test_create_nested_as_class_instance():
57+
entity = ExampleNestedKeyAsClassInstanceClass.create(REFERENCE_OBJECT_NESTED_VALID)
58+
assert isinstance(entity, ExampleNestedKeyAsClassInstanceClass)
59+
assert isinstance(entity.nested_key1, ExampleClass)
60+
assert entity.nested_key1.key1 == "value1"
61+
assert entity.nested_key1.key2 == 1
62+
assert entity.get_data_model() == ExampleNestedSchema
63+
64+
65+
def test_update_nested_as_class_instance():
66+
entity = ExampleNestedKeyAsClassInstanceClass.create(REFERENCE_OBJECT_NESTED_VALID)
67+
entity.nested_key1 = ExampleClass(**REFERENCE_OBJECT_VALID_UPDATED)
68+
assert entity.nested_key1.key1 == "value1-updated"
69+
assert entity.nested_key1.key2 == 2
70+
entity_json = entity.to_json()
71+
reference_json = json.dumps(REFERENCE_OBJECT_NESTED_VALID_UPDATED)
72+
assert json.loads(entity_json) == json.loads(reference_json)
73+
assert isinstance(entity.nested_key1, ExampleClass)
6774

6875

6976
def test_validate():
7077
# Test valid case
71-
in_memory_entity = ExampleClass.create(REFERENCE_OBJECT_VALID)
72-
assert isinstance(in_memory_entity, ExampleClass)
78+
entity = ExampleClass.create(REFERENCE_OBJECT_VALID)
79+
assert isinstance(entity, ExampleClass)
7380
# Test invalid case
7481
try:
7582
_ = ExampleClass.create(REFERENCE_OBJECT_INVALID)
@@ -85,10 +92,10 @@ def test_is_valid():
8592

8693
def test_from_json():
8794
# Test from_json method with valid JSON
88-
in_memory_entity = ExampleClass.from_json(REFERENCE_OBJECT_VALID_JSON)
89-
assert isinstance(in_memory_entity, ExampleClass)
90-
assert in_memory_entity.key1 == "value1"
91-
assert in_memory_entity.key2 == 1
95+
entity = ExampleClass.from_json(REFERENCE_OBJECT_VALID_JSON)
96+
assert isinstance(entity, ExampleClass)
97+
assert entity.key1 == "value1"
98+
assert entity.key2 == 1
9299

93100
# Test from_json with invalid JSON
94101
try:

0 commit comments

Comments
 (0)