Merge pull request #132 from redis/delete-without-read-#127
Adds delete function at a class level - enables instances of models to be deleted without reading them first
This commit is contained in:
commit
09a3599a3e
3 changed files with 36 additions and 2 deletions
|
@ -1114,8 +1114,10 @@ class RedisModel(BaseModel, abc.ABC, metaclass=ModelMeta):
|
|||
pk = getattr(self, self._meta.primary_key.field.name)
|
||||
return self.make_primary_key(pk)
|
||||
|
||||
async def delete(self):
|
||||
return await self.db().delete(self.key())
|
||||
@classmethod
|
||||
async def delete(cls, pk: Any) -> int:
|
||||
"""Delete data at this key."""
|
||||
return await cls.db().delete(cls.make_primary_key(pk))
|
||||
|
||||
@classmethod
|
||||
async def get(cls, pk: Any) -> "RedisModel":
|
||||
|
|
|
@ -375,6 +375,22 @@ async def test_saves_model_and_creates_pk(m):
|
|||
assert member2 == member
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_delete(m):
|
||||
member = m.Member(
|
||||
first_name="Simon",
|
||||
last_name="Prickett",
|
||||
email="s@example.com",
|
||||
join_date=today,
|
||||
age=97,
|
||||
bio="This is a test user to be deleted.",
|
||||
)
|
||||
|
||||
await member.save()
|
||||
response = await m.Member.delete(member.pk)
|
||||
assert response == 1
|
||||
|
||||
|
||||
def test_raises_error_with_embedded_models(m):
|
||||
class Address(m.BaseHashModel):
|
||||
address_line_1: str
|
||||
|
|
|
@ -187,6 +187,22 @@ async def test_saves_model_and_creates_pk(address, m, redis):
|
|||
assert member2.address == address
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_delete(address, m, redis):
|
||||
member = m.Member(
|
||||
first_name="Simon",
|
||||
last_name="Prickett",
|
||||
email="s@example.com",
|
||||
join_date=today,
|
||||
age=38,
|
||||
address=address,
|
||||
)
|
||||
|
||||
await member.save()
|
||||
response = await m.Member.delete(member.pk)
|
||||
assert response == 1
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_saves_many_implicit_pipeline(address, m):
|
||||
member1 = m.Member(
|
||||
|
|
Loading…
Reference in a new issue