70 lines
2.4 KiB
Python
70 lines
2.4 KiB
Python
import pytest
|
|
|
|
from vllm_omni.engine.cfg_companion_tracker import CfgCompanionTracker
|
|
|
|
pytestmark = [pytest.mark.core_model, pytest.mark.cpu]
|
|
|
|
|
|
def test_register_companion_and_cleanup():
|
|
tracker = CfgCompanionTracker()
|
|
|
|
tracker.register_companion("req1", "cfg_text", "req1__cfg_text")
|
|
tracker.register_companion("req1", "cfg_img", "req1__cfg_img")
|
|
|
|
assert tracker.is_companion("req1__cfg_text")
|
|
assert tracker.get_companion_request_ids("req1") == {
|
|
"cfg_text": "req1__cfg_text",
|
|
"cfg_img": "req1__cfg_img",
|
|
}
|
|
|
|
removed = tracker.cleanup_parent("req1")
|
|
|
|
assert sorted(removed) == ["req1__cfg_img", "req1__cfg_text"]
|
|
assert not tracker.is_companion("req1__cfg_text")
|
|
assert tracker.get_companion_request_ids("req1") == {}
|
|
|
|
|
|
def test_abort_parent_expands_to_companions_and_cleans_up_deferred_parent():
|
|
tracker = CfgCompanionTracker()
|
|
tracker.register_companion("req1", "cfg_text", "req1__cfg_text")
|
|
tracker.defer_parent("req1", {"out": 1}, stage_id=0)
|
|
|
|
aborted = tracker.abort_parents(["req1"])
|
|
|
|
assert sorted(aborted) == ["req1", "req1__cfg_text"]
|
|
assert not tracker.is_companion("req1__cfg_text")
|
|
assert tracker.pop_pending_parent("req1") is None
|
|
|
|
|
|
def test_abort_companion_does_not_expand_to_parent():
|
|
tracker = CfgCompanionTracker()
|
|
tracker.register_companion("req1", "cfg_text", "req1__cfg_text")
|
|
|
|
aborted = tracker.abort_parents(["req1__cfg_text"])
|
|
|
|
assert aborted == ["req1__cfg_text"]
|
|
|
|
|
|
def test_companion_completion_flushes_deferred_parent():
|
|
tracker = CfgCompanionTracker()
|
|
tracker.register_companion("req1", "cfg_text", "req1__cfg_text")
|
|
tracker.defer_parent("req1", {"out": 123}, stage_id=0)
|
|
|
|
assert not tracker.all_companions_done("req1")
|
|
assert tracker.on_companion_completed("req1__cfg_text") == "req1"
|
|
assert tracker.all_companions_done("req1")
|
|
|
|
popped = tracker.pop_pending_parent("req1")
|
|
assert popped is not None
|
|
assert popped["engine_outputs"] == {"out": 123}
|
|
assert popped["stage_id"] == 0
|
|
|
|
|
|
def test_companion_completion_without_registered_parent_asserts():
|
|
tracker = CfgCompanionTracker()
|
|
tracker._companion_ids.add("req1__cfg_text")
|
|
tracker._companion_to_parent["req1__cfg_text"] = "req1"
|
|
|
|
with pytest.raises(AssertionError, match="completed before parent req1 was registered"):
|
|
tracker.on_companion_completed("req1__cfg_text")
|