from __future__ import annotations import importlib.util from pathlib import Path SCRIPT_PATH = Path(__file__).resolve().parents[1] / "scripts" / "collect_evidence.py" SPEC = importlib.util.spec_from_file_location("collect_evidence", SCRIPT_PATH) MODULE = importlib.util.module_from_spec(SPEC) assert SPEC and SPEC.loader SPEC.loader.exec_module(MODULE) def test_byoc_profile_windows_stay_below_api_limit_and_cover_range(): windows = MODULE._byoc_profile_windows("100", "21700") assert windows == [("100", "10899"), ("10900", "21699"), ("21700", "21700")] assert all(int(end) - int(start) < 10_800 for start, end in windows) def test_byoc_available_statement_fields_accepts_wrapped_and_plain_responses(): assert MODULE._byoc_available_statement_fields( {"data": ["digest", "digest_text", 1]} ) == {"digest", "digest_text"} assert MODULE._byoc_available_statement_fields(["query_sample_text"]) == { "query_sample_text" } def test_byoc_statement_summary_uses_supported_sql_sample_fields(): table = MODULE._byoc_statement_summary_table([ { "digest": "abc", "digest_text": "SELECT * FROM users", "exec_count": 2, "sum_latency": 2_000_000_000, "max_latency": 1_500_000_000, } ]) record = dict(zip(table["columns"], table["rows"][0])) assert record["sample_sql"] == "SELECT * FROM users" def test_byoc_data_plane_metrics_use_physical_scope_but_tidb_metrics_do_not(): assert MODULE._byoc_metric_scope( "logical", "physical", True, data_plane=True, ) == "physical" assert MODULE._byoc_metric_scope( "logical", "physical", True, data_plane=False, ) == "logical" assert MODULE._byoc_metric_scope( "dedicated", "", False, data_plane=True, ) == "dedicated"