Files
Video-Tree-TRM5/tests/unit/test_question_gen_api.py
T

48 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""app/ports.py QuestionGenerator Protocol 与 app/question_gen 公开 API 测试。"""
from __future__ import annotations
import importlib
from app.ports import QuestionGenerator
class TestQuestionGeneratorProtocol:
def test_importable(self) -> None:
"""QuestionGenerator 可从 app.ports 导入。"""
assert QuestionGenerator is not None
def test_is_runtime_checkable(self) -> None:
"""QuestionGenerator 是 runtime_checkable Protocol。"""
assert hasattr(QuestionGenerator, "__protocol_attrs__") or hasattr(
QuestionGenerator, "__abstractmethods__"
)
def test_generate_method_exists(self) -> None:
"""Protocol 定义了 generate 方法。"""
assert hasattr(QuestionGenerator, "generate")
class TestQuestionGenPublicAPI:
def test_load_benchmark_importable_from_package(self) -> None:
"""load_benchmark 可从 app.question_gen 直接导入。"""
mod = importlib.import_module("app.question_gen")
assert hasattr(mod, "load_benchmark")
def test_stratified_sample_importable_from_package(self) -> None:
"""stratified_sample 可从 app.question_gen 直接导入。"""
mod = importlib.import_module("app.question_gen")
assert hasattr(mod, "stratified_sample")
def test_all_exports(self) -> None:
"""__all__ 包含预期的公开 APIloader + synthesizer)。"""
mod = importlib.import_module("app.question_gen")
assert set(mod.__all__) == {
"load_benchmark",
"stratified_sample",
"TASK_TYPE_LEVEL_MAP",
"AnchorContext",
"generate_one",
"sample_anchor",
}