From d7e30321ae6ae4c82a8ab7455f6ce33afd719c67 Mon Sep 17 00:00:00 2001 From: Tom van der Lee Date: Sun, 19 Nov 2023 16:55:03 +0100 Subject: Initial commit --- conftest.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 conftest.py (limited to 'conftest.py') diff --git a/conftest.py b/conftest.py new file mode 100644 index 0000000..1c0a8e4 --- /dev/null +++ b/conftest.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +import importlib +import os +from pkgutil import walk_packages + +from _pytest.python import Metafunc + +from aoc.__main__ import day + +dir_path = os.path.dirname(os.path.realpath(__file__)) + + +def pytest_generate_tests(metafunc: Metafunc): + if "assignment" in metafunc.fixturenames: + packages = [ + importlib.import_module(package.name) + for package in walk_packages([dir_path]) + ] + + assignments = [ + (getattr(package, f"Assignment{day(part)}", None), package) + for package in packages + for part in ["1", "2"] + ] + + metafunc.parametrize( + argnames=f"assignment", + argvalues=[ + Assignment(path=package.__path__[0]) + for (Assignment, package) in assignments + if Assignment is not None + and hasattr(package, "__path__") + and Assignment.example_result != NotImplemented + ], + ids=lambda assignment: str(assignment), + ) -- cgit v1.2.3