Skip to content

Commit e31985b

Browse files
authored
Add podman unit tests (#312)
Podman unit tests for docker runner.
1 parent e9b5844 commit e31985b

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

runners/mlcube_docker/mlcube_docker/tests/test_docker_runner.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
from mlcube.shell import Shell
1111

1212
_HAVE_DOCKER: bool = Shell.run(["docker", "--version"], on_error="ignore") == 0
13+
_HAVE_PODMAN: bool = Shell.run(["podman", "--version"], on_error="ignore") == 0
14+
1315

1416
_MLCUBE_DEFAULT_ENTRY_POINT = """
1517
docker:
@@ -54,13 +56,13 @@ def setUp(self) -> None:
5456
def tearDown(self) -> None:
5557
Shell.sync_workspace = self.sync_workspace
5658

57-
@unittest.skipUnless(_HAVE_DOCKER, reason="No docker available.")
58-
def test_mlcube_default_entrypoints(self):
59+
def default_entry_points(self, executable: str) -> None:
5960
with patch("io.open", mock_open(read_data=_MLCUBE_DEFAULT_ENTRY_POINT)):
6061
mlcube: DictConfig = MLCubeConfig.create_mlcube_config(
6162
"/some/path/to/mlcube.yaml",
6263
runner_config=Config.DEFAULT,
6364
runner_cls=DockerRun,
65+
mlcube_cli_args=OmegaConf.create({"docker": {"docker": executable}}),
6466
)
6567
self.assertEqual(mlcube.runner.image, "ubuntu:18.04")
6668
self.assertDictEqual(
@@ -76,13 +78,13 @@ def test_mlcube_default_entrypoints(self):
7678
DockerRun(mlcube, task="ls").run()
7779
DockerRun(mlcube, task="pwd").run()
7880

79-
@unittest.skipUnless(_HAVE_DOCKER, reason="No docker available.")
80-
def test_mlcube_custom_entrypoints(self):
81+
def custom_entry_points(self, executable: str) -> None:
8182
with patch("io.open", mock_open(read_data=_MLCUBE_CUSTOM_ENTRY_POINTS)):
8283
mlcube: DictConfig = MLCubeConfig.create_mlcube_config(
8384
"/some/path/to/mlcube.yaml",
8485
runner_config=Config.DEFAULT,
8586
runner_cls=DockerRun,
87+
mlcube_cli_args=OmegaConf.create({"docker": {"docker": executable}}),
8688
)
8789
self.assertEqual(mlcube.runner.image, "ubuntu:18.04")
8890
self.assertDictEqual(
@@ -100,3 +102,19 @@ def test_mlcube_custom_entrypoints(self):
100102
self._check_inspect_output(DockerRun(mlcube, task=None).inspect())
101103
DockerRun(mlcube, task="ls").run()
102104
DockerRun(mlcube, task="free").run()
105+
106+
@unittest.skipUnless(_HAVE_PODMAN, reason="No podman available.")
107+
def test_default_entrypoints_with_podman(self):
108+
self.default_entry_points("podman")
109+
110+
@unittest.skipUnless(_HAVE_DOCKER, reason="No docker available.")
111+
def test_default_entrypoints_with_docker(self):
112+
self.default_entry_points("docker")
113+
114+
@unittest.skipUnless(_HAVE_PODMAN, reason="No podman available.")
115+
def test_custom_entrypoints_with_podman(self):
116+
self.custom_entry_points("podman")
117+
118+
@unittest.skipUnless(_HAVE_DOCKER, reason="No docker available.")
119+
def test_custom_entrypoints_with_docker(self):
120+
self.custom_entry_points("docker")

0 commit comments

Comments
 (0)