Skip to content

Commit 885b24b

Browse files
author
Simon Prickett
committed
Adds delete function at a class level.
1 parent 2be0174 commit 885b24b

File tree

3 files changed

+38
-0
lines changed

3 files changed

+38
-0
lines changed

aredis_om/model/model.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1335,6 +1335,10 @@ async def get(cls, pk: Any) -> "HashModel":
13351335
result = cls.parse_obj(document)
13361336
return result
13371337

1338+
@classmethod
1339+
async def delete(cls, pk: Any) -> int:
1340+
return await cls.db().delete(cls.make_primary_key(pk))
1341+
13381342
@classmethod
13391343
@no_type_check
13401344
def _get_value(cls, *args, **kwargs) -> Any:
@@ -1503,6 +1507,10 @@ async def get(cls, pk: Any) -> "JsonModel":
15031507
raise NotFoundError
15041508
return cls.parse_raw(document)
15051509

1510+
@classmethod
1511+
async def delete(cls, pk: Any) -> int:
1512+
return await cls.db().delete(cls.make_primary_key(pk))
1513+
15061514
@classmethod
15071515
def redisearch_schema(cls):
15081516
key_prefix = cls.make_key(cls._meta.primary_key_pattern.format(pk=""))

tests/test_hash_model.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,21 @@ async def test_saves_model_and_creates_pk(m):
374374
member2 = await m.Member.get(member.pk)
375375
assert member2 == member
376376

377+
@pytest.mark.asyncio
378+
async def test_delete(m):
379+
member = m.Member(
380+
first_name="Simon",
381+
last_name="Prickett",
382+
383+
join_date=today,
384+
age=97,
385+
bio="This is a test use to be deleted.",
386+
)
387+
388+
await member.save()
389+
response = await m.Member.delete(member.pk)
390+
assert response == 1
391+
377392

378393
def test_raises_error_with_embedded_models(m):
379394
class Address(m.BaseHashModel):

tests/test_json_model.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,21 @@ async def test_saves_model_and_creates_pk(address, m, redis):
186186
assert member2 == member
187187
assert member2.address == address
188188

189+
@pytest.mark.asyncio
190+
async def test_delete(address, m, redis):
191+
member = m.Member(
192+
first_name="Simon",
193+
last_name="Prickett",
194+
195+
join_date=today,
196+
age=38,
197+
address=address,
198+
)
199+
200+
await member.save()
201+
response = await m.Member.delete(member.pk)
202+
assert response == 1
203+
189204

190205
@pytest.mark.asyncio
191206
async def test_saves_many_implicit_pipeline(address, m):

0 commit comments

Comments
 (0)