@@ -43,6 +43,7 @@ class Order(BaseHashModel):
43
43
created_on : datetime .datetime
44
44
45
45
class Member (BaseHashModel ):
46
+ id : int = Field (index = True )
46
47
first_name : str = Field (index = True )
47
48
last_name : str = Field (index = True )
48
49
email : str = Field (index = True )
@@ -64,6 +65,7 @@ class Meta:
64
65
@pytest_asyncio .fixture
65
66
async def members (m ):
66
67
member1 = m .Member (
68
+ id = 0 ,
67
69
first_name = "Andrew" ,
68
70
last_name = "Brookins" ,
69
71
@@ -73,6 +75,7 @@ async def members(m):
73
75
)
74
76
75
77
member2 = m .Member (
78
+ id = 1 ,
76
79
first_name = "Kim" ,
77
80
last_name = "Brookins" ,
78
81
@@ -82,6 +85,7 @@ async def members(m):
82
85
)
83
86
84
87
member3 = m .Member (
88
+ id = 2 ,
85
89
first_name = "Andrew" ,
86
90
last_name = "Smith" ,
87
91
@@ -129,6 +133,9 @@ async def test_exact_match_queries(members, m):
129
133
).all ()
130
134
assert actual == [member2 ]
131
135
136
+ actual = await m .Member .find (m .Member .id == 0 ).all ()
137
+ assert actual == [member1 ]
138
+
132
139
133
140
@py_test_mark_asyncio
134
141
async def test_full_text_search_queries (members , m ):
@@ -176,6 +183,7 @@ async def test_tag_queries_boolean_logic(members, m):
176
183
@py_test_mark_asyncio
177
184
async def test_tag_queries_punctuation (m ):
178
185
member1 = m .Member (
186
+ id = 0 ,
179
187
first_name = "Andrew, the Michael" ,
180
188
last_name = "St. Brookins-on-Pier" ,
181
189
email = "a|[email protected] " ,
# NOTE: This string uses the TAG field separator.
@@ -186,6 +194,7 @@ async def test_tag_queries_punctuation(m):
186
194
await member1 .save ()
187
195
188
196
member2 = m .Member (
197
+ id = 1 ,
189
198
first_name = "Bob" ,
190
199
last_name = "the Villain" ,
191
200
email = "a|[email protected] " ,
# NOTE: This string uses the TAG field separator.
@@ -337,18 +346,19 @@ def test_validates_required_fields(m):
337
346
# Raises ValidationError: last_name is required
338
347
# TODO: Test the error value
339
348
with pytest .raises (ValidationError ):
340
- m .Member (first_name = "Andrew" , zipcode = "97086" , join_date = today )
349
+ m .Member (id = 0 , first_name = "Andrew" , zipcode = "97086" , join_date = today )
341
350
342
351
343
352
def test_validates_field (m ):
344
353
# Raises ValidationError: join_date is not a date
345
354
# TODO: Test the error value
346
355
with pytest .raises (ValidationError ):
347
- m .Member (first_name = "Andrew" , last_name = "Brookins" , join_date = "yesterday" )
356
+ m .Member (id = 0 , first_name = "Andrew" , last_name = "Brookins" , join_date = "yesterday" )
348
357
349
358
350
359
def test_validation_passes (m ):
351
360
member = m .Member (
361
+ id = 0 ,
352
362
first_name = "Andrew" ,
353
363
last_name = "Brookins" ,
354
364
@@ -362,6 +372,7 @@ def test_validation_passes(m):
362
372
@py_test_mark_asyncio
363
373
async def test_retrieve_first (m ):
364
374
member = m .Member (
375
+ id = 0 ,
365
376
first_name = "Simon" ,
366
377
last_name = "Prickett" ,
367
378
@@ -373,6 +384,7 @@ async def test_retrieve_first(m):
373
384
await member .save ()
374
385
375
386
member2 = m .Member (
387
+ id = 1 ,
376
388
first_name = "Another" ,
377
389
last_name = "Member" ,
378
390
@@ -384,6 +396,7 @@ async def test_retrieve_first(m):
384
396
await member2 .save ()
385
397
386
398
member3 = m .Member (
399
+ id = 2 ,
387
400
first_name = "Third" ,
388
401
last_name = "Member" ,
389
402
@@ -401,6 +414,7 @@ async def test_retrieve_first(m):
401
414
@py_test_mark_asyncio
402
415
async def test_saves_model_and_creates_pk (m ):
403
416
member = m .Member (
417
+ id = 0 ,
404
418
first_name = "Andrew" ,
405
419
last_name = "Brookins" ,
406
420
@@ -418,6 +432,7 @@ async def test_saves_model_and_creates_pk(m):
418
432
@py_test_mark_asyncio
419
433
async def test_all_pks (m ):
420
434
member = m .Member (
435
+ id = 0 ,
421
436
first_name = "Simon" ,
422
437
last_name = "Prickett" ,
423
438
@@ -429,6 +444,7 @@ async def test_all_pks(m):
429
444
await member .save ()
430
445
431
446
member1 = m .Member (
447
+ id = 1 ,
432
448
first_name = "Andrew" ,
433
449
last_name = "Brookins" ,
434
450
@@ -449,6 +465,7 @@ async def test_all_pks(m):
449
465
@py_test_mark_asyncio
450
466
async def test_delete (m ):
451
467
member = m .Member (
468
+ id = 0 ,
452
469
first_name = "Simon" ,
453
470
last_name = "Prickett" ,
454
471
@@ -465,6 +482,7 @@ async def test_delete(m):
465
482
@py_test_mark_asyncio
466
483
async def test_expire (m ):
467
484
member = m .Member (
485
+ id = 0 ,
468
486
first_name = "Expire" ,
469
487
last_name = "Test" ,
470
488
@@ -529,6 +547,7 @@ class InvalidMember(m.BaseHashModel):
529
547
@py_test_mark_asyncio
530
548
async def test_saves_many (m ):
531
549
member1 = m .Member (
550
+ id = 0 ,
532
551
first_name = "Andrew" ,
533
552
last_name = "Brookins" ,
534
553
@@ -537,6 +556,7 @@ async def test_saves_many(m):
537
556
bio = "This is the user bio." ,
538
557
)
539
558
member2 = m .Member (
559
+ id = 1 ,
540
560
first_name = "Kim" ,
541
561
last_name = "Brookins" ,
542
562
0 commit comments