feat: enrich ticket update notifications
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user