test(verification): cover metric and load contracts
This commit is contained in:
@@ -4,6 +4,7 @@ import io
|
||||
import json
|
||||
import sys
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from types import SimpleNamespace
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
@@ -27,6 +28,44 @@ class TestVerifierContract(unittest.TestCase):
|
||||
with patch.object(generate_traffic, "fetch_json", return_value={"pipeline": {"worker_status": "unreachable"}}):
|
||||
self.assertIsNone(generate_traffic.stats_snapshot("http://unused"))
|
||||
|
||||
def test_stats_snapshot_keeps_received_and_acknowledged_counts_separate(self):
|
||||
response = {
|
||||
"pipeline": {
|
||||
"total_received": 1570,
|
||||
"total_acknowledged": 1540,
|
||||
"total_processed": 1520,
|
||||
"total_dlq": 50,
|
||||
"in_flight_buffer": 0,
|
||||
},
|
||||
"breakdown": {"dlq_by_reason": {}},
|
||||
}
|
||||
with patch.object(generate_traffic, "fetch_json", return_value=response):
|
||||
snapshot = generate_traffic.stats_snapshot("http://unused")
|
||||
self.assertEqual(snapshot["total_received"], 1570)
|
||||
self.assertEqual(snapshot["total_acknowledged"], 1540)
|
||||
|
||||
def test_assessment_metric_deltas_match_received_and_acknowledged_contract(self):
|
||||
before = {
|
||||
"total_received": 10,
|
||||
"total_acknowledged": 8,
|
||||
"total_processed": 7,
|
||||
"total_dlq": 2,
|
||||
}
|
||||
after = {
|
||||
"total_received": 1580,
|
||||
"total_acknowledged": 1548,
|
||||
"total_processed": 1527,
|
||||
"total_dlq": 52,
|
||||
}
|
||||
self.assertTrue(generate_traffic.assessment_metrics_match(before, after))
|
||||
after["total_acknowledged"] += 1
|
||||
self.assertFalse(generate_traffic.assessment_metrics_match(before, after))
|
||||
|
||||
def test_k6_latency_guardrail_is_opt_in(self):
|
||||
script = (Path(__file__).parents[1] / "scripts" / "load_test.js").read_text()
|
||||
self.assertIn("__ENV.P95_MS ?", script)
|
||||
self.assertNotIn("__ENV.P95_MS || 50", script)
|
||||
|
||||
def test_overflowing_json_float_is_rejected_even_in_extra_fields(self):
|
||||
with self.assertRaises(PayloadError):
|
||||
parse_payload(b'{"extra":1e400}')
|
||||
|
||||
Reference in New Issue
Block a user