Skip to content
Snippets Groups Projects
conftest.py 1.25 KiB
import json
import pathlib
from brian_polling_manager.interface_stats.cli import set_app_params
import pytest


DATA_DIR = pathlib.Path(__file__).parent / "data"
DATA_FILENAME_EXTENSION = "-interface-info.xml"

JUNIPER_ROUTERS = [
    path.name[: -len(DATA_FILENAME_EXTENSION)]
    for path in DATA_DIR.iterdir()
    if path.name.endswith(DATA_FILENAME_EXTENSION)
]


@pytest.fixture
def data_dir():
    return DATA_DIR


@pytest.fixture(autouse=True)
def app_params():
    params = {
        "testing": {
            "dry_run": True,
            "no-out": False,
            "netconf-source-dir": DATA_DIR,
        }
    }
    set_app_params(params)
    yield params
    set_app_params({})


def poller_interfaces():
    file = DATA_DIR / "poller-interfaces.json"
    return json.loads(file.read_text())


@pytest.fixture(scope="session")
def polled_interfaces():
    polled = {}
    for ifc in poller_interfaces():
        if ifc["dashboards"]:
            polled.setdefault(ifc["router"], set()).add(ifc["name"])
    return polled


@pytest.fixture
def all_juniper_routers():
    return JUNIPER_ROUTERS


@pytest.fixture(params=JUNIPER_ROUTERS)
def router_fqdn(request):
    return request.param


@pytest.fixture()
def single_router_fqdn():
    return JUNIPER_ROUTERS[0]