Skip to content

Commit c796fd0

Browse files
committed
test: 新增多后端回放一致性测试框架
1 parent cbb6979 commit c796fd0

23 files changed

Lines changed: 3378 additions & 0 deletions
Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
# Tencent is pleased to support the open source community by making tRPC-Agent-Python available.
2+
#
3+
# Copyright (C) 2026 Tencent. All rights reserved.
4+
#
5+
# tRPC-Agent-Python is licensed under Apache-2.0.
6+
"""Replay consistency test framework for session and memory backends."""
7+
8+
from .constants import ALLOWED_DIFFS
9+
from .constants import EXPECTED_REPLAY_CASE_FILES
10+
from .constants import EXPECTED_REPLAY_CASE_NAMES
11+
from .constants import REPLAY_CASES_DIR
12+
from .constants import SUMMARY_TRUNCATION_ALLOWED_DIFF_PATHS
13+
from .constants import SUMMARY_TRUNCATION_ALLOWED_DIFF_REASON
14+
from .models import ReplayCase
15+
from .loaders import MEMORY_REPLAY_CASES
16+
from .loaders import REPLAY_CASES
17+
from .loaders import load_jsonl_records
18+
from .loaders import load_replay_cases
19+
from .backends import BASELINE_BACKEND_NAME
20+
from .backends import DEFAULT_BACKEND_CONFIG
21+
from .backends import ENV_REDIS_BACKEND_NAME
22+
from .backends import ENV_SQL_BACKEND_NAME
23+
from .backends import MOCK_REDIS_BACKEND_NAME
24+
from .backends import REDIS_URL_ENV
25+
from .backends import SQLITE_BACKEND_NAME
26+
from .backends import SQL_URL_ENV
27+
from .backends import ReplayBackendConfig
28+
from .backends import ReplayBackendUnavailable
29+
from .backends import comparison_backend_names
30+
from .backends import configured_memory_backend_names
31+
from .backends import configured_session_backend_names
32+
from .backends import create_sql_memory_service
33+
from .backends import create_sql_session_service
34+
from .backends import default_backend_matrix_enabled
35+
from .backends import get_required_session
36+
from .backends import make_memory_session
37+
from .backends import resolve_backend_config
38+
from .backends import run_memory_replay_case
39+
from .backends import run_session_replay_case
40+
from .fixtures import make_memory_config
41+
from .fixtures import make_session_config
42+
from .normalizers import all_normalized_events
43+
from .normalizers import canonicalize
44+
from .normalizers import compact_text
45+
from .normalizers import event_texts
46+
from .normalizers import make_event
47+
from .normalizers import make_part
48+
from .normalizers import normalize_content_parts
49+
from .normalizers import normalize_event
50+
from .normalizers import normalize_memory_entry
51+
from .normalizers import normalize_memory_response
52+
from .normalizers import normalize_part
53+
from .normalizers import normalize_session
54+
from .normalizers import normalize_summary_text
55+
from .normalizers import summary_events
56+
from .normalizers import summary_metadata
57+
from .normalizers import summary_records_by_id
58+
from .normalizers import summary_text
59+
from .comparators import allowed_diff_reason
60+
from .comparators import diff_dicts
61+
from .comparators import diff_lists
62+
from .comparators import diff_snapshots
63+
from .comparators import event_at
64+
from .comparators import extract_event_location
65+
from .comparators import extract_summary_id
66+
from .comparators import find_summary_id
67+
from .comparators import is_event_diff
68+
from .comparators import is_session_metadata_diff
69+
from .comparators import is_state_diff
70+
from .comparators import is_summary_diff
71+
from .comparators import join_path
72+
from .comparators import make_diff
73+
from .reporters import build_case_diff_report
74+
from .reporters import build_case_memory_report
75+
from .reporters import build_case_session_report
76+
from .reporters import build_diff_report
77+
from .reporters import build_replay_diff_report
78+
from .reporters import build_report_totals
79+
from .reporters import build_summary_content_checks
80+
from .reporters import build_summary_metadata_checks
81+
from .reporters import combined_status
82+
from .reporters import count_case_diffs
83+
from .reporters import count_summary_check_mismatches
84+
from .reporters import diff_status
85+
from .reporters import iter_case_diffs
86+
from .reporters import serialize_allowed_diffs
87+
from .reporters import session_report_status
88+
from .reporters import summary_comparison_records
89+
from .reporters import summary_cache_records_by_id
90+
from .reporters import summary_metadata_field_check
91+
from .assertions import assert_all_diffs_allowed
92+
from .assertions import assert_allowed_session_snapshot_variant
93+
from .assertions import assert_memory_replay_case_snapshot
94+
from .assertions import assert_replay_case_fixtures_load
95+
from .assertions import assert_session_replay_case_snapshot
96+
from .assertions import assert_summary_truncation_in_memory_snapshot
97+
from .assertions import uses_allowed_snapshot_variant
98+
99+
__all__ = [
100+
# Constants
101+
"REPLAY_CASES_DIR",
102+
"EXPECTED_REPLAY_CASE_NAMES",
103+
"EXPECTED_REPLAY_CASE_FILES",
104+
"SUMMARY_TRUNCATION_ALLOWED_DIFF_REASON",
105+
"SUMMARY_TRUNCATION_ALLOWED_DIFF_PATHS",
106+
"ALLOWED_DIFFS",
107+
# Models
108+
"ReplayCase",
109+
# Loaders
110+
"load_jsonl_records",
111+
"load_replay_cases",
112+
"REPLAY_CASES",
113+
"MEMORY_REPLAY_CASES",
114+
# Fixtures
115+
"make_session_config",
116+
"make_memory_config",
117+
# Backends
118+
"BASELINE_BACKEND_NAME",
119+
"SQLITE_BACKEND_NAME",
120+
"ENV_SQL_BACKEND_NAME",
121+
"ENV_REDIS_BACKEND_NAME",
122+
"MOCK_REDIS_BACKEND_NAME",
123+
"DEFAULT_BACKEND_CONFIG",
124+
"SQL_URL_ENV",
125+
"REDIS_URL_ENV",
126+
"ReplayBackendConfig",
127+
"ReplayBackendUnavailable",
128+
"comparison_backend_names",
129+
"configured_session_backend_names",
130+
"configured_memory_backend_names",
131+
"default_backend_matrix_enabled",
132+
"resolve_backend_config",
133+
"create_sql_session_service",
134+
"create_sql_memory_service",
135+
"get_required_session",
136+
"make_memory_session",
137+
"run_session_replay_case",
138+
"run_memory_replay_case",
139+
# Normalizers
140+
"make_event",
141+
"make_part",
142+
"normalize_session",
143+
"normalize_event",
144+
"normalize_content_parts",
145+
"normalize_part",
146+
"normalize_memory_response",
147+
"normalize_memory_entry",
148+
"summary_events",
149+
"event_texts",
150+
"all_normalized_events",
151+
"compact_text",
152+
"normalize_summary_text",
153+
"canonicalize",
154+
"summary_metadata",
155+
"summary_records_by_id",
156+
"summary_text",
157+
# Comparators
158+
"diff_snapshots",
159+
"diff_dicts",
160+
"diff_lists",
161+
"join_path",
162+
"make_diff",
163+
"allowed_diff_reason",
164+
"extract_event_location",
165+
"extract_summary_id",
166+
"event_at",
167+
"find_summary_id",
168+
"is_event_diff",
169+
"is_state_diff",
170+
"is_summary_diff",
171+
"is_session_metadata_diff",
172+
# Reporters
173+
"build_replay_diff_report",
174+
"build_case_diff_report",
175+
"build_case_session_report",
176+
"build_case_memory_report",
177+
"build_report_totals",
178+
"build_diff_report",
179+
"build_summary_content_checks",
180+
"build_summary_metadata_checks",
181+
"summary_metadata_field_check",
182+
"summary_comparison_records",
183+
"summary_cache_records_by_id",
184+
"session_report_status",
185+
"combined_status",
186+
"diff_status",
187+
"count_summary_check_mismatches",
188+
"count_case_diffs",
189+
"iter_case_diffs",
190+
"serialize_allowed_diffs",
191+
# Assertions
192+
"assert_all_diffs_allowed",
193+
"assert_replay_case_fixtures_load",
194+
"assert_session_replay_case_snapshot",
195+
"assert_allowed_session_snapshot_variant",
196+
"assert_summary_truncation_in_memory_snapshot",
197+
"assert_memory_replay_case_snapshot",
198+
"uses_allowed_snapshot_variant",
199+
]

0 commit comments

Comments
 (0)