test(verification): cover metric and load contracts

This commit is contained in:
2026-09-20 10:40:33 +03:30
parent cd8fe33d08
commit 8dcbe384b0

View File

@@ -4,6 +4,7 @@ import io
import json import json
import sys import sys
import unittest import unittest
from pathlib import Path
from types import SimpleNamespace from types import SimpleNamespace
from unittest.mock import Mock, patch 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"}}): with patch.object(generate_traffic, "fetch_json", return_value={"pipeline": {"worker_status": "unreachable"}}):
self.assertIsNone(generate_traffic.stats_snapshot("http://unused")) 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): def test_overflowing_json_float_is_rejected_even_in_extra_fields(self):
with self.assertRaises(PayloadError): with self.assertRaises(PayloadError):
parse_payload(b'{"extra":1e400}') parse_payload(b'{"extra":1e400}')