From 3c69a4c744525be0146629fc5933e3ddab609fb2 Mon Sep 17 00:00:00 2001 From: Shangming Cai Date: Sat, 22 Aug 2026 19:23:46 +0800 Subject: [PATCH] fix(test): unbreak test_kv_transfer_replica_metric after #35950 (#35974) --- .../test_kv_transfer_replica_metric.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/test/registered/unit/disaggregation/test_kv_transfer_replica_metric.py b/test/registered/unit/disaggregation/test_kv_transfer_replica_metric.py index ed17cc085..0d167a4f9 100644 --- a/test/registered/unit/disaggregation/test_kv_transfer_replica_metric.py +++ b/test/registered/unit/disaggregation/test_kv_transfer_replica_metric.py @@ -45,9 +45,23 @@ def _make_kv_mgr(is_mla_backend): return mgr +class _ConcreteKVSender(CommonKVSender): + """CommonKVSender is abstract: `poll` and `failure_exception` are backend + duties, so it cannot be instantiated (not even via __new__, which enforces + ABC completeness). This stub supplies them so the shared metric path can be + exercised without pulling in a transfer backend. + """ + + def poll(self): + raise NotImplementedError + + def failure_exception(self): + raise NotImplementedError + + def _make_sender(kv_mgr): """CommonKVSender bypassing __init__, wiring only the fields the path reads.""" - sender = CommonKVSender.__new__(CommonKVSender) + sender = _ConcreteKVSender.__new__(_ConcreteKVSender) sender._transfer_metric = KVTransferMetric() sender._transfer_num_kv_indices = 0 sender._transfer_num_state_indices = 0