@@ -43,6 +43,7 @@ class Order(BaseHashModel):
4343 created_on : datetime .datetime
4444
4545 class Member (BaseHashModel ):
46+ id : int = Field (index = True )
4647 first_name : str = Field (index = True )
4748 last_name : str = Field (index = True )
4849 email : str = Field (index = True )
@@ -64,6 +65,7 @@ class Meta:
6465@pytest_asyncio .fixture
6566async def members (m ):
6667 member1 = m .Member (
68+ id = 0 ,
6769 first_name = "Andrew" ,
6870 last_name = "Brookins" ,
6971@@ -73,6 +75,7 @@ async def members(m):
7375 )
7476
7577 member2 = m .Member (
78+ id = 1 ,
7679 first_name = "Kim" ,
7780 last_name = "Brookins" ,
7881@@ -82,6 +85,7 @@ async def members(m):
8285 )
8386
8487 member3 = m .Member (
88+ id = 2 ,
8589 first_name = "Andrew" ,
8690 last_name = "Smith" ,
8791@@ -129,6 +133,9 @@ async def test_exact_match_queries(members, m):
129133 ).all ()
130134 assert actual == [member2 ]
131135
136+ actual = await m .Member .find (m .Member .id == 0 ).all ()
137+ assert actual == [member1 ]
138+
132139
133140@py_test_mark_asyncio
134141async def test_full_text_search_queries (members , m ):
@@ -176,6 +183,7 @@ async def test_tag_queries_boolean_logic(members, m):
176183@py_test_mark_asyncio
177184async def test_tag_queries_punctuation (m ):
178185 member1 = m .Member (
186+ id = 0 ,
179187 first_name = "Andrew, the Michael" ,
180188 last_name = "St. Brookins-on-Pier" ,
181189 email = "a|[email protected] " ,
# NOTE: This string uses the TAG field separator. @@ -186,6 +194,7 @@ async def test_tag_queries_punctuation(m):
186194 await member1 .save ()
187195
188196 member2 = m .Member (
197+ id = 1 ,
189198 first_name = "Bob" ,
190199 last_name = "the Villain" ,
191200 email = "a|[email protected] " ,
# NOTE: This string uses the TAG field separator. @@ -337,18 +346,19 @@ def test_validates_required_fields(m):
337346 # Raises ValidationError: last_name is required
338347 # TODO: Test the error value
339348 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 )
341350
342351
343352def test_validates_field (m ):
344353 # Raises ValidationError: join_date is not a date
345354 # TODO: Test the error value
346355 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" )
348357
349358
350359def test_validation_passes (m ):
351360 member = m .Member (
361+ id = 0 ,
352362 first_name = "Andrew" ,
353363 last_name = "Brookins" ,
354364@@ -362,6 +372,7 @@ def test_validation_passes(m):
362372@py_test_mark_asyncio
363373async def test_retrieve_first (m ):
364374 member = m .Member (
375+ id = 0 ,
365376 first_name = "Simon" ,
366377 last_name = "Prickett" ,
367378@@ -373,6 +384,7 @@ async def test_retrieve_first(m):
373384 await member .save ()
374385
375386 member2 = m .Member (
387+ id = 1 ,
376388 first_name = "Another" ,
377389 last_name = "Member" ,
378390@@ -384,6 +396,7 @@ async def test_retrieve_first(m):
384396 await member2 .save ()
385397
386398 member3 = m .Member (
399+ id = 2 ,
387400 first_name = "Third" ,
388401 last_name = "Member" ,
389402@@ -401,6 +414,7 @@ async def test_retrieve_first(m):
401414@py_test_mark_asyncio
402415async def test_saves_model_and_creates_pk (m ):
403416 member = m .Member (
417+ id = 0 ,
404418 first_name = "Andrew" ,
405419 last_name = "Brookins" ,
406420@@ -418,6 +432,7 @@ async def test_saves_model_and_creates_pk(m):
418432@py_test_mark_asyncio
419433async def test_all_pks (m ):
420434 member = m .Member (
435+ id = 0 ,
421436 first_name = "Simon" ,
422437 last_name = "Prickett" ,
423438@@ -429,6 +444,7 @@ async def test_all_pks(m):
429444 await member .save ()
430445
431446 member1 = m .Member (
447+ id = 1 ,
432448 first_name = "Andrew" ,
433449 last_name = "Brookins" ,
434450@@ -449,6 +465,7 @@ async def test_all_pks(m):
449465@py_test_mark_asyncio
450466async def test_delete (m ):
451467 member = m .Member (
468+ id = 0 ,
452469 first_name = "Simon" ,
453470 last_name = "Prickett" ,
454471@@ -465,6 +482,7 @@ async def test_delete(m):
465482@py_test_mark_asyncio
466483async def test_expire (m ):
467484 member = m .Member (
485+ id = 0 ,
468486 first_name = "Expire" ,
469487 last_name = "Test" ,
470488@@ -529,6 +547,7 @@ class InvalidMember(m.BaseHashModel):
529547@py_test_mark_asyncio
530548async def test_saves_many (m ):
531549 member1 = m .Member (
550+ id = 0 ,
532551 first_name = "Andrew" ,
533552 last_name = "Brookins" ,
534553@@ -537,6 +556,7 @@ async def test_saves_many(m):
537556 bio = "This is the user bio." ,
538557 )
539558 member2 = m .Member (
559+ id = 1 ,
540560 first_name = "Kim" ,
541561 last_name = "Brookins" ,
542562
0 commit comments