test(gateway-image): probe package imports, not pre-refactor flat modules
test / stage-firecracker-inputs (pull_request) Successful in 3s
test / integration-docker (pull_request) Successful in 10s
tracker-policy-pr / check-pr (pull_request) Successful in 12s
test / unit (pull_request) Successful in 1m31s
test / build-infra (pull_request) Successful in 3m45s
test / integration-firecracker (pull_request) Successful in 1m34s
test / coverage (pull_request) Successful in 1m59s
test / publish-infra (pull_request) Has been skipped
test / stage-firecracker-inputs (push) Successful in 3s
test / integration-docker (push) Successful in 16s
Update Quality Badges / update-badges (push) Failing after 42s
lint / lint (push) Successful in 53s
test / unit (push) Successful in 1m35s
test / build-infra (push) Successful in 3m30s
test / integration-firecracker (push) Successful in 1m46s
test / coverage (push) Successful in 2m1s
test / publish-infra (push) Successful in 2m14s

test_python_imports_supervise_module probed the image with
`import supervise; import supervise_server`, the flat sibling modules that
5ad3449 replaced. They now live in the installed package, so the test fails
with ModuleNotFoundError when actually run.

It went unnoticed because the whole class carries a GITEA_ACTIONS skip — it
is interactive-only, so CI never executes it.

All 4 tests in the class now pass against a freshly built gateway image.

Closes #429.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit was merged in pull request #430.
This commit is contained in:
2026-07-20 13:40:14 -04:00
parent af1690ab22
commit 2de223a33b
+4 -5
View File
@@ -86,13 +86,12 @@ class TestGatewayImage(unittest.TestCase):
self.assertIn("Mitmproxy", out) self.assertIn("Mitmproxy", out)
def test_python_imports_supervise_module(self): def test_python_imports_supervise_module(self):
# The bundle's supervise daemon imports `supervise` as a # The supervise daemon is installed as part of the bot_bottle
# same-directory sibling of `supervise_server`. Probe the # package (5ad3449), not as flat sibling modules under /app.
# import resolves with `python3 -c` from /app (the # Probe that the package imports resolve inside the image.
# Dockerfile's WORKDIR).
rc, out = self._run_in_image( rc, out = self._run_in_image(
"python3", "-c", "python3", "-c",
"import supervise; import supervise_server; print('ok')", "from bot_bottle import supervise, supervise_server; print('ok')",
) )
self.assertEqual(0, rc, msg=out) self.assertEqual(0, rc, msg=out)
self.assertIn("ok", out) self.assertIn("ok", out)