Repository navigation
quality-loop 0.5.0
A product's test suite runs in its guests. quality_loop.guest.suite.run_pytest runs pytest in a guest the product has staged - in a Windows VM's desktop session, over SSH on macOS, through docker exec in a container - prints its output as it comes, and keeps the log and JUnit XML. Keyhac and XeFM each carried a copy of this; both now use it.
Linux guests are Docker containers. A docker = "<image>" table in guests.toml makes the guest a container for the run: the share is a bind mount, commands go through docker exec, and the container is removed afterwards. Guest.system tells Darwin, Linux and Windows apart - a non-Mac guest used to be taken for Windows.
Two pytest marks for where a test may run. -p quality_loop.pytest_plugin gives desktop (skipped unless --desktop, for tests that take focus, move windows, send input or change the clipboard or trash - a VM's run passes it) and host_only (skipped in a guest; --host-only runs just those).
Also: a terminal app driven in a pty is no longer read before it has drawn anything, so a slow start is waited for instead of recorded as an empty screen.
For an adapter: nothing has to change. A product that defined --desktop in its own conftest drops it when it loads the plugin, or pytest refuses the duplicate option.
Full Changelog: v0.4.2...v0.5.0