44from autograder .models .abstract .test_function import TestFunction
55from autograder .models .dataclass .submission import SubmissionFile
66from autograder .models .dataclass .test_result import TestResult
7+ from autograder .utils .executors .ai_executor import AiExecutor , TestInput
78from sandbox_manager .sandbox_container import SandboxContainer
89
910
@@ -35,6 +36,7 @@ def execute(
3536 self ,
3637 files : Optional [List [SubmissionFile ]],
3738 sandbox : Optional [SandboxContainer ],
39+ * args ,
3840 ** kwargs ,
3941 ) -> TestResult :
4042 """
@@ -45,15 +47,18 @@ def execute(
4547 test name in that dict and returns the result directly. If the dict is
4648 absent (standalone usage), it falls back to ``_run_single()``.
4749 """
50+ # args is not used in AI tests as parameters are in kwargs
51+ _ = args
4852 pre_computed : Optional [Dict [str , TestResult ]] = kwargs .get ("pre_computed_results" )
4953 if pre_computed is not None and self .name in pre_computed :
5054 return pre_computed [self .name ]
5155
52- return self ._run_single (files , ** kwargs )
56+ return self ._run_single (files , * args , * *kwargs )
5357
5458 def _run_single (
5559 self ,
5660 files : Optional [List [SubmissionFile ]],
61+ * args ,
5762 ** kwargs ,
5863 ) -> TestResult :
5964 """
@@ -62,9 +67,7 @@ def _run_single(
6267 Used when ``pre_computed_results`` is not available (e.g. unit tests,
6368 standalone runners, or pipelines that do not include ``AiBatchStep``).
6469 """
65- # Local import to avoid circular dependencies.
66- from autograder .utils .executors .ai_executor import AiExecutor , TestInput
67-
70+ _ = args
6871 locale : str = kwargs .get ("locale" , "en" )
6972 prompt = self .build_prompt (files , ** kwargs )
7073 submission_files = {f .filename : f .content for f in files } if files else {}
0 commit comments