tests: авточистка очередей до и после прогона (мусор не копится)

This commit is contained in:
“Naeel”
2026-08-14 22:19:27 +04:00
parent 31cd327946
commit 77b8586a47
+26
View File
@@ -324,6 +324,26 @@ def worker(wid):
time.sleep(random.uniform(0.01, 0.05))
def cleanup_all_queues(sqs):
"""Удаляет ВСЕ очереди тенанта.
Вызывается ПЕРЕД прогоном (стартовый мусор прошлых прогонов) и ПОСЛЕ
(остатки от циклов, упавших на сбое — без этого копятся очереди и
тест упирается в лимит MaxQueues тенанта)."""
try:
urls = sqs.list_queues().get("QueueUrls", [])
except Exception:
urls = []
deleted = 0
for u in urls:
try:
sqs.delete_queue(QueueUrl=u)
deleted += 1
except Exception:
pass
if deleted:
print(f"cleanup: удалено очередей {deleted}", flush=True)
def progress_printer():
while not stop.is_set():
stop.wait(30)
@@ -341,6 +361,9 @@ def main():
print("Нужны AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY")
return 1
# Чистим стартовый мусор прошлых прогонов.
cleanup_all_queues(make_client())
threads = [threading.Thread(target=worker, args=(i,), daemon=True) for i in range(WORKERS)]
hthread = threading.Thread(target=health_monitor, daemon=True)
pthread = threading.Thread(target=progress_printer, daemon=True)
@@ -354,6 +377,9 @@ def main():
for t in threads:
t.join(timeout=30)
# Чистим остатки: очереди от циклов, упавших на сбоях.
cleanup_all_queues(make_client())
el = int(time.time() - start_ts)
with stats_lock:
s = dict(stats)