Skip to content

Commit 1f7db21

Browse files
committed
add tests
1 parent cf7a7aa commit 1f7db21

File tree

2 files changed

+53
-5
lines changed

2 files changed

+53
-5
lines changed

testing_orm.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
from dictdatabase.object_mapper import DictModel, FileDictItemModel, FileDictModel
2-
import dictdatabase as DDB
1+
32

43

54
class WorkTime(DictModel):
@@ -21,7 +20,6 @@ def full_name(self):
2120

2221
class Users(FileDictModel[User]):
2322
__file__ = "users"
24-
__item_model__ = User
2523

2624

2725

@@ -45,8 +43,8 @@ class Users(FileDictModel[User]):
4543
assert u.work_times[1].end == "17:00"
4644
assert len(u.work_times) == 2
4745

48-
print("check")
49-
print(u)
46+
47+
print("u type:", type(u))
5048

5149

5250

tests/test_object_mapper.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
from dictdatabase.object_mapper import DictModel, FileDictItemModel, FileDictModel
2+
import dictdatabase as DDB
3+
import pytest
4+
5+
6+
def test_object_mapper_docs_example(use_test_dir):
7+
name = "object_mapper_docs_example_users"
8+
DDB.at(name).create({
9+
"u1": {
10+
"first_name": "John",
11+
"last_name": "Doe",
12+
"age": 21
13+
},
14+
"u2": {
15+
"first_name": "Jane",
16+
"last_name": "Smith",
17+
"age": 30,
18+
"phone": "0123456"
19+
},
20+
}, force_overwrite=True)
21+
22+
class User(FileDictItemModel):
23+
first_name: str
24+
last_name: str
25+
age: int
26+
phone: str | None
27+
28+
def full_name(self):
29+
return f"{self.first_name} {self.last_name}"
30+
31+
class Users(FileDictModel[User]):
32+
__file__ = name
33+
34+
u1: User = Users.get_at_key("u1")
35+
assert u1.full_name() == "John Doe"
36+
assert u1.age == 21
37+
assert u1.phone is None
38+
39+
with pytest.raises(AttributeError):
40+
u1.no
41+
42+
u2: User = Users.get_at_key("u2")
43+
assert u2.full_name() == "Jane Smith"
44+
assert u2.age == 30
45+
assert u2.phone == "0123456"
46+
47+
48+
49+
for uid, user in Users.get_all().items():
50+
assert user.age in [21, 30]

0 commit comments

Comments
 (0)