Files
IAMCCS-IAMCCS-nodes/tests/test_prompter_request.py
T

53 lines
2.6 KiB
Python

import json
from pathlib import Path
import sys
import unittest
from unittest.mock import patch
sys.path.insert(0, str(Path(__file__).resolve().parent))
from test_prompter_native_qwen import prompter
class RequestCompilationTests(unittest.TestCase):
def test_request_is_authority_and_selected_drafts_are_not_context(self):
sections = {"scene": "Previous railway scene", "camera": "Old camera", "acting": "Keep her tired performance"}
system, user = prompter._assistant_instruction(
"t2va", sections, "Develop the requested shot", ["scene", "camera"],
request_text="Una donna posa una tazza sul tavolo.",
)
message = json.loads(user)
self.assertEqual(message["request"], "Una donna posa una tazza sul tavolo.")
self.assertEqual(message["existing_context"], {"acting": "Keep her tired performance"})
self.assertNotIn("Previous railway scene", user)
self.assertIn("in English", system)
self.assertIn("Never emit timing placeholders", system)
self.assertEqual(sections["scene"], "Previous railway scene")
def test_request_returns_generated_fields(self):
generated = {"scene": "A woman approaches a table holding a cup.", "camera": "A fixed eye-level composition holds the table in view."}
with patch.object(prompter, "native_json_chat", return_value=generated) as writer:
fields, report = prompter.rewrite_sections_with_ai(
"qwen_native", "", "__workflow__", "", "t2va", {"scene": "", "camera": ""},
target_keys=["scene", "camera"], request_text="Una donna posa una tazza sul tavolo.",
)
self.assertEqual(fields, generated)
self.assertEqual(report["rewritten_sections"], ["camera", "scene"])
self.assertIn('"request":', writer.call_args.args[2])
def test_request_echo_is_not_reported_as_success(self):
brief = "Una donna posa una tazza sul tavolo."
with patch.object(prompter, "native_json_chat", return_value={"scene": brief, "camera": brief}):
with self.assertRaisesRegex(RuntimeError, "echoed REQUEST"):
prompter.rewrite_sections_with_ai(
"qwen_native", "", "__workflow__", "", "t2va", {"scene": "", "camera": ""},
target_keys=["scene", "camera"], request_text=brief,
)
def test_single_field_rewrite_keeps_its_original_contract(self):
_, user = prompter._assistant_instruction("t2va", {"scene": "A quiet room"}, target_keys=["scene"])
self.assertEqual(json.loads(user)["rough_sections"], {"scene": "A quiet room"})
if __name__ == "__main__":
unittest.main()