27 lines
924 B
Python
27 lines
924 B
Python
"""
|
|
AGBenchmark's test discovery endpoint for Pytest.
|
|
|
|
This module is picked up by Pytest's *_test.py file matching pattern, and all challenge
|
|
classes in the module that conform to the `Test*` pattern are collected.
|
|
"""
|
|
|
|
import importlib
|
|
import logging
|
|
from itertools import chain
|
|
|
|
from agbenchmark.challenges.builtin import load_builtin_challenges
|
|
from agbenchmark.challenges.webarena import load_webarena_challenges
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
DATA_CATEGORY = {}
|
|
|
|
# Load challenges and attach them to this module
|
|
for challenge in chain(load_builtin_challenges(), load_webarena_challenges()):
|
|
# Attach the Challenge class to this module so it can be discovered by pytest
|
|
module = importlib.import_module(__name__)
|
|
setattr(module, challenge.__name__, challenge)
|
|
|
|
# Build a map of challenge names and their primary category
|
|
DATA_CATEGORY[challenge.info.name] = challenge.info.category[0].value
|