<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
from pathlib import Path

import pytest

from pyfakefs.fake_filesystem import FakeFilesystem


def pytest_generate_tests(metafunc):
    handlers = [a, b, c]
    if "handler_class" in metafunc.fixturenames:
        metafunc.parametrize("handler_class", handlers)


def a():
    pass


def b():
    pass


def c():
    pass


@pytest.fixture
def class_a():
    pass


@pytest.fixture
def class_b():
    pass


@pytest.fixture
def class_c():
    pass


@pytest.fixture
def make_handler(request):
    def _make_handler(cls):
        return request.getfixturevalue(f"class_{cls.__name__}")

    yield _make_handler


@pytest.fixture
def handler_and_check(handler_class, make_handler):
    assert Path("/foo/bar").exists()
    yield


def test_handler_and_check_in_fixture(handler_and_check):
    assert Path("/foo/bar").exists()


@pytest.fixture(scope="module", autouse=True)
def config(fs_module: FakeFilesystem):
    fs_module.create_file("/foo/bar")
