Integration tests
End-to-end tests that run against a live Colab backend (unlike the mocked unit tests under tests/).
Prerequisites
- Google account with Colab access.
uvinstalled.- Working auth — verify with
colab sessions.
Scenarios
| Directory | What it covers |
|---|---|
repro_plot_redirection/ |
colab exec of a matplotlib script with --output-image redirection. |
repro_keep_alive/ |
Fast smoke test (~10s): keep-alive daemon spawns, persists its PID, no errors during the pre-flight ping, colab stop reaps it. |
repro_keep_alive_scope/ |
Slow soak test (~95s): runs the daemon long enough for one ping past the pre-flight, asserts no keep_alive_error events. |
repro_variable_persistence/ |
Variables persist across colab exec calls in the same session. |
repro_piped_console/ |
Fast smoke test (~5s including session creation): `echo cmd \ |
repro_bundled_oauth/ |
Fast smoke test (~5s): verifies that the fallback OAuth configuration is loaded and starts the OAuth flow with the default client ID when local config is missing. |
repro_ssh/ |
Fast smoke test (~5s): --help advertises the flags and an unknown session exits. Slow soak test (~95s): Live e2e allocates a CPU VM, runs a real remote command over colab ssh --proxy-mode |
Running
uv run bash integration/repro_keep_alive/test.sh
uv run ensures the local colab entry point is on PATH.
Adding a scenario
- Create
repro_<short_description>/. - Add a script (
.shor.py) that demonstrates or verifies the issue. - Add a row to the table above noting whether it's fast (smoke) or slow (soak).