Skip to content

Commit ec21988

Browse files
committed
add docker build tests
1 parent 8b19847 commit ec21988

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

algobattle/program.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ def _build_daemon_call(
312312
client().images.build(
313313
path=str(path),
314314
tag=tag,
315-
timeout=timeout,
315+
timeout=timeout, # type: ignore
316316
dockerfile=dockerfile,
317317
**build_kwargs,
318318
),

tests/test_docker.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from algobattle.match import AlgobattleConfig, MatchConfig, RunConfig
66
from algobattle.program import Generator, Solver
7+
from algobattle.util import BuildError
78

89
from . import testsproblem
910
from .testsproblem.problem import TestInstance, TestProblem, TestSolution
@@ -30,6 +31,17 @@ def setUpClass(cls) -> None:
3031
).as_prog_config()
3132
cls.instance = TestInstance(semantics=True)
3233

34+
async def test_build_error(self):
35+
"""A container's build step times out."""
36+
with self.assertRaises(BuildError, msg="Build did not complete successfully."):
37+
await Generator.build(path=self.problem_path / "build_error", problem=TestProblem, config=self.config)
38+
39+
async def test_build_timeout(self):
40+
"""A container's build step times out."""
41+
config = AlgobattleConfig(match=MatchConfig(problem="Test Problem", build_timeout=1.5)).as_prog_config()
42+
with self.assertRaises(BuildError, msg="Build ran into a timeout."):
43+
await Generator.build(path=self.problem_path / "build_timeout", problem=TestProblem, config=config)
44+
3345
async def test_gen_lax_timeout(self):
3446
"""The generator times out but still outputs a valid instance."""
3547
with await Generator.build(

0 commit comments

Comments
 (0)