Spaces:
Running
Running
| 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() | |