def test_with_some_error(self): self.resource_to_org_ids.update({ 'foo': [sen.o1, sen.o2], 'bar': [sen.o3, sen.o4, sen.o5], }) exc_type = ZeroDivisionError # (just an example exception class) self.mock._get_result_dicts_and_output_body.side_effect = exc_type with self.assertRaises(exc_type) as exc_context: self.meth.input_callback(self.routing_key, self.body, sen.properties) self.assertEqual( self.force_exit_on_any_remaining_entered_contexts_mock.mock_calls, [ call(self.mock.auth_api), ]) self.assertEqual(self.mock.mock_calls, [ call.setting_error_event_info(self.event_data), call.setting_error_event_info().__enter__(), call._check_event_type(self.event_type, self.event_data), call.auth_api.__enter__(), call._get_resource_to_org_ids(self.event_type, self.event_data), call._get_result_dicts_and_output_body( self.event_type, self.event_data, self.resource_to_org_ids), call.auth_api.__exit__(exc_type, exc_context.exception, ANY), call.setting_error_event_info().__exit__( exc_type, exc_context.exception, ANY), ])
def test_without_org_ids(self, resource_to_org_ids_items): self.resource_to_org_ids.update(resource_to_org_ids_items) self.meth.input_callback(self.routing_key, self.body, sen.properties) self.assertEqual(self.mock.mock_calls, [ call.setting_error_event_info(self.event_data), call.setting_error_event_info().__enter__(), call._check_event_type(self.event_type, self.event_data), call.auth_api.__enter__(), call._get_resource_to_org_ids(self.event_type, self.event_data), call.auth_api.__exit__(None, None, None), call.setting_error_event_info().__exit__(None, None, None), ])
def test_with_some_org_ids(self, resource_to_org_ids_items): self.resource_to_org_ids.update(resource_to_org_ids_items) self.meth.input_callback(self.routing_key, self.body, sen.properties) self.assertEqual(self.mock.mock_calls, [ call.setting_error_event_info(self.event_data), call.setting_error_event_info().__enter__(), call._check_event_type(self.event_type, self.event_data), call.auth_api.__enter__(), call._get_resource_to_org_ids(self.event_type, self.event_data), call._get_result_dicts_and_output_body( self.event_type, self.event_data, self.resource_to_org_ids), call._publish_output_data( self.event_type, self.resource_to_org_ids, sen.raw_result_dict, sen.cleaned_result_dict, sen.output_body), call.auth_api.__exit__(None, None, None), call.setting_error_event_info().__exit__(None, None, None), ])
def test__input_callback(self, FilePagedSequence_mock): FilePagedSequence_mock.return_value = MagicMock() FilePagedSequence_mock.return_value.__enter__.return_value = sentinel.working_seq data = MagicMock(**{'get.return_value': sentinel.rid}) self.mock.configure_mock( **{ '_fix_body.return_value': sentinel.body, 'prepare_data.return_value': data, 'setting_error_event_info': MagicMock(), 'get_output_rk.return_value': sentinel.output_rk, 'get_output_bodies.return_value': [sentinel.output_body1, sentinel.output_body2], }) self.meth.input_callback(sentinel.routing_key, sentinel.body, sentinel.properties) self.assertEqual(self.mock.mock_calls, [ call._fix_body(sentinel.body), call.prepare_data(sentinel.routing_key, sentinel.body, sentinel.properties), call.prepare_data().get('properties.message_id'), call.setting_error_event_info(sentinel.rid), call.setting_error_event_info().__enter__(), call.get_output_rk(data), call.get_output_bodies(data, sentinel.working_seq), call.publish_output(routing_key=sentinel.output_rk, body=sentinel.output_body1), call.publish_output(routing_key=sentinel.output_rk, body=sentinel.output_body2), call.setting_error_event_info().__exit__(None, None, None), ]) self.assertEqual(FilePagedSequence_mock.mock_calls, [ call(page_size=1000), call().__enter__(), call().__exit__(None, None, None), ])
def test__get_output_bodies(self): parsed = [MagicMock(**{'__class__': RecordDict, 'used_as_context_manager': True, 'get_ready_json.return_value': getattr(sentinel, 'output_body{}'.format(i))}) for i in (1, 2)] self.mock.configure_mock(**{ 'parse.return_value': parsed, 'get_output_message_id.side_effect': [ sentinel.msg_A, sentinel.msg_B, ], 'setting_error_event_info': MagicMock(), 'postprocess_parsed.side_effect': ( lambda data, parsed, total, item_no: parsed ), }) seq_mock = FilePagedSequence._instance_mock() output_bodies = self.meth.get_output_bodies(sentinel.data, seq_mock) self.assertIs(output_bodies, seq_mock) self.assertEqual(seq_mock._list, [ sentinel.output_body1, sentinel.output_body2, ]) self.assertEqual(parsed[0].mock_calls, [ call.__setitem__('id', sentinel.msg_A), call.get_ready_json(), ]) self.assertEqual(parsed[1].mock_calls, [ call.__setitem__('id', sentinel.msg_B), call.get_ready_json(), ]) self.assertEqual(self.mock.mock_calls, [ call.parse(sentinel.data), call.get_output_message_id(parsed[0]), call.delete_too_long_address(parsed[0]), call.get_output_message_id(parsed[1]), call.delete_too_long_address(parsed[1]), call.setting_error_event_info(parsed[0]), call.setting_error_event_info().__enter__(), call.postprocess_parsed(sentinel.data, parsed[0], 2, item_no=1), call.setting_error_event_info().__exit__(None, None, None), call.setting_error_event_info(parsed[1]), call.setting_error_event_info().__enter__(), call.postprocess_parsed(sentinel.data, parsed[1], 2, item_no=2), call.setting_error_event_info().__exit__(None, None, None), ])