[ADD] helpdesk_portal_ticket_priority_form: add test coverage
This commit is contained in:
4
helpdesk_portal_ticket_priority_form/tests/__init__.py
Normal file
4
helpdesk_portal_ticket_priority_form/tests/__init__.py
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# Copyright 2026 Stéphan Sainléger (Elabore)
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
from . import test_controller
|
||||||
127
helpdesk_portal_ticket_priority_form/tests/test_controller.py
Normal file
127
helpdesk_portal_ticket_priority_form/tests/test_controller.py
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
# Copyright 2026 Stéphan Sainléger (Elabore)
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
from odoo import http
|
||||||
|
from odoo.tests.common import HttpCase, TransactionCase, tagged
|
||||||
|
|
||||||
|
|
||||||
|
@tagged("post_install", "-at_install")
|
||||||
|
class TestPriorityModel(TransactionCase):
|
||||||
|
def test_ticket_creation_with_priority(self):
|
||||||
|
category = self.env["helpdesk.ticket.category"].create({"name": "Test"})
|
||||||
|
ticket = self.env["helpdesk.ticket"].create(
|
||||||
|
{
|
||||||
|
"name": "Test priority ticket",
|
||||||
|
"description": "desc",
|
||||||
|
"category_id": category.id,
|
||||||
|
"priority": "3",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
self.assertEqual(ticket.priority, "3")
|
||||||
|
|
||||||
|
def test_ticket_creation_without_priority_uses_default(self):
|
||||||
|
category = self.env["helpdesk.ticket.category"].create({"name": "Test"})
|
||||||
|
ticket = self.env["helpdesk.ticket"].create(
|
||||||
|
{
|
||||||
|
"name": "Test default priority",
|
||||||
|
"description": "desc",
|
||||||
|
"category_id": category.id,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
self.assertEqual(ticket.priority, "1")
|
||||||
|
|
||||||
|
def test_ticket_priority_selection_values(self):
|
||||||
|
selection = self.env["helpdesk.ticket"]._fields["priority"].selection
|
||||||
|
self.assertEqual(
|
||||||
|
selection,
|
||||||
|
[
|
||||||
|
("0", "Low"),
|
||||||
|
("1", "Medium"),
|
||||||
|
("2", "High"),
|
||||||
|
("3", "Very High"),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@tagged("post_install", "-at_install")
|
||||||
|
class TestSubmitTicketPriority(HttpCase):
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super().setUpClass()
|
||||||
|
cls.category = cls.env["helpdesk.ticket.category"].create({"name": "Test"})
|
||||||
|
cls.portal_user = cls.env["res.users"].create(
|
||||||
|
{
|
||||||
|
"name": "Portal Test User",
|
||||||
|
"login": "portal_test_priority",
|
||||||
|
"password": "portal_test_priority",
|
||||||
|
"groups_id": [(6, 0, [cls.env.ref("base.group_portal").id])],
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_new_ticket_form_lists_all_priorities(self):
|
||||||
|
self.authenticate("portal_test_priority", "portal_test_priority")
|
||||||
|
response = self.url_open("/new/ticket")
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
content = response.text
|
||||||
|
self.assertIn('name="priority"', content)
|
||||||
|
for value, label in [
|
||||||
|
("0", "Low"),
|
||||||
|
("1", "Medium"),
|
||||||
|
("2", "High"),
|
||||||
|
("3", "Very High"),
|
||||||
|
]:
|
||||||
|
self.assertIn('value="%s"' % value, content)
|
||||||
|
self.assertIn(label, content)
|
||||||
|
|
||||||
|
def test_submit_ticket_with_high_priority(self):
|
||||||
|
self.authenticate("portal_test_priority", "portal_test_priority")
|
||||||
|
self.url_open(
|
||||||
|
"/submitted/ticket",
|
||||||
|
data={
|
||||||
|
"category": str(self.category.id),
|
||||||
|
"subject": "High priority ticket",
|
||||||
|
"description": "Test description",
|
||||||
|
"priority": "2",
|
||||||
|
"csrf_token": http.Request.csrf_token(self),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
ticket = self.env["helpdesk.ticket"].search(
|
||||||
|
[("name", "=", "High priority ticket")]
|
||||||
|
)
|
||||||
|
self.assertTrue(ticket)
|
||||||
|
self.assertEqual(ticket.priority, "2")
|
||||||
|
|
||||||
|
def test_submit_ticket_without_priority(self):
|
||||||
|
self.authenticate("portal_test_priority", "portal_test_priority")
|
||||||
|
self.url_open(
|
||||||
|
"/submitted/ticket",
|
||||||
|
data={
|
||||||
|
"category": str(self.category.id),
|
||||||
|
"subject": "No priority ticket",
|
||||||
|
"description": "Test description",
|
||||||
|
"csrf_token": http.Request.csrf_token(self),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
ticket = self.env["helpdesk.ticket"].search(
|
||||||
|
[("name", "=", "No priority ticket")]
|
||||||
|
)
|
||||||
|
self.assertTrue(ticket)
|
||||||
|
self.assertEqual(ticket.priority, "0")
|
||||||
|
|
||||||
|
def test_submit_ticket_empty_priority_falls_back(self):
|
||||||
|
self.authenticate("portal_test_priority", "portal_test_priority")
|
||||||
|
self.url_open(
|
||||||
|
"/submitted/ticket",
|
||||||
|
data={
|
||||||
|
"category": str(self.category.id),
|
||||||
|
"subject": "Empty priority ticket",
|
||||||
|
"description": "Test description",
|
||||||
|
"priority": "",
|
||||||
|
"csrf_token": http.Request.csrf_token(self),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
ticket = self.env["helpdesk.ticket"].search(
|
||||||
|
[("name", "=", "Empty priority ticket")]
|
||||||
|
)
|
||||||
|
self.assertTrue(ticket)
|
||||||
|
self.assertEqual(ticket.priority, "0")
|
||||||
Reference in New Issue
Block a user