У меня есть набор тестов ~ 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"
Запуск этих тестов по отдельности приводит к тому, что все они проходят.
Я действительно не знаю, с чего начать отладку или понимание проблемы, или как предоставить больше информации. Может ли кто-нибудь помочь определить проблему?