M10: ProcessingRunner skeleton

- Add modules/runtime/runner.py with ProcessingRunner and ProcessingRequest
- Wire process_images to delegate through runner (internal only)
- Add test/quality/test_processing_runner.py contract test

Behavior-preserving. Zero blast radius. All callers unchanged.

Made-with: Cursor
This commit is contained in:
Michael Cahill 2026-03-11 21:50:25 -07:00
parent 11b9e0f16e
commit 59e46fa069
6 changed files with 192 additions and 1 deletions

View file

@ -0,0 +1,26 @@
"""Contract tests for ProcessingRunner (M10 runner skeleton)."""
import modules.processing
from modules.runtime.runner import ProcessingRunner, ProcessingRequest
def test_processing_runner_delegates(monkeypatch):
"""ProcessingRunner.run delegates to process_images_inner."""
called = {}
def fake_process_images_inner(p):
called["ok"] = True
return "result"
monkeypatch.setattr(
modules.processing,
"process_images_inner",
fake_process_images_inner,
)
runner = ProcessingRunner()
request = ProcessingRequest(processing="dummy")
result = runner.run(request)
assert called["ok"]
assert result == "result"