monkey/envs/monkey_zoo/blackbox/conftest.py

45 lines
1.2 KiB
Python

from typing import Collection, Dict, Mapping, Set
import pytest
from envs.monkey_zoo.blackbox.gcp_test_machine_list import GCP_SINGLE_TEST_LIST
def pytest_addoption(parser):
parser.addoption(
"--island",
action="store",
default="",
help="Specify the Monkey Island address (host+port).",
)
parser.addoption(
"--no-gcp",
action="store_true",
default=False,
help="Use for no interaction with the cloud.",
)
@pytest.fixture(scope="session")
def island(request):
return request.config.getoption("--island")
@pytest.fixture(scope="session")
def no_gcp(request):
return request.config.getoption("--no-gcp")
@pytest.fixture(scope="session")
def gcp_machines_to_start(request: pytest.FixtureRequest) -> Mapping[str, Collection[str]]:
machines_to_start: Dict[str, Set[str]] = {}
enabled_tests = (test.name for test in request.node.items)
machines_for_enabled_tests = (GCP_SINGLE_TEST_LIST[test] for test in enabled_tests)
for machine_dict in machines_for_enabled_tests:
for zone, machines in machine_dict.items():
machines_to_start.setdefault(zone, set()).update(machines)
return machines_to_start