From b16c1e00de447843872447a176d5642403c83f06 Mon Sep 17 00:00:00 2001 From: wiseaidev Date: Mon, 8 Aug 2022 14:18:03 +0300 Subject: [PATCH 1/2] implement count functionality Signed-off-by: wiseaidev --- aredis_om/model/model.py | 3 +++ tests/test_hash_model.py | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/aredis_om/model/model.py b/aredis_om/model/model.py index 92bb6f9a..0a38c5c1 100644 --- a/aredis_om/model/model.py +++ b/aredis_om/model/model.py @@ -760,6 +760,9 @@ async def all(self, batch_size=10): return await query.execute() return await self.execute() + async def count(self, batch_size=10): + return len(await self.all(batch_size)) + def sort_by(self, *fields: str): if not fields: return self diff --git a/tests/test_hash_model.py b/tests/test_hash_model.py index 0a79aa6b..021d80e4 100644 --- a/tests/test_hash_model.py +++ b/tests/test_hash_model.py @@ -95,6 +95,15 @@ async def members(m): yield member1, member2, member3 +@py_test_mark_asyncio +async def test_count_query(members, m): + + count = await m.Member.find((m.Member.first_name == "Brookins") & (m.Member.last_name == "Brookins")).count() + assert count == 1 + count = await m.Member.find(m.Member.first_name="Kim").count() + assert count == 1 + count = await m.Member.find().count() + assert count == 3 @py_test_mark_asyncio async def test_exact_match_queries(members, m): From fe1dd1bf3d7be5d440bafc898f7408a98b481399 Mon Sep 17 00:00:00 2001 From: wiseaidev Date: Wed, 10 Aug 2022 09:02:35 +0300 Subject: [PATCH 2/2] fix linter issues Signed-off-by: wiseaidev --- tests/test_hash_model.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/test_hash_model.py b/tests/test_hash_model.py index 021d80e4..5b614b65 100644 --- a/tests/test_hash_model.py +++ b/tests/test_hash_model.py @@ -95,16 +95,18 @@ async def members(m): yield member1, member2, member3 + @py_test_mark_asyncio async def test_count_query(members, m): - count = await m.Member.find((m.Member.first_name == "Brookins") & (m.Member.last_name == "Brookins")).count() - assert count == 1 - count = await m.Member.find(m.Member.first_name="Kim").count() + count = await m.Member.find((m.Member.first_name == "Andrew") & (m.Member.last_name == "Brookins")).count() assert count == 1 + count = await m.Member.find(m.Member.first_name == "Andrew").count() + assert count == 2 count = await m.Member.find().count() assert count == 3 + @py_test_mark_asyncio async def test_exact_match_queries(members, m): member1, member2, member3 = members