"""Common configuration shared by all tests in this directory."""


import re
from pathlib import Path
import shutil
import pytest


from probs_runner import probs_endpoint


ROOT = Path(__file__).parent.parent


@pytest.fixture(scope="class")
def tmp_path_class(request, tmp_path_factory):
    """Like build-in tmp_path fixture but scoped to class."""
    name = request.node.name
    name = re.sub(r"[\W]", "_", name)
    MAXVAL = 30
    name = name[:MAXVAL]
    return tmp_path_factory.mktemp(name, numbered=True)


@pytest.fixture(scope="class")
def rdfox(request, tmp_path_class):
    """Return a function to run a set of datasources"""
    working_dir = tmp_path_class
    data_paths = [
        ROOT / Path(p)
        for p in request.cls.endpoint_data
    ]

    print("Starting endpoint with", data_paths)
    with probs_endpoint(
            data_paths, working_dir, port=12119
    ) as rdfox:
        yield rdfox
    shutil.rmtree(working_dir)
    print("Finished endpoint with", data_paths)
