57785a96c2
test / integration-docker (pull_request) Successful in 20s
lint / lint (push) Successful in 49s
tracker-policy-pr / check-pr (pull_request) Successful in 9s
test / unit (pull_request) Successful in 1m44s
test / integration-firecracker (pull_request) Failing after 3m17s
test / coverage (pull_request) Has been skipped
test / publish-infra (pull_request) Has been skipped
35 lines
1.0 KiB
Python
35 lines
1.0 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|\\|$)"),
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|