implemented gitops scaffolding and migrated docker compose to new folder
This commit is contained in:
+45
-12
@@ -13,26 +13,42 @@ from composectl import (
|
||||
|
||||
class ComposeCtlTests(unittest.TestCase):
|
||||
def test_detect_runtime_returns_installed_backend(self):
|
||||
runtime = detect_runtime(preferred="docker")
|
||||
runtime = detect_runtime()
|
||||
expected = "docker" if shutil.which("docker") else "podman"
|
||||
self.assertEqual(runtime, expected)
|
||||
|
||||
def test_detect_runtime_rejects_unavailable_explicit_runtime(self):
|
||||
if shutil.which("docker"):
|
||||
self.skipTest("Docker is available on this host")
|
||||
with self.assertRaises(RuntimeError):
|
||||
detect_runtime(preferred="docker")
|
||||
|
||||
def test_build_compose_command_uses_selected_runtime(self):
|
||||
cmd = build_compose_command(
|
||||
runtime="podman",
|
||||
compose_file=Path("media/compose.yaml"),
|
||||
project_name="media_services",
|
||||
compose_file=Path("compose-services/media_rhel1/compose.yaml"),
|
||||
project_name="media_rhel1_services",
|
||||
action="up",
|
||||
)
|
||||
self.assertEqual(
|
||||
cmd,
|
||||
["podman", "compose", "-f", "media/compose.yaml", "-p", "media_services", "up", "-d"],
|
||||
[
|
||||
"podman",
|
||||
"compose",
|
||||
"-f",
|
||||
"compose-services/media_rhel1/compose.yaml",
|
||||
"-p",
|
||||
"media_rhel1_services",
|
||||
"up",
|
||||
"-d",
|
||||
"--remove-orphans",
|
||||
],
|
||||
)
|
||||
|
||||
def test_discover_compose_files_finds_existing_stacks(self):
|
||||
stack_files = discover_compose_files(Path("."))
|
||||
self.assertIn(Path("services/media_nas1/compose.yaml"), stack_files)
|
||||
self.assertIn(Path("services/media_rhel1/compose.yaml"), stack_files)
|
||||
self.assertIn(Path("compose-services/media_nas1/compose.yaml"), stack_files)
|
||||
self.assertIn(Path("compose-services/media_rhel1/compose.yaml"), stack_files)
|
||||
|
||||
def test_discover_stack_names_returns_inferred_stack_names(self):
|
||||
stack_names = discover_stack_names(Path("."))
|
||||
@@ -42,19 +58,36 @@ class ComposeCtlTests(unittest.TestCase):
|
||||
def test_build_update_commands_returns_full_stack_refresh_sequence(self):
|
||||
commands = build_update_commands(
|
||||
runtime="podman",
|
||||
compose_file=Path("services/media/compose.yaml"),
|
||||
project_name="media_services",
|
||||
compose_file=Path("compose-services/media_rhel1/compose.yaml"),
|
||||
project_name="media_rhel1_services",
|
||||
)
|
||||
self.assertEqual(
|
||||
commands,
|
||||
[
|
||||
["podman", "compose", "-f", "services/media/compose.yaml", "-p", "media_services", "pull"],
|
||||
["podman", "compose", "-f", "services/media/compose.yaml", "-p", "media_services", "down"],
|
||||
["podman", "compose", "-f", "services/media/compose.yaml", "-p", "media_services", "up", "-d"],
|
||||
["podman", "image", "prune", "-f"],
|
||||
["podman", "compose", "-f", "compose-services/media_rhel1/compose.yaml", "-p", "media_rhel1_services", "config"],
|
||||
["podman", "compose", "-f", "compose-services/media_rhel1/compose.yaml", "-p", "media_rhel1_services", "pull"],
|
||||
["podman", "compose", "-f", "compose-services/media_rhel1/compose.yaml", "-p", "media_rhel1_services", "up", "-d", "--remove-orphans"],
|
||||
],
|
||||
)
|
||||
|
||||
def test_build_update_commands_can_include_image_prune(self):
|
||||
commands = build_update_commands(
|
||||
runtime="docker",
|
||||
compose_file=Path("compose-services/media_nas1/compose.yaml"),
|
||||
project_name="media_nas1_services",
|
||||
prune=True,
|
||||
)
|
||||
self.assertEqual(commands[-1], ["docker", "image", "prune", "-f"])
|
||||
|
||||
def test_build_compose_command_can_validate_configuration(self):
|
||||
command = build_compose_command(
|
||||
runtime="docker",
|
||||
compose_file=Path("compose-services/media_nas1/compose.yaml"),
|
||||
project_name="media_nas1_services",
|
||||
action="config",
|
||||
)
|
||||
self.assertEqual(command[-1], "config")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user