Files
hkuds--vimax/tests/test_generator_protocol.py
2026-07-13 12:23:54 +08:00

38 lines
1.5 KiB
Python

"""Every video generator must satisfy the VideoGenerator protocol, which
declares **kwargs: pipelines pass progress= callbacks, and generators that
reject unknown kwargs crash mid-render (TypeError) on the transition path."""
import inspect
import unittest
from tools.video_generator_doubao_seedance_yunwu_api import VideoGeneratorDoubaoSeedanceYunwuAPI
from tools.video_generator_omni_yunwu_api import VideoGeneratorOmniYunwuAPI
from tools.video_generator_openrouter_api import VideoGeneratorOpenRouterAPI
from tools.video_generator_veo_google_api import VideoGeneratorVeoGoogleAPI
from tools.video_generator_veo_yunwu_api import VideoGeneratorVeoYunwuAPI
class TestVideoGeneratorProtocol(unittest.TestCase):
GENERATORS = [
VideoGeneratorDoubaoSeedanceYunwuAPI,
VideoGeneratorOmniYunwuAPI,
VideoGeneratorOpenRouterAPI,
VideoGeneratorVeoGoogleAPI,
VideoGeneratorVeoYunwuAPI,
]
def test_generate_single_video_accepts_arbitrary_kwargs(self):
for cls in self.GENERATORS:
with self.subTest(cls=cls.__name__):
params = inspect.signature(cls.generate_single_video).parameters
accepts_var_kwargs = any(p.kind is inspect.Parameter.VAR_KEYWORD for p in params.values())
self.assertTrue(
accepts_var_kwargs,
f"{cls.__name__}.generate_single_video must accept **kwargs per tools.protocols.VideoGenerator "
"(pipelines pass progress=...)",
)
if __name__ == "__main__":
unittest.main()