tests: фикс invalid_cases (очереди удаляются после сценариев) + полные AWS-коды в EXPECTED_CODES + invalid_probe
This commit is contained in:
+43
-21
@@ -58,6 +58,14 @@ EXPECTED_CODES = {
|
||||
"MessageTooLong",
|
||||
"InvalidMessageContents",
|
||||
"AWS.SimpleQueueService.NonExistentQueue",
|
||||
"AWS.SimpleQueueService.InvalidParameterValue",
|
||||
"AWS.SimpleQueueService.InvalidAttributeName",
|
||||
"AWS.SimpleQueueService.InvalidAttributeValue",
|
||||
"AWS.SimpleQueueService.PurgeQueueInProgress",
|
||||
"AWS.SimpleQueueService.TooManyEntriesInBatchRequest",
|
||||
"AWS.SimpleQueueService.BatchEntryIdsNotDistinct",
|
||||
"AWS.SimpleQueueService.EmptyBatchRequest",
|
||||
"AWS.SimpleQueueService.InvalidBatchEntryId",
|
||||
}
|
||||
|
||||
stats = {
|
||||
@@ -208,9 +216,16 @@ def invalid_cases(sqs):
|
||||
cases.append(lambda: sqs.get_queue_url(QueueName="no-such-queue-load-test"))
|
||||
# битый ReceiptHandle
|
||||
cases.append(lambda: sqs.delete_message(QueueUrl=ENDPOINT + "/no-such-queue", ReceiptHandle="broken"))
|
||||
# некорректные атрибуты
|
||||
q = sqs.create_queue(QueueName=f"invalid-{random.randint(0, 10**9)}")["QueueUrl"]
|
||||
|
||||
# ФИКС: раньше delete_queue стоял в finally и выполнялся ДО прогона сценариев —
|
||||
# сценарии атрибутов/batch/purge/300KB/FIFO тестировали УДАЛЁННУЮ очередь
|
||||
# (NonExistentQueue) вместо заявленных нарушений. Теперь очереди создаются
|
||||
# до прогона и удаляются ПОСЛЕ него.
|
||||
q = None
|
||||
fq = None
|
||||
try:
|
||||
# некорректные атрибуты
|
||||
q = sqs.create_queue(QueueName=f"invalid-{random.randint(0, 10**9)}")["QueueUrl"]
|
||||
cases.append(lambda: sqs.set_queue_attributes(QueueUrl=q, Attributes={"VisibilityTimeout": "43201"}))
|
||||
cases.append(lambda: sqs.set_queue_attributes(QueueUrl=q, Attributes={"VisibilityTimeout": "not-a-number"}))
|
||||
cases.append(lambda: sqs.set_queue_attributes(QueueUrl=q, Attributes={"BadAttribute": "1"}))
|
||||
@@ -229,27 +244,34 @@ def invalid_cases(sqs):
|
||||
cases.append(lambda: sqs.send_message(QueueUrl=q, MessageBody="x" * (300 * 1024)))
|
||||
# FIFO без MessageGroupId
|
||||
fq = sqs.create_queue(QueueName=f"invalid-{random.randint(0, 10**9)}.fifo", Attributes={"FifoQueue": "true"})["QueueUrl"]
|
||||
try:
|
||||
cases.append(lambda: sqs.send_message(QueueUrl=fq, MessageBody="x", MessageDeduplicationId="d"))
|
||||
finally:
|
||||
sqs.delete_queue(QueueUrl=fq)
|
||||
finally:
|
||||
sqs.delete_queue(QueueUrl=q)
|
||||
cases.append(lambda: sqs.send_message(QueueUrl=fq, MessageBody="x", MessageDeduplicationId="d"))
|
||||
|
||||
for c in cases:
|
||||
t0 = time.time()
|
||||
try:
|
||||
c()
|
||||
bump("soft_warn")
|
||||
except ClientError as e:
|
||||
add_latency(time.time() - t0)
|
||||
code = e.response.get("Error", {}).get("Code", "Unknown")
|
||||
if code in EXPECTED_CODES:
|
||||
record_expected(e)
|
||||
else:
|
||||
for c in cases:
|
||||
t0 = time.time()
|
||||
try:
|
||||
c()
|
||||
bump("soft_warn")
|
||||
except ClientError as e:
|
||||
add_latency(time.time() - t0)
|
||||
code = e.response.get("Error", {}).get("Code", "Unknown")
|
||||
if code in EXPECTED_CODES:
|
||||
record_expected(e)
|
||||
else:
|
||||
record_unexpected(e)
|
||||
except Exception as e:
|
||||
record_unexpected(e)
|
||||
except Exception as e:
|
||||
record_unexpected(e)
|
||||
finally:
|
||||
# Очереди удаляются ПОСЛЕ прогона сценариев.
|
||||
if fq is not None:
|
||||
try:
|
||||
sqs.delete_queue(QueueUrl=fq)
|
||||
except ClientError:
|
||||
pass
|
||||
if q is not None:
|
||||
try:
|
||||
sqs.delete_queue(QueueUrl=q)
|
||||
except ClientError:
|
||||
pass
|
||||
|
||||
|
||||
def worker(wid):
|
||||
|
||||
Reference in New Issue
Block a user