1515 simple_key_dict ,
1616)
1717from ...requests import (
18- basic_batch_execute_statement_request_ddb ,
19- basic_batch_execute_statement_request_dict ,
18+ basic_batch_execute_statement_request ,
2019 basic_batch_get_item_request_ddb ,
2120 basic_batch_get_item_request_dict ,
2221 basic_batch_write_item_delete_request_ddb ,
2524 basic_batch_write_item_put_request_dict ,
2625 basic_delete_item_request_ddb ,
2726 basic_delete_item_request_dict ,
28- basic_execute_statement_request_ddb ,
29- basic_execute_statement_request_dict ,
30- basic_execute_transaction_request_ddb ,
31- basic_execute_transaction_request_dict ,
27+ basic_execute_statement_request ,
28+ basic_execute_transaction_request ,
3229 basic_get_item_request_ddb ,
3330 basic_get_item_request_dict ,
3431 basic_put_item_request_ddb ,
4542 basic_transact_write_item_delete_request_dict ,
4643 basic_transact_write_item_put_request_ddb ,
4744 basic_transact_write_item_put_request_dict ,
48- basic_update_item_request_ddb ,
49- basic_update_item_request_dict ,
45+ basic_update_item_request_ddb_signed_attribute ,
46+ basic_update_item_request_dict_signed_attribute ,
47+ basic_update_item_request_ddb_unsigned_attribute ,
48+ basic_update_item_request_dict_unsigned_attribute ,
5049 exhaustive_get_item_request_ddb ,
5150 exhaustive_get_item_request_dict ,
5251 exhaustive_put_item_request_ddb ,
6463 basic_put_item_response ,
6564 basic_query_response ,
6665 basic_scan_response ,
66+ basic_update_item_response ,
6767 basic_transact_get_items_response ,
6868 basic_transact_write_items_response ,
6969 exhaustive_batch_get_item_response ,
@@ -808,12 +808,18 @@ def test_GIVEN_test_transact_get_items_response_WHEN_resource_to_client_THEN_ret
808808
809809@pytest .fixture
810810def test_update_item_request_ddb ():
811- return basic_update_item_request_ddb
811+ # Select unsigned attribute without loss of generality;
812+ # resource/client logic doesn't care about signed attributes
813+ # TODO: Add exhaustive request
814+ return basic_update_item_request_ddb_unsigned_attribute
812815
813816
814817@pytest .fixture
815818def test_update_item_request_dict ():
816- return basic_update_item_request_dict
819+ # Select unsigned attribute without loss of generality;
820+ # resource/client logic doesn't care about signed attributes
821+ # TODO: Add exhaustive request
822+ return basic_update_item_request_dict_unsigned_attribute
817823
818824
819825def test_GIVEN_test_update_item_request_WHEN_resource_to_client_THEN_returns_ddb_value (
@@ -843,35 +849,42 @@ def test_GIVEN_update_item_request_without_table_name_WHEN_resource_to_client_TH
843849 # When: Converting to resource format
844850 resource_to_client_converter_without_table_name .update_item_request (test_update_item_request_dict )
845851
852+ @pytest .fixture
853+ def test_update_item_response ():
854+ # TODO: Add exhaustive response
855+ return basic_update_item_response
856+
846857
847- def test_GIVEN_update_item_response_WHEN_resource_to_client_THEN_raises_NotImplementedError ():
858+ def test_GIVEN_update_item_response_WHEN_resource_to_client_THEN_returns_dict_value (
859+ test_update_item_response , test_ddb_item , test_dict_item
860+ ):
848861 # Given: Update item response
849- response = { "Some" : "Response" }
850- # Then: Raises NotImplementedError
851- with pytest . raises ( NotImplementedError ):
852- # When: Converting to resource format
853- resource_to_client_converter . update_item_response ( response )
862+ response = test_update_item_response ( test_dict_item )
863+ # When: Converting to resource format
864+ actual_ddb_response = resource_to_client_converter . update_item_response ( response )
865+ # Then: Returns dict value
866+ expected_ddb_response = test_update_item_response ( test_ddb_item )
854867
868+ actual_ddb_response = sort_dynamodb_json_lists (actual_ddb_response ["Attributes" ])
869+ expected_ddb_response = sort_dynamodb_json_lists (expected_ddb_response ["Attributes" ])
855870
856- @pytest .fixture
857- def test_execute_statement_request_ddb ():
858- return basic_execute_statement_request_ddb ()
871+ assert actual_ddb_response == expected_ddb_response
859872
860873
861874@pytest .fixture
862- def test_execute_statement_request_dict ():
863- return basic_execute_statement_request_dict ()
875+ def test_execute_statement_request ():
876+ return basic_execute_statement_request
864877
865878
866879def test_GIVEN_test_execute_statement_request_WHEN_resource_to_client_THEN_returns_ddb_value (
867- test_execute_statement_request_ddb , test_execute_statement_request_dict , test_ddb_item , test_dict_item
880+ test_execute_statement_request , test_ddb_item , test_dict_item
868881):
869882 # Given: Execute statement request
870- request = test_execute_statement_request_dict
883+ request = test_execute_statement_request ()
871884 # When: Converting to resource format
872885 actual_ddb_request = resource_to_client_converter .execute_statement_request (request )
873- # Then: Returns dict value
874- assert actual_ddb_request == test_execute_statement_request_ddb
886+ # Then: Returns dict value (here, request is not modified)
887+ assert actual_ddb_request == test_execute_statement_request ()
875888
876889
877890def test_GIVEN_execute_statement_response_WHEN_resource_to_client_THEN_raises_NotImplementedError ():
@@ -884,24 +897,19 @@ def test_GIVEN_execute_statement_response_WHEN_resource_to_client_THEN_raises_No
884897
885898
886899@pytest .fixture
887- def test_execute_transaction_request_ddb ():
888- return basic_execute_transaction_request_ddb ()
889-
890-
891- @pytest .fixture
892- def test_execute_transaction_request_dict ():
893- return basic_execute_transaction_request_dict ()
900+ def test_execute_transaction_request ():
901+ return basic_execute_transaction_request
894902
895903
896904def test_GIVEN_test_execute_transaction_request_WHEN_resource_to_client_THEN_returns_ddb_value (
897- test_execute_transaction_request_ddb , test_execute_transaction_request_dict , test_ddb_item , test_dict_item
905+ test_execute_transaction_request , test_ddb_item , test_dict_item
898906):
899907 # Given: Execute transaction request
900- request = test_execute_transaction_request_dict
908+ request = test_execute_transaction_request ()
901909 # When: Converting to resource format
902910 actual_ddb_request = resource_to_client_converter .execute_transaction_request (request )
903- # Then: Returns dict value
904- assert actual_ddb_request == test_execute_transaction_request_ddb
911+ # Then: Returns dict value (here, request is not modified)
912+ assert actual_ddb_request == test_execute_transaction_request ()
905913
906914
907915def test_GIVEN_execute_transaction_response_WHEN_resource_to_client_THEN_raises_NotImplementedError ():
@@ -914,24 +922,19 @@ def test_GIVEN_execute_transaction_response_WHEN_resource_to_client_THEN_raises_
914922
915923
916924@pytest .fixture
917- def test_batch_execute_statement_request_ddb ():
918- return basic_batch_execute_statement_request_ddb ()
919-
920-
921- @pytest .fixture
922- def test_batch_execute_statement_request_dict ():
923- return basic_batch_execute_statement_request_dict ()
925+ def test_batch_execute_statement_request ():
926+ return basic_batch_execute_statement_request
924927
925928
926929def test_GIVEN_test_batch_execute_statement_request_WHEN_resource_to_client_THEN_returns_ddb_value (
927- test_batch_execute_statement_request_ddb , test_batch_execute_statement_request_dict , test_ddb_item , test_dict_item
930+ test_batch_execute_statement_request , test_ddb_item , test_dict_item
928931):
929932 # Given: Batch execute statement request
930- request = test_batch_execute_statement_request_dict
933+ request = test_batch_execute_statement_request ()
931934 # When: Converting to resource format
932935 actual_ddb_request = resource_to_client_converter .batch_execute_statement_request (request )
933- # Then: Returns dict value
934- assert actual_ddb_request == test_batch_execute_statement_request_ddb
936+ # Then: Returns dict value (here, request is not modified)
937+ assert actual_ddb_request == test_batch_execute_statement_request ()
935938
936939
937940def test_GIVEN_batch_execute_statement_response_WHEN_resource_to_client_THEN_raises_NotImplementedError ():
0 commit comments