Files
bot-bottle/tests/unit/test_builtin_agent_images.py
T
didericis-codex 1aeeb55b54
test / integration-docker (pull_request) Successful in 22s
tracker-policy-pr / check-pr (pull_request) Successful in 22s
test / unit (pull_request) Successful in 46s
lint / lint (push) Successful in 51s
test / integration-firecracker (pull_request) Failing after 6m21s
test / coverage (pull_request) Has been skipped
test / publish-infra (pull_request) Has been skipped
fix(agent-images): retain SSH client
2026-07-21 17:25:11 +00:00

43 lines
1.3 KiB
Python

"""Unit contracts shared by all built-in agent images."""
from __future__ import annotations
import re
import unittest
from pathlib import Path
_CONTRIB_DIR = Path(__file__).resolve().parents[2] / "bot_bottle/contrib"
_AGENT_DOCKERFILES = tuple(sorted(_CONTRIB_DIR.glob("*/Dockerfile")))
class TestBuiltinAgentImages(unittest.TestCase):
def test_all_use_debian_trixie_stable(self):
self.assertTrue(_AGENT_DOCKERFILES)
for dockerfile in _AGENT_DOCKERFILES:
with self.subTest(provider=dockerfile.parent.name):
self.assertRegex(
dockerfile.read_text(),
r"(?m)^FROM node:22-trixie-slim\s*$",
)
def test_all_install_podman(self):
for dockerfile in _AGENT_DOCKERFILES:
with self.subTest(provider=dockerfile.parent.name):
self.assertRegex(
dockerfile.read_text(),
re.compile(r"(?m)^\s*podman(?:\s|\\|$)"),
)
def test_all_install_ssh_client(self):
for dockerfile in _AGENT_DOCKERFILES:
with self.subTest(provider=dockerfile.parent.name):
self.assertRegex(
dockerfile.read_text(),
re.compile(r"(?m)^\s*openssh-client(?:\s|\\|$)"),
)
if __name__ == "__main__":
unittest.main()