def test_consumer_with_validation_failure(self, local_file, s3_mocked, broker_stage_messages, event_loop): total_messages = 4 topic = 'platform.upload.validation' s3_storage.s3.create_bucket(Bucket=s3_storage.REJECT) produced_messages = [] with FakeMQ() as mq: client = ReconnectingClient(mq, "consumer") consumer = client.get_callback(app.handle_validation) for _ in range(total_messages): message = self._create_message_s3( local_file, broker_stage_messages, avoid_produce_queue=True, topic=topic, validation='failure' ) mq.send_and_wait(topic, json.dumps(message).encode('utf-8'), True) produced_messages.append(message) assert mq.produce_calls_count == total_messages assert mq.count_topic_messages(topic) == total_messages assert len(app.produce_queue) == 0 assert mq.consume_calls_count == 0 event_loop.run_until_complete(self.coroutine_test(consumer)) for m in produced_messages: assert s3_storage.ls(s3_storage.QUARANTINE, m['payload_id'])['ResponseMetadata']['HTTPStatusCode'] == 404 assert s3_storage.ls(s3_storage.REJECT, m['payload_id'])['ResponseMetadata']['HTTPStatusCode'] == 200 assert mq.consume_calls_count > 0 assert mq.consume_return_messages_count == 1 assert mq.count_topic_messages(topic) == 0 assert mq.disconnect_in_operation_called is False assert mq.trying_to_connect_failures_calls == 0 assert len(app.produce_queue) == 0
def test_ls_not_found(self, local_file, s3_mocked): key_name = uuid.uuid4().hex with pytest.raises(ClientError) as e: s3_storage.ls(s3_storage.QUARANTINE, key_name) assert str( e.value ) == 'An error occurred (404) when calling the HeadObject operation: Not Found'
def test_ls(self, local_file, s3_mocked): key_name = uuid.uuid4().hex file_url = s3_storage.write(local_file, s3_storage.QUARANTINE, key_name) ls_response = s3_storage.ls(s3_storage.QUARANTINE, key_name) assert file_url is not None assert isinstance(ls_response, dict) assert ls_response['ContentLength'] == os.stat(local_file).st_size assert ls_response['ResponseMetadata']['HTTPStatusCode'] == 200
def test_ls(self, local_file, s3_mocked): key_name = uuid.uuid4().hex file_url = s3_storage.write(local_file, s3_storage.PERM, key_name, config.DUMMY_VALUES['account'], 'curl/7.61.1') ls_response = s3_storage.ls(s3_storage.PERM, key_name) assert file_url is not None assert isinstance(ls_response, dict) assert ls_response['ContentLength'] == len(local_file) assert ls_response['ResponseMetadata']['HTTPStatusCode'] == 200
def test_ls_not_found(self, local_file, s3_mocked): key_name = uuid.uuid4().hex assert s3_storage.ls( s3_storage.PERM, key_name)['ResponseMetadata']['HTTPStatusCode'] == 404