moto_server s3 замедляется по мере выполнения тестов - PullRequest
0 голосов
/ 10 июля 2019

У меня есть набор тестов ~ 1000 тестов. Ранее мы использовали декоратор mock_s3, который работал только потому, что наши «интеграционные тесты» просто импортировали модули из других сервисов и проверяли их функциональность. Это всегда было нежелательно, но до недавнего времени не было приоритета.

Я пытаюсь использовать moto в режиме автономного сервера, взломав запуск сервиса в conftest.py с помощью

def start_local_moto_server():
    global moto_subprocess
    moto_subprocess = subprocess.Popen(
        ['moto_server', 's3'],
        stdout=subprocess.PIPE, stderr=subprocess.PIPE,
        bufsize=0, universal_newlines=True,
    )
    print 'Waiting for moto local service to start...'
    while True:
        moto_log = moto_subprocess.stderr.readline()
        print moto_log
        if 'Running' in moto_log:
            break

    boto3.resource(
        's3', region_name='us-east-1', endpoint_url='http://127.0.0.1:5000'
    ).create_bucket(Bucket=TEST_S3_BUCKET_NAME)

По мере выполнения тестов любые звонки клиенту s3 становятся все медленнее и медленнее, пока, наконец, я не получу

ReadTimeoutError: Read timeout on endpoint URL: "http://localbox:5000/my-bucket/my/key/file.tar"

Запуск этих тестов по отдельности приводит к тому, что все они проходят.

Я действительно не знаю, с чего начать отладку или понимание проблемы, или как предоставить больше информации. Может ли кто-нибудь помочь определить проблему?

1 Ответ

0 голосов
/ 12 июля 2019

Ответ на медлительность предоставлен разработчиком мото здесь: https://github.com/spulec/moto/issues/2288

...