feat: enrich ticket update notifications

This commit is contained in:
2026-07-24 10:06:18 +02:00
parent 39908314d9
commit 93b6947feb
7 changed files with 166 additions and 13 deletions
+36
View File
@@ -69,6 +69,38 @@ class TicketingStateTest(unittest.TestCase):
self.assertEqual(ticketing.get_updated_ticket_ids(tickets, previous_state), [2, 3])
def test_build_notification_message_is_verbose_and_limited(self):
previous_state = {
"1": "2026-07-24 09:00:00",
}
tickets = [
{
"id": 1,
"name": "Probleme imprimante",
"stage_id": [4, "En cours"],
"partner_id": [8, "Comitari"],
"user_id": [9, "Support"],
"write_date": "2026-07-24 10:00:00",
},
{
"id": 2,
"name": "Nouveau ticket",
"stage_id": False,
"partner_id": False,
"user_id": False,
"write_date": "2026-07-24 11:00:00",
},
]
message = ticketing.build_notification_message(tickets, previous_state, 1)
self.assertIn("Tickets Odoo mis a jour depuis la derniere verification : 2", message)
self.assertIn("#1 | Probleme imprimante | type: modifie", message)
self.assertIn("statut: En cours", message)
self.assertIn("ancienne date: 2026-07-24 09:00:00", message)
self.assertIn("1 ticket(s) supplementaire(s) non affiche(s)", message)
self.assertNotIn("Nouveau ticket", message)
def test_load_tickets_state_returns_empty_dict_when_file_is_missing(self):
missing_path = os.path.join(tempfile.gettempdir(), "missing-ticket-state.json")
@@ -102,6 +134,10 @@ class TicketingStateTest(unittest.TestCase):
self.assertEqual(post.call_args.kwargs["timeout"], 5)
self.assertEqual(post.call_args.kwargs["json"]["params"]["service"], "object")
self.assertEqual(post.call_args.kwargs["json"]["params"]["method"], "execute_kw")
self.assertEqual(
post.call_args.kwargs["json"]["params"]["args"][6]["fields"],
["id", "name", "stage_id", "partner_id", "user_id", "write_date"],
)
@patch("ticketing_setup.requests.post")
def test_fetch_odoo_tickets_rejects_jsonrpc_error(self, post):