File tree Expand file tree Collapse file tree 2 files changed +53
-5
lines changed Expand file tree Collapse file tree 2 files changed +53
-5
lines changed Original file line number Diff line number Diff line change 1- from dictdatabase .object_mapper import DictModel , FileDictItemModel , FileDictModel
2- import dictdatabase as DDB
1+
32
43
54class WorkTime (DictModel ):
@@ -21,7 +20,6 @@ def full_name(self):
2120
2221class Users (FileDictModel [User ]):
2322 __file__ = "users"
24- __item_model__ = User
2523
2624
2725
@@ -45,8 +43,8 @@ class Users(FileDictModel[User]):
4543assert u .work_times [1 ].end == "17:00"
4644assert len (u .work_times ) == 2
4745
48- print ( "check" )
49- print (u )
46+
47+ print ("u type:" , type ( u ) )
5048
5149
5250
Original file line number Diff line number Diff line change 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 ]
You can’t perform that action at this time.
0 commit comments