From a3de698aa6b7e15e9d0974d32dc566676383bd28 Mon Sep 17 00:00:00 2001 From: Tom van der Lee Date: Mon, 28 Nov 2022 13:52:27 +0100 Subject: Initial code --- conftest.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 conftest.py (limited to 'conftest.py') diff --git a/conftest.py b/conftest.py new file mode 100644 index 0000000..24884e2 --- /dev/null +++ b/conftest.py @@ -0,0 +1,32 @@ +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