Exemplo n.º 1
0
    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
Exemplo n.º 2
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'
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
    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