Skip to content
Snippets Groups Projects
conftest.py 3.03 KiB
Newer Older
JORGE SASIAIN's avatar
JORGE SASIAIN committed
import contextlib
import json
import os
import socket
import tempfile

import pytest

JORGE SASIAIN's avatar
JORGE SASIAIN committed

@pytest.fixture(scope="session")
def configuration_data() -> dict:
    with contextlib.closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s:
        s.bind(("", 0))
JORGE SASIAIN's avatar
JORGE SASIAIN committed
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        yield {
            "GENERAL": {"public_hostname": "https://gap.geant.org"},
            "RESOURCE_MANAGEMENT": {"todo": "todo"},
JORGE SASIAIN's avatar
JORGE SASIAIN committed
            "IPAM": {
                "INFOBLOX": {
                    "scheme": "https",
                    "wapi_version": "v2.12",
                    "host": "10.0.0.1",
                    "username": "robot-user",
                    "password": "robot-user-password",
JORGE SASIAIN's avatar
JORGE SASIAIN committed
                },
                "LO": {
                    "V4": {"containers": [], "networks": ["10.255.255.0/26"], "mask": 32},
                    "V6": {"containers": [], "networks": ["dead:beef::/80"], "mask": 128},
                    "dns_view": "default",
JORGE SASIAIN's avatar
JORGE SASIAIN committed
                },
                "TRUNK": {
                    "V4": {"containers": ["10.255.255.0/24", "10.255.254.0/24"], "networks": [], "mask": 31},
                    "V6": {"containers": ["dead:beef::/64", "dead:beee::/64"], "networks": [], "mask": 126},
                    "dns_view": "default",
JORGE SASIAIN's avatar
JORGE SASIAIN committed
                },
                "GEANT_IP": {
                    "V4": {"containers": ["10.255.255.0/24", "10.255.254.0/24"], "networks": [], "mask": 31},
                    "V6": {"containers": ["dead:beef::/64", "dead:beee::/64"], "networks": [], "mask": 126},
                    "dns_view": "default",
                },
                "SI": {
                    "V4": {"containers": ["10.255.253.128/25"], "networks": [], "mask": 31},
                    "V6": {"containers": [], "networks": [], "mask": 126},
                    "domain_name": ".geantip",
                    "dns_view": "default",
                },
                "LT_IAS": {
                    "V4": {"containers": ["10.255.255.0/24"], "networks": [], "mask": 31},
                    "V6": {"containers": ["dead:beef:cc::/48"], "networks": [], "mask": 126},
                    "domain_name": ".geantip",
                    "dns_view": "default",
                },
JORGE SASIAIN's avatar
JORGE SASIAIN committed
            },
            "PROVISIONING_PROXY": {
                "scheme": "https",
                "api_base": "localhost:44444",
                "auth": "Bearer <token>",
                "api_version": 1123,
            },
@pytest.fixture(scope="session")
def data_config_filename(configuration_data) -> str:
    file_name = os.path.join(tempfile.gettempdir(), os.urandom(24).hex())
    open(file_name, "x").close()
    with open(file_name, "wb") as f:
        f.write(json.dumps(configuration_data).encode("utf-8"))
JORGE SASIAIN's avatar
JORGE SASIAIN committed
        f.flush()

        os.environ["OSS_PARAMS_FILENAME"] = f.name
JORGE SASIAIN's avatar
JORGE SASIAIN committed

        yield f.name