blob: c846afac71ff92e91003985c30b170836f074b3b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
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']
]
print(assignments)
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__')
],
ids=lambda assignment: str(assignment)
)
|