Terminal / tests /test_task_tool_policy.py
Baida07's picture
sync: 185 file da Baida98/AI@ce1132ab (2026-08-25 18:35 UTC) [deploy-all]
630390a verified
Raw
History Blame
1.41 kB
from __future__ import annotations
import unittest
from api.task_tool_policy import build_task_tool_policy
class TaskToolPolicyTests(unittest.TestCase):
def test_e2e_literal_contract_forbids_tools_and_returns_exact_token(self) -> None:
policy = build_task_tool_policy(
"Rispondi ESCLUSIVAMENTE con TEST_E2E_OK. Non usare strumenti, tool, "
"comandi shell, file, rete, servizi esterni, azioni o card."
)
self.assertTrue(policy.forbid_tools)
self.assertEqual(policy.literal_response, "TEST_E2E_OK")
def test_explicit_tool_denial_without_literal_contract_stays_tool_free(self) -> None:
policy = build_task_tool_policy("Spiega il concetto senza usare strumenti o rete.")
self.assertTrue(policy.forbid_tools)
self.assertIsNone(policy.literal_response)
def test_normal_task_remains_unrestricted(self) -> None:
policy = build_task_tool_policy("Cerca le notizie di oggi e sintetizzale.")
self.assertFalse(policy.forbid_tools)
self.assertIsNone(policy.literal_response)
def test_partial_wording_does_not_create_a_literal_contract(self) -> None:
policy = build_task_tool_policy("Rispondi esclusivamente con una spiegazione, senza strumenti.")
self.assertTrue(policy.forbid_tools)
self.assertIsNone(policy.literal_response)
if __name__ == "__main__":
unittest.main()