51 lines
1.1 KiB
Python
51 lines
1.1 KiB
Python
from pathlib import Path
|
|
|
|
from integrations.docker.compose import get_all_services_in_dir
|
|
|
|
|
|
def test_get_all_services_in_dir_scans_immediate_children(tmp_path: Path):
|
|
root = tmp_path / "workspace"
|
|
project = root / "playground"
|
|
project.mkdir(parents=True)
|
|
(project / "docker-compose.yml").write_text(
|
|
"""
|
|
services:
|
|
echo:
|
|
image: hashicorp/http-echo:1.0
|
|
ports:
|
|
- "9081:5678"
|
|
""".strip(),
|
|
encoding="utf-8",
|
|
)
|
|
|
|
services = get_all_services_in_dir(root)
|
|
|
|
assert services == [
|
|
{
|
|
"name": "echo",
|
|
"ports": [9081],
|
|
"bindings": [{"published": 9081, "host": None}],
|
|
"folder": project,
|
|
}
|
|
]
|
|
|
|
|
|
def test_get_all_services_in_dir_skips_nested_grandchildren(tmp_path: Path):
|
|
root = tmp_path / "workspace"
|
|
nested = root / "group" / "playground"
|
|
nested.mkdir(parents=True)
|
|
(nested / "docker-compose.yml").write_text(
|
|
"""
|
|
services:
|
|
echo:
|
|
image: hashicorp/http-echo:1.0
|
|
ports:
|
|
- "9081:5678"
|
|
""".strip(),
|
|
encoding="utf-8",
|
|
)
|
|
|
|
services = get_all_services_in_dir(root)
|
|
|
|
assert services == []
|