11import os
22import unittest
33from io import BytesIO
4- from unittest .mock import call , patch
4+ from unittest .mock import Mock , call , patch
55
66from batch_processor import process_csv_to_fhir
77from utils_for_recordprocessor_tests .utils_for_recordprocessor_tests import (
@@ -16,8 +16,7 @@ def setUp(self):
1616 self .mock_logger_error = create_patch ("logging.Logger.error" )
1717 self .mock_send_to_kinesis = create_patch ("batch_processor.send_to_kinesis" )
1818 self .mock_map_target_disease = create_patch ("batch_processor.map_target_disease" )
19- self .mock_s3_get_object = create_patch ("utils_for_recordprocessor.s3_client.get_object" )
20- self .mock_s3_put_object = create_patch ("utils_for_recordprocessor.s3_client.put_object" )
19+ self .mock_get_s3_client = create_patch ("utils_for_recordprocessor.get_s3_client" )
2120 self .mock_make_and_move = create_patch ("file_level_validation.make_and_upload_ack_file" )
2221 self .mock_move_file = create_patch ("file_level_validation.move_file" )
2322 self .mock_get_permitted_operations = create_patch ("file_level_validation.get_permitted_operations" )
@@ -63,7 +62,9 @@ def test_process_large_file_cp1252(self):
6362 data = self .insert_cp1252_at_end (data , b"D\xe9 cembre" , 2 )
6463 ret1 = {"Body" : BytesIO (b"" .join (data ))}
6564 ret2 = {"Body" : BytesIO (b"" .join (data ))}
66- self .mock_s3_get_object .side_effect = [ret1 , ret2 ]
65+ mock_s3 = Mock ()
66+ mock_s3 .get_object .side_effect = [ret1 , ret2 ]
67+ self .mock_get_s3_client .return_value = mock_s3
6768 self .mock_map_target_disease .return_value = "some disease"
6869
6970 message_body = {
@@ -80,7 +81,8 @@ def test_process_large_file_cp1252(self):
8081 self .mock_logger_warning .assert_called ()
8182 warning_call_args = self .mock_logger_warning .call_args [0 ][0 ]
8283 self .assertTrue (warning_call_args .startswith ("Encoding Error: 'utf-8' codec can't decode byte 0xe9" ))
83- self .mock_s3_get_object .assert_has_calls (
84+ # TODO: when running standalone this expects BucketNames.SOURCE. not clear why.
85+ mock_s3 .get_object .assert_has_calls (
8486 [
8587 call (Bucket = None , Key = "test-filename" ),
8688 call (Bucket = None , Key = "processing/test-filename" ),
@@ -94,7 +96,9 @@ def test_process_large_file_utf8(self):
9496 data = self .expand_test_data (data , n_rows )
9597 ret1 = {"Body" : BytesIO (b"" .join (data ))}
9698 ret2 = {"Body" : BytesIO (b"" .join (data ))}
97- self .mock_s3_get_object .side_effect = [ret1 , ret2 ]
99+ mock_s3 = Mock ()
100+ mock_s3 .get_object .side_effect = [ret1 , ret2 ]
101+ self .mock_get_s3_client .return_value = mock_s3
98102 self .mock_map_target_disease .return_value = "some disease"
99103
100104 message_body = {
@@ -118,7 +122,9 @@ def test_process_small_file_cp1252(self):
118122
119123 ret1 = {"Body" : BytesIO (b"" .join (data ))}
120124 ret2 = {"Body" : BytesIO (b"" .join (data ))}
121- self .mock_s3_get_object .side_effect = [ret1 , ret2 ]
125+ mock_s3 = Mock ()
126+ mock_s3 .get_object .side_effect = [ret1 , ret2 ]
127+ self .mock_get_s3_client .return_value = mock_s3
122128 self .mock_map_target_disease .return_value = "some disease"
123129
124130 message_body = {
@@ -143,7 +149,9 @@ def test_process_small_file_utf8(self):
143149
144150 ret1 = {"Body" : BytesIO (b"" .join (data ))}
145151 ret2 = {"Body" : BytesIO (b"" .join (data ))}
146- self .mock_s3_get_object .side_effect = [ret1 , ret2 ]
152+ mock_s3 = Mock ()
153+ mock_s3 .get_object .side_effect = [ret1 , ret2 ]
154+ self .mock_get_s3_client .return_value = mock_s3
147155 self .mock_map_target_disease .return_value = "some disease"
148156
149157 message_body = {
0 commit comments