52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
import unittest
|
|
|
|
from ai_planner import AIPlanner
|
|
|
|
|
|
class TestAIPlannerLMStudioCompat(unittest.TestCase):
|
|
def test_build_chat_payload_has_legacy_chat_keys(self):
|
|
payload = AIPlanner._build_chat_payload("hello")
|
|
|
|
self.assertIn("messages", payload)
|
|
self.assertIn("options", payload)
|
|
self.assertEqual(payload["messages"][1]["content"], "hello")
|
|
|
|
def test_build_input_only_payload_has_minimal_keys(self):
|
|
payload = AIPlanner._build_input_only_payload("hello")
|
|
|
|
self.assertIn("input", payload)
|
|
self.assertNotIn("messages", payload)
|
|
self.assertEqual(payload["stream"], False)
|
|
self.assertIn("hello", payload["input"])
|
|
|
|
def test_payload_candidates_order(self):
|
|
payloads = AIPlanner._build_payload_candidates("hello")
|
|
self.assertEqual(len(payloads), 2)
|
|
self.assertIn("messages", payloads[0])
|
|
self.assertIn("input", payloads[1])
|
|
self.assertNotIn("messages", payloads[1])
|
|
|
|
def test_extract_response_content_supports_message_content(self):
|
|
data = {
|
|
"message": {
|
|
"content": (
|
|
'{"thinking":"t","current_goal":"g","actions":[],"after_this":"a"}'
|
|
)
|
|
}
|
|
}
|
|
content = AIPlanner._extract_response_content(data)
|
|
self.assertIn('"current_goal":"g"', content)
|
|
|
|
def test_extract_response_content_supports_output_text(self):
|
|
data = {
|
|
"output_text": (
|
|
'{"thinking":"t","current_goal":"g","actions":[],"after_this":"a"}'
|
|
)
|
|
}
|
|
content = AIPlanner._extract_response_content(data)
|
|
self.assertIn('"after_this":"a"', content)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|