Repository navigation
v1.0.17
Added
-
The opt-in integration suite that
AGENTS.mdhas been documenting all along.
The guide promisedBROWSER_AGENT_IT=1 pytest -m integration. The marker was
registered inpyproject.toml, but nothing implemented the gate and no test carried
the marker — so the documented command selected zero tests while implying the
X11/Chrome layer was covered. The layer that actually breaks in production (Xvfb
start, xdotool, scrot, the CDP handshake) had no automated coverage anywhere.tests/conftest.pyimplements the gate:integration-marked tests skip unless
BROWSER_AGENT_ITis truthy, and skip again — with a different reason — when the
host lacks Xvfb, xdotool or a capture tool. A missing opt-in is the operator's
choice; a missing binary is a provisioning problem. Neither is a test failure,
because a check that fails for the wrong reason gets disabled.tests/integration/test_x11_smoke.pycovers X11 only, on a display that is not the
daemon's:99so it cannot drive a running daemon's cursor. The assertion that
matters reads the cursor back from the X server withgetmouselocationrather than
trustingmove_mouse's return value, which is the point it asked for and therefore
proves only that the method ran. Also covered: the geometry the daemon asked for,
a decodable PNG at the right size, the exit-0-with-stderr keysym quirk that P2-4 was
written for, and that the display is re-bindable afterwards. -
tests/test_integration_gate.py— the coverage claim is now itself asserted.
The marker is registered, at least one test carries it, the gate is off by default
and on for a truthy value, and a plain run reports the skip reason. Verified
negative in both directions: deleting the tests fails two of these, and deleting
the gate fails two others. A guard that needs Xvfb would itself be skippable, so
these four run everywhere and cost about a second.
Documentation
AGENTS.mdnow states what is and is not covered, in those words. The old line
said "real-Chrome tests are opt-in", which overstated it twice: the harness is X11
only, and Chrome, CDP and the Turnstile solver still have no automated coverage
anywhere — they are exercised against fakes, never against a real browser, and
browser-agent doctoris the only thing that touches them. A reader now learns
that from the guide instead of assuming the opposite.