From 1e874bf1062a539fdb555a5ddfe06c0e65e87b26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Fri, 21 Mar 2025 10:20:17 -0300 Subject: [PATCH] add delete_item --- layercake/layercake/dynamodb.py | 22 +++++++++++++++++++++- layercake/tests/test_dynamodb.py | 15 +++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/layercake/layercake/dynamodb.py b/layercake/layercake/dynamodb.py index 34c550b..24426fd 100644 --- a/layercake/layercake/dynamodb.py +++ b/layercake/layercake/dynamodb.py @@ -491,7 +491,10 @@ class DynamoDBCollection: return data or default def put_item( - self, key: KeyPair, ttl: int | datetime | None = None, **kwargs: Any + self, + key: KeyPair, + ttl: int | datetime | None = None, + **kwargs: Any, ) -> bool: now_ = now(self.tz) @@ -514,3 +517,20 @@ class DynamoDBCollection: return self.persistence_layer.put_item( item=key | {'create_date': now_} | kwargs ) + + def delete_item( + self, + key: KeyPair, + *, + cond_expr: str | None = None, + expr_attr_names: dict | None = None, + expr_attr_values: dict | None = None, + ) -> bool: + return self.persistence_layer.delete_item( + key=key, + cond_expr=cond_expr, + expr_attr_names=expr_attr_names, + expr_attr_values=expr_attr_values, + ) + + def get_items(self): ... diff --git a/layercake/tests/test_dynamodb.py b/layercake/tests/test_dynamodb.py index 5f3431b..dff1909 100644 --- a/layercake/tests/test_dynamodb.py +++ b/layercake/tests/test_dynamodb.py @@ -121,3 +121,18 @@ def test_collection_put_item( assert 'name' in data assert 'ttl' in data assert 'ttl_date' in data + + +def test_collection_delete_item( + dynamodb_seeds, + dynamodb_persistence_layer: DynamoDBPersistenceLayer, +): + collect = DynamoDBCollection(dynamodb_persistence_layer) + + # This item was added from seeds + assert collect.delete_item( + key=KeyPair( + '5OxmMjL-ujoR5IMGegQz', + Key('sergio@somsbeta.com.br', prefix='emails'), + ) + )