1
0
Fork 0
shadow/tests/system/framework/fixtures.py
Daniel Baumann 09a180ea01
Adding upstream version 1:4.17.4.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 05:06:56 +02:00

45 lines
1.2 KiB
Python

"""Pytest fixtures."""
from __future__ import annotations
import os
import pytest
@pytest.fixture(scope="session")
def datadir(request: pytest.FixtureRequest) -> str:
"""
Data directory shared for all tests.
:return: Path to the data directory ``(root-pytest-dir)/data``.
:rtype: str
"""
return os.path.join(request.node.path, "data")
@pytest.fixture(scope="module")
def moduledatadir(datadir: str, request: pytest.FixtureRequest) -> str:
"""
Data directory shared for all tests within a single module.
:return: Path to the data directory ``(root-pytest-dir)/data/$module_name``.
:rtype: str
"""
name = request.module.__name__
return os.path.join(datadir, name)
@pytest.fixture(scope="function")
def testdatadir(moduledatadir: str, request: pytest.FixtureRequest) -> str:
"""
Data directory for current test.
:return: Path to the data directory ``(root-pytest-dir)/data/$module_name/$test_name``.
:rtype: str
"""
if not isinstance(request.node, pytest.Function):
raise TypeError(f"Excepted pytest.Function, got {type(request.node)}")
name = request.node.originalname
return os.path.join(moduledatadir, name)