def test_receipt_to_case_timeCreated_valueerror( self, mock_send_message_to_rabbit_mq): mock_message = MagicMock() mock_message.message_id = str(uuid.uuid4()) mock_message.attributes = { 'eventType': 'OBJECT_FINALIZE', 'bucketId': self.gcp_bucket, 'objectId': self.gcp_object_id } mock_message.data = json.dumps({ "metadata": { "tx_id": "1", "questionnaire_id": "0120000000001000" }, "timeCreated": "123" }) expected_log_event = 'Pub/Sub Message has invalid datetime string' expected_log_kwargs = { 'bucket_name': self.gcp_bucket, 'object_name': self.gcp_object_id, 'subscription_name': self.subscription_name, 'subscription_project': self.subscription_project_id, 'message_id': mock_message.message_id, } from app.subscriber import eq_receipt_to_case with self.checkExpectedLogLine('ERROR', expected_log_event, expected_log_kwargs): eq_receipt_to_case(mock_message) mock_send_message_to_rabbit_mq.assert_not_called() mock_message.ack.assert_not_called()
def test_receipt_to_case_missing_json_metadata_tx_id( self, mock_send_message_to_rabbit_mq): mock_message = MagicMock() mock_message.message_id = str(uuid.uuid4()) mock_message.attributes = { 'eventType': 'OBJECT_FINALIZE', 'bucketId': self.gcp_bucket, 'objectId': self.gcp_object_id } mock_message.data = json.dumps({ "metadata": { "case_id": "1" }, "timeCreated": "" }) expected_log_event = 'Pub/Sub Message missing required data' expected_log_kwargs = { 'bucket_name': self.gcp_bucket, 'object_name': self.gcp_object_id, 'subscription_name': self.subscription_name, 'subscription_project': self.subscription_project_id, 'message_id': mock_message.message_id, 'missing_json_key': 'tx_id', } from app.subscriber import eq_receipt_to_case with self.checkExpectedLogLine('ERROR', expected_log_event, expected_log_kwargs): eq_receipt_to_case(mock_message) mock_send_message_to_rabbit_mq.assert_not_called() mock_message.ack.assert_not_called()
def test_receipt_to_case_missing_json_data(self, mock_send_message_to_rabbit_mq): mock_message = MagicMock() mock_message.message_id = str(uuid.uuid4()) mock_message.attributes = { 'eventType': 'OBJECT_FINALIZE', 'bucketId': self.gcp_bucket, 'objectId': self.gcp_object_id } mock_message.data = None expected_log_event = 'Pub/Sub Message data not JSON' expected_log_kwargs = { 'bucket_name': self.gcp_bucket, 'object_name': self.gcp_object_id, 'subscription_name': self.subscription_name, 'subscription_project': self.subscription_project_id, 'message_id': mock_message.message_id, } from app.subscriber import eq_receipt_to_case with self.checkExpectedLogLine('ERROR', expected_log_event, expected_log_kwargs): eq_receipt_to_case(mock_message) mock_send_message_to_rabbit_mq.assert_not_called() mock_message.ack.assert_not_called()
def test_receipt_to_case(self, mock_send_message_to_rabbit_mq): mock_message = MagicMock() mock_message.attributes = { 'eventType': 'OBJECT_FINALIZE', 'bucketId': self.gcp_bucket, 'objectId': self.gcp_object_id } mock_message.data = json.dumps({ "metadata": { "tx_id": "1", "questionnaire_id": self.questionnaire_id, "case_id": self.case_id }, "timeCreated": self.created }) mock_message.message_id = str(uuid.uuid4()) expected_log_event = 'Message processing complete' expected_log_kwargs = { 'bucket_name': self.gcp_bucket, 'questionnaire_id': self.questionnaire_id, 'created': self.parsed_created, 'tx_id': '1', 'case_id': self.case_id, 'object_name': self.gcp_object_id, 'subscription_name': self.subscription_name, 'subscription_project': self.subscription_project_id, 'message_id': mock_message.message_id } expected_rabbit_message = json.dumps({ 'event': { 'type': 'RESPONSE_RECEIVED', 'source': 'RECEIPT_SERVICE', 'channel': 'EQ', 'dateTime': '2008-08-24T00:00:00+00:00', 'transactionId': '1' }, 'payload': { 'response': { 'caseId': self.case_id, 'questionnaireId': self.questionnaire_id, 'unreceipt': False } } }) from app.subscriber import eq_receipt_to_case with self.checkExpectedLogLine('INFO', expected_log_event, expected_log_kwargs): eq_receipt_to_case(mock_message) mock_send_message_to_rabbit_mq.assert_called_once_with( expected_rabbit_message) mock_message.ack.assert_called_once()
def test_receipt_to_case_bad_eventType(self, mock_send_message_to_rabbit_mq): mock_message = MagicMock() mock_message.message_id = str(uuid.uuid4()) mock_message.attributes = {'eventType': 'FAIL'} expected_log_event = 'Unknown Pub/Sub Message eventType' expected_log_kwargs = { 'eventType': 'FAIL', 'subscription_name': self.subscription_name, 'subscription_project': self.subscription_project_id, 'message_id': mock_message.message_id, } from app.subscriber import eq_receipt_to_case with self.checkExpectedLogLine('ERROR', expected_log_event, expected_log_kwargs): eq_receipt_to_case(mock_message) mock_send_message_to_rabbit_mq.assert_not_called() mock_message.ack.assert_not_called()