Python projects
The runner recognizes a Python project by the pytest.ini at the root of the repository and runs:
uv run pytest tests/test_proton_script.py::test_run_proton_execution --id_dataset_run=<id>
uv
The machine needs uv on the PATH of the user running the runner. On the first run, uv
installs the project's dependencies and the Python version the project requires (3.10 or newer), if the machine doesn't
have it.
- Windows
- Linux
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
curl -LsSf https://astral.sh/uv/install.sh | sh
Open a new terminal and check:
uv --version
After installing, restart the Runner: it reads the PATH when it opens.
By platform
| Project platform | What else the machine needs |
|---|---|
| API | Nothing besides uv. |
| Web (Playwright) | Nothing on Windows: Playwright's Chromium browser is downloaded on the first run. On Linux, the system libraries the browser uses (below). |
| Mobile (Android) | adb, Appium, and the device. See Mobile (Android). |
| SAP GUI | Windows, SAP GUI with scripting enabled, and the Runner in the user's session. See SAP GUI. |
| Desktop (Windows) | Windows and the Runner in the user's session, with the screen unlocked. |
On Linux, install the browser libraries once (the command asks for the administrator password):
uvx playwright install-deps chromium
Desktop and SAP GUI automations
Automations that work with Windows windows (pywinauto and SAP GUI Scripting) need an open, unlocked user session:
- run Proton Runner with the same Windows user the windows will open under;
- on a virtual machine, leave the session open and without a screen lock;
- a minimized or disconnected remote desktop session can stop the automation: it's better to leave the session open in the virtual machine's console.
Run on the machine before the runner
To check the machine, run the project on it, without Proton, as the template project explains:
uv sync
uv run pytest
If it passes in the terminal with the same Windows user, it will pass through the runner.