From 6084d6cfe8be11a788fe21180ece6db89ff16764 Mon Sep 17 00:00:00 2001 From: Bert Blommers Date: Wed, 23 Jun 2021 17:41:47 +0100 Subject: [PATCH] DynamoDB - Support AttributeUpdate::DELETE action (#3798) --- tests/test_dynamodb2/test_dynamodb.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/tests/test_dynamodb2/test_dynamodb.py b/tests/test_dynamodb2/test_dynamodb.py index 376c4bd02..780bb93ad 100644 --- a/tests/test_dynamodb2/test_dynamodb.py +++ b/tests/test_dynamodb2/test_dynamodb.py @@ -5979,7 +5979,7 @@ def test_dynamodb_update_item_fails_on_string_sets(): ) -@moto.mock_dynamodb2 +@mock_dynamodb2 def test_update_item_add_to_list_using_legacy_attribute_updates(): resource = boto3.resource("dynamodb", region_name="us-west-2") resource.create_table( @@ -6011,6 +6011,30 @@ def test_get_item_for_non_existent_table_raises_error(): ex.value.response["Error"]["Message"].should.equal("Requested resource not found") +@mock_dynamodb2 +def test_attribute_item_delete(): + name = "TestTable" + conn = boto3.client("dynamodb", region_name="eu-west-1") + conn.create_table( + TableName=name, + AttributeDefinitions=[{"AttributeName": "name", "AttributeType": "S"}], + KeySchema=[{"AttributeName": "name", "KeyType": "HASH"}], + ) + + item_name = "foo" + conn.put_item( + TableName=name, Item={"name": {"S": item_name}, "extra": {"S": "bar"}} + ) + + conn.update_item( + TableName=name, + Key={"name": {"S": item_name}}, + AttributeUpdates={"extra": {"Action": "DELETE"}}, + ) + items = conn.scan(TableName=name)["Items"] + items.should.equal([{"name": {"S": "foo"}}]) + + @mock_dynamodb2 def test_gsi_key_can_be_updated(): name = "TestTable"