summaryrefslogtreecommitdiffstats
path: root/conftest.py
diff options
context:
space:
mode:
Diffstat (limited to 'conftest.py')
-rw-r--r--conftest.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/conftest.py b/conftest.py
index 24884e2..1c0a8e4 100644
--- a/conftest.py
+++ b/conftest.py
@@ -1,3 +1,4 @@
1# -*- coding: utf-8 -*-
1import importlib 2import importlib
2import os 3import os
3from pkgutil import walk_packages 4from pkgutil import walk_packages
@@ -8,25 +9,28 @@ from aoc.__main__ import day
8 9
9dir_path = os.path.dirname(os.path.realpath(__file__)) 10dir_path = os.path.dirname(os.path.realpath(__file__))
10 11
12
11def pytest_generate_tests(metafunc: Metafunc): 13def pytest_generate_tests(metafunc: Metafunc):
12 if 'assignment' in metafunc.fixturenames: 14 if "assignment" in metafunc.fixturenames:
13 packages = [ 15 packages = [
14 importlib.import_module(package.name) 16 importlib.import_module(package.name)
15 for package in walk_packages([dir_path]) 17 for package in walk_packages([dir_path])
16 ] 18 ]
17 19
18 assignments = [ 20 assignments = [
19 (getattr(package, f'Assignment{day(part)}', None), package) 21 (getattr(package, f"Assignment{day(part)}", None), package)
20 for package in packages 22 for package in packages
21 for part in ['1', '2'] 23 for part in ["1", "2"]
22 ] 24 ]
23 25
24 metafunc.parametrize( 26 metafunc.parametrize(
25 argnames=f'assignment', 27 argnames=f"assignment",
26 argvalues=[ 28 argvalues=[
27 Assignment(path=package.__path__[0]) 29 Assignment(path=package.__path__[0])
28 for (Assignment, package) in assignments 30 for (Assignment, package) in assignments
29 if Assignment is not None and hasattr(package, '__path__') and Assignment.example_result != NotImplemented 31 if Assignment is not None
32 and hasattr(package, "__path__")
33 and Assignment.example_result != NotImplemented
30 ], 34 ],
31 ids=lambda assignment: str(assignment) 35 ids=lambda assignment: str(assignment),
32 ) 36 )