Skip to content

Commit 3b20191

Browse files
author
Lucas McDonald
committed
m
1 parent 7bee0a4 commit 3b20191

File tree

2 files changed

+45
-83
lines changed

2 files changed

+45
-83
lines changed

DynamoDbEncryption/runtimes/python/test/integ/encrypted/test_client.py

Lines changed: 42 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
simple_key_dict,
2525
)
2626
from ...requests import (
27-
basic_batch_execute_statement_request_ddb,
28-
basic_batch_execute_statement_request_dict,
2927
basic_batch_get_item_request_ddb,
3028
basic_batch_get_item_request_dict,
3129
basic_batch_write_item_delete_request_ddb,
@@ -34,10 +32,6 @@
3432
basic_batch_write_item_put_request_dict,
3533
basic_delete_item_request_ddb,
3634
basic_delete_item_request_dict,
37-
basic_execute_statement_request_ddb,
38-
basic_execute_statement_request_dict,
39-
basic_execute_transaction_request_ddb,
40-
basic_execute_transaction_request_dict,
4135
basic_get_item_request_ddb,
4236
basic_get_item_request_dict,
4337
basic_put_item_request_ddb,
@@ -54,6 +48,9 @@
5448
basic_transact_write_item_put_request_dict,
5549
basic_update_item_request_ddb,
5650
basic_update_item_request_dict,
51+
basic_execute_statement_request,
52+
basic_execute_transaction_request,
53+
basic_batch_execute_statement_request,
5754
)
5855
from . import sort_dynamodb_json_lists
5956

@@ -386,85 +383,86 @@ def test_GIVEN_valid_transact_write_and_get_requests_WHEN_transact_write_and_get
386383
@pytest.fixture
387384
def update_item_request(expect_standard_dictionaries, test_item):
388385
if expect_standard_dictionaries:
389-
return basic_update_item_request_dict(test_item)
386+
return {**basic_update_item_request_dict(test_item), "TableName": INTEG_TEST_DEFAULT_DYNAMODB_TABLE_NAME}
390387
return basic_update_item_request_ddb(test_item)
391388

392389

393-
def test_WHEN_update_item_THEN_raises_DynamoDbEncryptionTransformsException():
390+
def test_WHEN_update_item_THEN_raises_DynamoDbEncryptionTransformsException(
391+
client, update_item_request, encrypted,
392+
):
394393
"""Test that update_item raises DynamoDbEncryptionTransformsException."""
394+
if not encrypted:
395+
pytest.skip("Skipping negative test for plaintext client")
396+
395397
# Given: Encrypted client and update item parameters
396398
# Then: DynamoDbEncryptionTransformsException is raised
397399
with pytest.raises(DynamoDbEncryptionTransformsException):
398400
# When: Calling update_item
399-
encrypted_client(expect_standard_dictionaries=False).update_item(
400-
TableName=INTEG_TEST_DEFAULT_DYNAMODB_TABLE_NAME,
401-
Key={"partition_key": {"S": "test-key"}, "sort_key": {"N": "1"}},
402-
UpdateExpression="SET attribute1 = :val",
403-
ExpressionAttributeValues={":val": {"S": "new value"}},
401+
client.update_item(
402+
**update_item_request
404403
)
405404

406405

407406
@pytest.fixture
408-
def execute_statement_request(expect_standard_dictionaries, test_item):
409-
if expect_standard_dictionaries:
410-
return basic_execute_statement_request_dict(test_item)
411-
return basic_execute_statement_request_ddb(test_item)
407+
def execute_statement_request():
408+
return basic_execute_statement_request()
412409

413410

414-
def test_WHEN_execute_statement_THEN_raises_DynamoDbEncryptionTransformsException():
411+
def test_WHEN_execute_statement_THEN_raises_DynamoDbEncryptionTransformsException(
412+
client, execute_statement_request, encrypted,
413+
):
415414
"""Test that execute_statement raises DynamoDbEncryptionTransformsException."""
415+
if not encrypted:
416+
pytest.skip("Skipping negative test for plaintext client")
417+
416418
# Given: Encrypted client and update item parameters
417419
# Then: DynamoDbEncryptionTransformsException is raised
418420
with pytest.raises(DynamoDbEncryptionTransformsException):
419421
# When: Calling update_item
420-
encrypted_client(expect_standard_dictionaries=False).execute_statement(
421-
Statement="SELECT * FROM " + INTEG_TEST_DEFAULT_DYNAMODB_TABLE_NAME,
422+
client.execute_statement(
423+
**execute_statement_request
422424
)
423425

424426

425427
@pytest.fixture
426-
def execute_transaction_request(expect_standard_dictionaries, test_item):
427-
if expect_standard_dictionaries:
428-
return basic_execute_transaction_request_dict(test_item)
429-
return basic_execute_transaction_request_ddb(test_item)
428+
def execute_transaction_request():
429+
return basic_execute_transaction_request()
430430

431431

432-
def test_WHEN_execute_transaction_THEN_raises_DynamoDbEncryptionTransformsException():
432+
def test_WHEN_execute_transaction_THEN_raises_DynamoDbEncryptionTransformsException(
433+
client, execute_transaction_request, encrypted,
434+
):
433435
"""Test that execute_transaction raises DynamoDbEncryptionTransformsException."""
436+
if not encrypted:
437+
pytest.skip("Skipping negative test for plaintext client")
438+
434439
# Given: Encrypted client and update item parameters
435440
# Then: DynamoDbEncryptionTransformsException is raised
436441
with pytest.raises(DynamoDbEncryptionTransformsException):
437442
# When: Calling update_item
438-
encrypted_client(expect_standard_dictionaries=False).execute_transaction(
439-
TransactStatements=[
440-
{
441-
"Statement": "SELECT * FROM " + INTEG_TEST_DEFAULT_DYNAMODB_TABLE_NAME,
442-
"Parameters": [],
443-
}
444-
],
443+
client.execute_transaction(
444+
**execute_transaction_request
445445
)
446446

447447

448448
@pytest.fixture
449-
def batch_execute_statement_request(expect_standard_dictionaries, test_item):
450-
if expect_standard_dictionaries:
451-
return basic_batch_execute_statement_request_dict(test_item)
452-
return basic_batch_execute_statement_request_ddb(test_item)
449+
def batch_execute_statement_request():
450+
return basic_batch_execute_statement_request()
453451

454452

455-
def test_WHEN_batch_execute_statement_THEN_raises_DynamoDbEncryptionTransformsException():
453+
def test_WHEN_batch_execute_statement_THEN_raises_DynamoDbEncryptionTransformsException(
454+
client, batch_execute_statement_request, encrypted,
455+
):
456456
"""Test that batch_execute_statement raises DynamoDbEncryptionTransformsException."""
457+
if not encrypted:
458+
pytest.skip("Skipping negative test for plaintext client")
459+
457460
# Given: Encrypted client and update item parameters
458461
# Then: DynamoDbEncryptionTransformsException is raised
459462
with pytest.raises(DynamoDbEncryptionTransformsException):
460463
# When: Calling update_item
461-
encrypted_client(expect_standard_dictionaries=False).batch_execute_statement(
462-
Statements=[
463-
{
464-
"Statement": "SELECT * FROM " + INTEG_TEST_DEFAULT_DYNAMODB_TABLE_NAME,
465-
"Parameters": [],
466-
}
467-
],
464+
client.batch_execute_statement(
465+
**batch_execute_statement_request
468466
)
469467

470468

DynamoDbEncryption/runtimes/python/test/requests.py

Lines changed: 3 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -69,17 +69,17 @@ def base_update_item_request(item):
6969
}
7070

7171

72-
def base_execute_statement_request():
72+
def basic_execute_statement_request():
7373
"""Base structure for execute_statement requests."""
7474
return {"Statement": "SELECT * FROM " + INTEG_TEST_DEFAULT_DYNAMODB_TABLE_NAME}
7575

7676

77-
def base_execute_transaction_request():
77+
def basic_execute_transaction_request():
7878
"""Base structure for execute_transaction requests."""
7979
return {"TransactStatements": [{"Statement": "SELECT * FROM " + INTEG_TEST_DEFAULT_DYNAMODB_TABLE_NAME}]}
8080

8181

82-
def base_batch_execute_statement_request():
82+
def basic_batch_execute_statement_request():
8383
"""Base structure for batch_execute_statement requests."""
8484
return {"Statements": [{"Statement": "SELECT * FROM " + INTEG_TEST_DEFAULT_DYNAMODB_TABLE_NAME}]}
8585

@@ -354,24 +354,6 @@ def basic_update_item_request_ddb(item):
354354
return {"TableName": INTEG_TEST_DEFAULT_DYNAMODB_TABLE_NAME, **base}
355355

356356

357-
def basic_execute_statement_request_ddb():
358-
"""Get an execute_statement request in DDB format."""
359-
base = base_execute_statement_request()
360-
return base
361-
362-
363-
def basic_execute_transaction_request_ddb():
364-
"""Get an execute_transaction request in DDB format."""
365-
base = base_execute_transaction_request()
366-
return base
367-
368-
369-
def basic_batch_execute_statement_request_ddb():
370-
"""Get a batch_execute_statement request in DDB format."""
371-
base = base_batch_execute_statement_request()
372-
return base
373-
374-
375357
# Dict format request functions
376358

377359

@@ -518,21 +500,3 @@ def basic_update_item_request_dict(item):
518500
"""Get an update_item request in DDB format for any item."""
519501
base = base_update_item_request(item)
520502
return base
521-
522-
523-
def basic_execute_statement_request_dict():
524-
"""Get an execute_statement request in DDB format."""
525-
base = base_execute_statement_request()
526-
return base
527-
528-
529-
def basic_execute_transaction_request_dict():
530-
"""Get an execute_transaction request in DDB format."""
531-
base = base_execute_transaction_request()
532-
return base
533-
534-
535-
def basic_batch_execute_statement_request_dict():
536-
"""Get a batch_execute_statement request in DDB format."""
537-
base = base_batch_execute_statement_request()
538-
return base

0 commit comments

Comments
 (0)