fix: tests

(cherry picked from commit 019303dd12)

# Conflicts:
#	erpnext/support/doctype/issue/issue.json
This commit is contained in:
Mihir Kandoi
2025-02-18 21:24:53 +05:30
committed by Mergify
parent d41303961c
commit 46b0734d6f
4 changed files with 48 additions and 40 deletions

View File

@@ -27,7 +27,7 @@
"reset_service_level_agreement", "reset_service_level_agreement",
"cb", "cb",
"agreement_status", "agreement_status",
"resolution_by", "sla_resolution_by",
"service_level_agreement_creation", "service_level_agreement_creation",
"on_hold_since", "on_hold_since",
"total_hold_time", "total_hold_time",
@@ -41,7 +41,7 @@
"column_break1", "column_break1",
"opening_date", "opening_date",
"opening_time", "opening_time",
"resolution_date", "sla_resolution_date",
"resolution_time", "resolution_time",
"user_resolution_time", "user_resolution_time",
"additional_info", "additional_info",
@@ -176,13 +176,6 @@
"options": "fa fa-pushpin", "options": "fa fa-pushpin",
"read_only": 1 "read_only": 1
}, },
{
"depends_on": "eval: doc.status != 'Replied' && doc.service_level_agreement;",
"fieldname": "resolution_by",
"fieldtype": "Datetime",
"label": "Resolution By",
"read_only": 1
},
{ {
"collapsible": 1, "collapsible": 1,
"fieldname": "response", "fieldname": "response",
@@ -287,16 +280,6 @@
"oldfieldtype": "Time", "oldfieldtype": "Time",
"read_only": 1 "read_only": 1
}, },
{
"depends_on": "eval:!doc.__islocal",
"fieldname": "resolution_date",
"fieldtype": "Datetime",
"label": "Resolution Date",
"no_copy": 1,
"oldfieldname": "resolution_date",
"oldfieldtype": "Date",
"read_only": 1
},
{ {
"fieldname": "content_type", "fieldname": "content_type",
"fieldtype": "Data", "fieldtype": "Data",
@@ -386,12 +369,33 @@
"fieldtype": "Duration", "fieldtype": "Duration",
"label": "First Response Time", "label": "First Response Time",
"read_only": 1 "read_only": 1
},
{
"depends_on": "eval: doc.status != 'Replied' && doc.service_level_agreement;",
"fieldname": "sla_resolution_by",
"fieldtype": "Datetime",
"label": "Resolution By",
"read_only": 1
},
{
"depends_on": "eval:!doc.__islocal",
"fieldname": "sla_resolution_date",
"fieldtype": "Datetime",
"label": "Resolution Date",
"no_copy": 1,
"oldfieldname": "resolution_date",
"oldfieldtype": "Date",
"read_only": 1
} }
], ],
"icon": "fa fa-ticket", "icon": "fa fa-ticket",
"idx": 7, "idx": 7,
"links": [], "links": [],
<<<<<<< HEAD
"modified": "2021-11-24 13:13:10.276630", "modified": "2021-11-24 13:13:10.276630",
=======
"modified": "2025-02-18 21:18:52.797745",
>>>>>>> 019303dd12 (fix: tests)
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Support", "module": "Support",
"name": "Issue", "name": "Issue",

View File

@@ -48,13 +48,13 @@ class Issue(Document):
priority: DF.Link | None priority: DF.Link | None
project: DF.Link | None project: DF.Link | None
raised_by: DF.Data | None raised_by: DF.Data | None
resolution_by: DF.Datetime | None
resolution_date: DF.Datetime | None
resolution_details: DF.TextEditor | None resolution_details: DF.TextEditor | None
resolution_time: DF.Duration | None resolution_time: DF.Duration | None
response_by: DF.Datetime | None response_by: DF.Datetime | None
service_level_agreement: DF.Link | None service_level_agreement: DF.Link | None
service_level_agreement_creation: DF.Datetime | None service_level_agreement_creation: DF.Datetime | None
sla_resolution_by: DF.Datetime | None
sla_resolution_date: DF.Datetime | None
status: DF.Literal["Open", "Replied", "On Hold", "Resolved", "Closed"] status: DF.Literal["Open", "Replied", "On Hold", "Resolved", "Closed"]
subject: DF.Data subject: DF.Data
total_hold_time: DF.Duration | None total_hold_time: DF.Duration | None

View File

@@ -33,48 +33,48 @@ class TestIssue(TestSetUp):
issue = make_issue(creation, "_Test Customer", 1) issue = make_issue(creation, "_Test Customer", 1)
self.assertEqual(issue.response_by, get_datetime("2019-03-04 14:00")) self.assertEqual(issue.response_by, get_datetime("2019-03-04 14:00"))
self.assertEqual(issue.resolution_by, get_datetime("2019-03-04 15:00")) self.assertEqual(issue.sla_resolution_by, get_datetime("2019-03-04 15:00"))
# make issue with customer_group specific SLA # make issue with customer_group specific SLA
create_customer("__Test Customer", "_Test SLA Customer Group", "__Test SLA Territory") create_customer("__Test Customer", "_Test SLA Customer Group", "__Test SLA Territory")
issue = make_issue(creation, "__Test Customer", 2) issue = make_issue(creation, "__Test Customer", 2)
self.assertEqual(issue.response_by, get_datetime("2019-03-04 14:00")) self.assertEqual(issue.response_by, get_datetime("2019-03-04 14:00"))
self.assertEqual(issue.resolution_by, get_datetime("2019-03-04 15:00")) self.assertEqual(issue.sla_resolution_by, get_datetime("2019-03-04 15:00"))
# make issue with territory specific SLA # make issue with territory specific SLA
create_customer("___Test Customer", "__Test SLA Customer Group", "_Test SLA Territory") create_customer("___Test Customer", "__Test SLA Customer Group", "_Test SLA Territory")
issue = make_issue(creation, "___Test Customer", 3) issue = make_issue(creation, "___Test Customer", 3)
self.assertEqual(issue.response_by, get_datetime("2019-03-04 14:00")) self.assertEqual(issue.response_by, get_datetime("2019-03-04 14:00"))
self.assertEqual(issue.resolution_by, get_datetime("2019-03-04 15:00")) self.assertEqual(issue.sla_resolution_by, get_datetime("2019-03-04 15:00"))
# make issue with default SLA # make issue with default SLA
issue = make_issue(creation=creation, index=4) issue = make_issue(creation=creation, index=4)
self.assertEqual(issue.response_by, get_datetime("2019-03-04 16:00")) self.assertEqual(issue.response_by, get_datetime("2019-03-04 16:00"))
self.assertEqual(issue.resolution_by, get_datetime("2019-03-04 18:00")) self.assertEqual(issue.sla_resolution_by, get_datetime("2019-03-04 18:00"))
# make issue with default SLA before working hours # make issue with default SLA before working hours
creation = get_datetime("2019-03-04 7:00") creation = get_datetime("2019-03-04 7:00")
issue = make_issue(creation=creation, index=5) issue = make_issue(creation=creation, index=5)
self.assertEqual(issue.response_by, get_datetime("2019-03-04 14:00")) self.assertEqual(issue.response_by, get_datetime("2019-03-04 14:00"))
self.assertEqual(issue.resolution_by, get_datetime("2019-03-04 16:00")) self.assertEqual(issue.sla_resolution_by, get_datetime("2019-03-04 16:00"))
# make issue with default SLA after working hours # make issue with default SLA after working hours
creation = get_datetime("2019-03-04 20:00") creation = get_datetime("2019-03-04 20:00")
issue = make_issue(creation, index=6) issue = make_issue(creation, index=6)
self.assertEqual(issue.response_by, get_datetime("2019-03-06 14:00")) self.assertEqual(issue.response_by, get_datetime("2019-03-06 14:00"))
self.assertEqual(issue.resolution_by, get_datetime("2019-03-06 16:00")) self.assertEqual(issue.sla_resolution_by, get_datetime("2019-03-06 16:00"))
# make issue with default SLA next day # make issue with default SLA next day
creation = get_datetime("2019-03-04 14:00") creation = get_datetime("2019-03-04 14:00")
issue = make_issue(creation=creation, index=7) issue = make_issue(creation=creation, index=7)
self.assertEqual(issue.response_by, get_datetime("2019-03-04 18:00")) self.assertEqual(issue.response_by, get_datetime("2019-03-04 18:00"))
self.assertEqual(issue.resolution_by, get_datetime("2019-03-06 12:00")) self.assertEqual(issue.sla_resolution_by, get_datetime("2019-03-06 12:00"))
frappe.flags.current_time = get_datetime("2019-03-04 15:00") frappe.flags.current_time = get_datetime("2019-03-04 15:00")
issue.reload() issue.reload()
@@ -98,7 +98,7 @@ class TestIssue(TestSetUp):
issue.save() issue.save()
self.assertEqual(issue.on_hold_since, frappe.flags.current_time) self.assertEqual(issue.on_hold_since, frappe.flags.current_time)
self.assertFalse(issue.resolution_by) self.assertFalse(issue.sla_resolution_by)
creation = get_datetime("2020-03-04 5:00") creation = get_datetime("2020-03-04 5:00")
frappe.flags.current_time = get_datetime("2020-03-04 5:00") frappe.flags.current_time = get_datetime("2020-03-04 5:00")
@@ -106,7 +106,7 @@ class TestIssue(TestSetUp):
issue.reload() issue.reload()
self.assertEqual(flt(issue.total_hold_time, 2), 2700) self.assertEqual(flt(issue.total_hold_time, 2), 2700)
self.assertEqual(issue.resolution_by, get_datetime("2020-03-04 16:45")) self.assertEqual(issue.sla_resolution_by, get_datetime("2020-03-04 16:45"))
creation = get_datetime("2020-03-04 5:05") creation = get_datetime("2020-03-04 5:05")
create_communication(issue.name, "test@admin.com", "Sent", creation) create_communication(issue.name, "test@admin.com", "Sent", creation)
@@ -140,8 +140,8 @@ class TestIssue(TestSetUp):
issue.status = "Closed" issue.status = "Closed"
issue.save() issue.save()
self.assertEqual(issue.resolution_by, get_datetime("2021-11-22 06:00:00")) self.assertEqual(issue.sla_resolution_by, get_datetime("2021-11-22 06:00:00"))
self.assertEqual(issue.resolution_date, get_datetime("2021-11-22 01:00:00")) self.assertEqual(issue.sla_resolution_date, get_datetime("2021-11-22 01:00:00"))
self.assertEqual(issue.agreement_status, "Fulfilled") self.assertEqual(issue.agreement_status, "Fulfilled")
def test_issue_open_after_closed(self): def test_issue_open_after_closed(self):
@@ -153,7 +153,7 @@ class TestIssue(TestSetUp):
create_communication(issue.name, "test@example.com", "Received", frappe.flags.current_time) create_communication(issue.name, "test@example.com", "Received", frappe.flags.current_time)
self.assertEqual(issue.agreement_status, "First Response Due") self.assertEqual(issue.agreement_status, "First Response Due")
self.assertEqual(issue.response_by, get_datetime("2021-11-01 17:00")) self.assertEqual(issue.response_by, get_datetime("2021-11-01 17:00"))
self.assertEqual(issue.resolution_by, get_datetime("2021-11-01 19:00")) self.assertEqual(issue.sla_resolution_by, get_datetime("2021-11-01 19:00"))
# Replied on → 2 pm # Replied on → 2 pm
frappe.flags.current_time = get_datetime("2021-11-01 14:00") frappe.flags.current_time = get_datetime("2021-11-01 14:00")
@@ -173,7 +173,7 @@ class TestIssue(TestSetUp):
# Hold Time + 1 Hrs # Hold Time + 1 Hrs
self.assertEqual(issue.total_hold_time, 3600) self.assertEqual(issue.total_hold_time, 3600)
# Resolution By should increase by one hrs # Resolution By should increase by one hrs
self.assertEqual(issue.resolution_by, get_datetime("2021-11-01 20:00")) self.assertEqual(issue.sla_resolution_by, get_datetime("2021-11-01 20:00"))
# Replied on → 4 pm, Open → 1 hr, Resolution Due → 8 pm # Replied on → 4 pm, Open → 1 hr, Resolution Due → 8 pm
frappe.flags.current_time = get_datetime("2021-11-01 16:00") frappe.flags.current_time = get_datetime("2021-11-01 16:00")
@@ -190,9 +190,9 @@ class TestIssue(TestSetUp):
# Hold Time + 6 Hrs # Hold Time + 6 Hrs
self.assertEqual(issue.total_hold_time, 3600 + 21600) self.assertEqual(issue.total_hold_time, 3600 + 21600)
# Resolution By should increase by 6 hrs # Resolution By should increase by 6 hrs
self.assertEqual(issue.resolution_by, get_datetime("2021-11-02 02:00")) self.assertEqual(issue.sla_resolution_by, get_datetime("2021-11-02 02:00"))
self.assertEqual(issue.agreement_status, "Fulfilled") self.assertEqual(issue.agreement_status, "Fulfilled")
self.assertEqual(issue.resolution_date, frappe.flags.current_time) self.assertEqual(issue.sla_resolution_date, frappe.flags.current_time)
# Customer Open → 3 am i.e after resolution by is crossed # Customer Open → 3 am i.e after resolution by is crossed
frappe.flags.current_time = get_datetime("2021-11-02 03:00") frappe.flags.current_time = get_datetime("2021-11-02 03:00")
@@ -201,17 +201,17 @@ class TestIssue(TestSetUp):
# Since issue was Resolved, Resolution By should be increased by 5 hrs (3am - 10pm) # Since issue was Resolved, Resolution By should be increased by 5 hrs (3am - 10pm)
self.assertEqual(issue.total_hold_time, 3600 + 21600 + 18000) self.assertEqual(issue.total_hold_time, 3600 + 21600 + 18000)
# Resolution By should increase by 5 hrs # Resolution By should increase by 5 hrs
self.assertEqual(issue.resolution_by, get_datetime("2021-11-02 07:00")) self.assertEqual(issue.sla_resolution_by, get_datetime("2021-11-02 07:00"))
self.assertEqual(issue.agreement_status, "Resolution Due") self.assertEqual(issue.agreement_status, "Resolution Due")
self.assertFalse(issue.resolution_date) self.assertFalse(issue.sla_resolution_date)
# We Closed → 4 am, SLA should be Fulfilled # We Closed → 4 am, SLA should be Fulfilled
frappe.flags.current_time = get_datetime("2021-11-02 04:00") frappe.flags.current_time = get_datetime("2021-11-02 04:00")
issue.status = "Closed" issue.status = "Closed"
issue.save() issue.save()
self.assertEqual(issue.resolution_by, get_datetime("2021-11-02 07:00")) self.assertEqual(issue.sla_resolution_by, get_datetime("2021-11-02 07:00"))
self.assertEqual(issue.agreement_status, "Fulfilled") self.assertEqual(issue.agreement_status, "Fulfilled")
self.assertEqual(issue.resolution_date, frappe.flags.current_time) self.assertEqual(issue.sla_resolution_date, frappe.flags.current_time)
def test_recording_of_assignment_on_first_reponse_failure(self): def test_recording_of_assignment_on_first_reponse_failure(self):
from frappe.desk.form.assign_to import add as add_assignment from frappe.desk.form.assign_to import add as add_assignment

View File

@@ -1,5 +1,6 @@
import frappe import frappe
from frappe.custom.doctype.custom_field.custom_field import rename_fieldname from frappe.custom.doctype.custom_field.custom_field import rename_fieldname
from frappe.model.utils.rename_field import rename_field
def execute(): def execute():
@@ -7,3 +8,6 @@ def execute():
for doctype in doctypes: for doctype in doctypes:
rename_fieldname(doctype + "-resolution_by", "sla_resolution_by") rename_fieldname(doctype + "-resolution_by", "sla_resolution_by")
rename_fieldname(doctype + "-resolution_date", "sla_resolution_date") rename_fieldname(doctype + "-resolution_date", "sla_resolution_date")
rename_field("Issue", "resolution_by", "sla_resolution_by")
rename_field("Issue", "resolution_date", "sla_resolution_date")