Skip to content

Commit ef6b17f

Browse files
author
Andrei Neagu
committed
added new tests and fixtures
1 parent 12d1360 commit ef6b17f

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from pathlib import Path
2+
from typing import Any
3+
4+
import pytest
5+
6+
from .helpers.docker import run_docker_compose_config
7+
8+
9+
@pytest.fixture(scope="module")
10+
def dev_vendors_docker_compose(
11+
osparc_simcore_root_dir: Path,
12+
osparc_simcore_scripts_dir: Path,
13+
env_file_for_testing: Path,
14+
temp_folder: Path,
15+
) -> dict[str, Any]:
16+
docker_compose_path = (
17+
osparc_simcore_root_dir / "services" / "docker-compose-dev-vendors.yml"
18+
)
19+
assert docker_compose_path.exists()
20+
21+
return run_docker_compose_config(
22+
project_dir=osparc_simcore_root_dir / "services",
23+
scripts_dir=osparc_simcore_scripts_dir,
24+
docker_compose_paths=docker_compose_path,
25+
env_file_path=env_file_for_testing,
26+
destination_path=temp_folder / "ops_docker_compose.yml",
27+
)
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import json
2+
from typing import Final
3+
4+
from settings_library.utils_session import DEFAULT_SESSION_COOKIE_NAME
5+
6+
pytest_plugins = [
7+
"pytest_simcore.dev_vendors_compose",
8+
"pytest_simcore.docker_compose",
9+
"pytest_simcore.repository_paths",
10+
]
11+
12+
13+
_SERVICE_TO_MIDDLEWARE_MAPPING: Final[dict[str, str]] = {
14+
"manual": "pytest-simcore_manual-auth"
15+
}
16+
17+
18+
def test_dev_vendors_docker_compose_auth_enabled(
19+
dev_vendors_docker_compose: dict[str, str]
20+
):
21+
22+
assert isinstance(dev_vendors_docker_compose["services"], dict)
23+
for service_name, service_spec in dev_vendors_docker_compose["services"].items():
24+
print(
25+
f"Checking vendor service '{service_name}'\n{json.dumps(service_spec, indent=2)}"
26+
)
27+
labels = service_spec["deploy"]["labels"]
28+
29+
# NOTE: when adding a new service it should also be added to the mapping
30+
auth_middleware_name = _SERVICE_TO_MIDDLEWARE_MAPPING[service_name]
31+
32+
prefix = f"traefik.http.middlewares.{auth_middleware_name}.forwardauth"
33+
34+
assert labels[f"{prefix}.trustForwardHeader"] == "true"
35+
assert "http://webserver:8080/v0/auth:check" in labels[f"{prefix}.address"]
36+
assert DEFAULT_SESSION_COOKIE_NAME in labels[f"{prefix}.authResponseHeaders"]
37+
assert (
38+
auth_middleware_name
39+
in labels["traefik.http.routers.pytest-simcore_manual.middlewares"]
40+
)

0 commit comments

Comments
 (0)