1818with patch .dict ("os.environ" , MOCK_ENVIRONMENT_DICT ):
1919 from constants import (
2020 AUDIT_TABLE_NAME ,
21- AUDIT_TABLE_FILENAME_GSI ,
22- AUDIT_TABLE_QUEUE_NAME_GSI ,
2321 AuditTableKeys ,
2422 FileStatus ,
2523 )
@@ -49,6 +47,7 @@ def tearDown(self):
4947 @staticmethod
5048 def get_table_items () -> list :
5149 """Return all items in the audit table"""
50+
5251 return dynamodb_client .scan (TableName = AUDIT_TABLE_NAME ).get ("Items" , [])
5352
5453 def test_get_next_queued_file_details (self ):
@@ -66,14 +65,47 @@ def test_get_next_queued_file_details(self):
6665 add_entry_to_table (MockFileDetails .ravs_rsv_1 , FileStatus .PROCESSED ) # same queue but already processed
6766 self .assertIsNone (get_next_queued_file_details (queue_to_check ))
6867
69- # TODO - finish test
7068 # Test case 3: one queued file in the ravs_rsv queue
71- # add_entry_to_table(MockFileDetails.ravs_rsv_2, file_status=FileStatus.QUEUED)
72- # expected_table_entry = {**MockFileDetails.ravs_rsv_2.audit_table_entry, "status": {"S": FileStatus.QUEUED}}
73- # self.assertEqual(get_next_queued_file_details(queue_to_check), deserialize_dynamodb_types(expected_table_entry))
69+ add_entry_to_table (MockFileDetails .ravs_rsv_2 , file_status = FileStatus .QUEUED )
70+ expected_table_entry = {** MockFileDetails .ravs_rsv_2 .audit_table_entry , "status" : {"S" : FileStatus .QUEUED }}
71+ self .assertEqual (get_next_queued_file_details (queue_to_check ), deserialize_dynamodb_types (expected_table_entry ))
7472
7573 # # Test case 4: multiple queued files in the RAVS_RSV queue
76- # # Note that ravs_rsv files 3 and 4 have later timestamps than file 2, so file 2 remains the first in the queue
77- # add_entry_to_table(MockFileDetails.ravs_rsv_3, file_status=FileStatus.QUEUED)
78- # add_entry_to_table(MockFileDetails.ravs_rsv_4, file_status=FileStatus.QUEUED)
79- # self.assertEqual(get_next_queued_file_details(queue_to_check), deserialize_dynamodb_types(expected_table_entry))
74+ # Note that ravs_rsv files 3 and 4 have later timestamps than file 2, so file 2 remains the first in the queue
75+ add_entry_to_table (MockFileDetails .ravs_rsv_3 , file_status = FileStatus .QUEUED )
76+ add_entry_to_table (MockFileDetails .ravs_rsv_4 , file_status = FileStatus .QUEUED )
77+ self .assertEqual (get_next_queued_file_details (queue_to_check ), deserialize_dynamodb_types (expected_table_entry ))
78+
79+ def test_change_audit_table_status_to_processed (self ):
80+ # Checks audit table is updated correctly
81+ queue_to_check = "RAVS_RSV"
82+
83+ add_entry_to_table (MockFileDetails .rsv_ravs , file_status = FileStatus .QUEUED )
84+ table_items = dynamodb_client .scan (TableName = AUDIT_TABLE_NAME ).get ("Items" , [])
85+ # print(f"started off queued:{table_items}")
86+
87+ expected_table_entry = {** MockFileDetails .rsv_ravs .audit_table_entry , "status" : {"S" : FileStatus .PROCESSED }}
88+ file_key = "RSV_Vaccinations_v5_X26_20210730T12000000.csv"
89+ message_id = "rsv_ravs_test_id_1"
90+ # print(f"file_key_checker: {file_key}")
91+ # print(f"message_id: {message_id}")
92+ result = change_audit_table_status_to_processed (file_key , message_id )
93+ print (result )
94+ table_items = dynamodb_client .scan (TableName = AUDIT_TABLE_NAME ).get ("Items" , [])
95+ # print(f"change to processed :{table_items}")
96+
97+ Actual_result = [
98+ {
99+ "message_id" : {"S" : "rsv_ravs_test_id_1" },
100+ "filename" : {"S" : "RSV_Vaccinations_v5_X26_20210730T12000000.csv" },
101+ "queue_name" : {"S" : "RAVS_RSV" },
102+ "timestamp" : {"S" : "20211120T12000000" },
103+ "status" : {"S" : "Processed" },
104+ }
105+ ]
106+ Actual_logger = "The status of RSV_Vaccinations_v5_X26_20210730T12000000.csv file, with message id rsv_ravs_test_id_1, was successfully updated to Processed in the audit table"
107+ # self.assertEqual(result, deserialize_dynamodb_types(expected_table_entry))
108+
109+ # Check items in the dynamo table
110+ # table_items = dynamodb_client.scan(TableName=AUDIT_TABLE_NAME).get("Items", [])
111+ # print(f"table items 4 :{table_items}")
0 commit comments