From c5ee94b461f5835406c5054f18206660dab5edc9 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 13:20:59 +0530 Subject: [PATCH] fix: interview reminder settings not respected (#1175) (#1177) * fix: interview reminder settings not respected * test: interview reminder settings (cherry picked from commit af8fbf407a81800e32c0baf5b042cf676bf66100) Co-authored-by: Rucha Mahabal --- hrms/hr/doctype/interview/interview.py | 6 ++--- hrms/hr/doctype/interview/test_interview.py | 26 ++++++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/hrms/hr/doctype/interview/interview.py b/hrms/hr/doctype/interview/interview.py index 8057051cef..cfc1ec1179 100644 --- a/hrms/hr/doctype/interview/interview.py +++ b/hrms/hr/doctype/interview/interview.py @@ -7,7 +7,7 @@ import frappe from frappe import _ from frappe.model.document import Document -from frappe.utils import cstr, flt, get_datetime, get_link_to_form, getdate, nowtime +from frappe.utils import cint, cstr, flt, get_datetime, get_link_to_form, getdate, nowtime class DuplicateInterviewRoundError(frappe.ValidationError): @@ -163,7 +163,7 @@ def send_interview_reminder(): as_dict=True, ) - if not reminder_settings.send_interview_reminder: + if not cint(reminder_settings.send_interview_reminder): return remind_before = cstr(frappe.db.get_single_value("HR Settings", "remind_before")) or "01:00:00" @@ -211,7 +211,7 @@ def send_daily_feedback_reminder(): as_dict=True, ) - if not reminder_settings.send_interview_feedback_reminder: + if not cint(reminder_settings.send_interview_feedback_reminder): return interview_feedback_template = frappe.get_doc( diff --git a/hrms/hr/doctype/interview/test_interview.py b/hrms/hr/doctype/interview/test_interview.py index ca7c298044..e8184c2f38 100644 --- a/hrms/hr/doctype/interview/test_interview.py +++ b/hrms/hr/doctype/interview/test_interview.py @@ -61,13 +61,15 @@ def test_notification_for_scheduling(self): interview = create_interview_and_dependencies(job_applicant.name, scheduled_on=scheduled_on) - frappe.db.sql("DELETE FROM `tabEmail Queue`") - send_interview_reminder() + frappe.db.delete("Email Queue") - interview.reload() + frappe.db.set_single_value("HR Settings", "send_interview_reminder", 0) + send_interview_reminder() + self.assertFalse(get_email_by_subject("Subject: Interview Reminder")) - email_queue = frappe.db.sql("""select * from `tabEmail Queue`""", as_dict=True) - self.assertTrue("Subject: Interview Reminder" in email_queue[0].message) + frappe.db.set_single_value("HR Settings", "send_interview_reminder", 1) + send_interview_reminder() + self.assertTrue(get_email_by_subject("Subject: Interview Reminder")) def test_notification_for_feedback_submission(self): from hrms.hr.doctype.interview.interview import send_daily_feedback_reminder @@ -80,11 +82,15 @@ def test_notification_for_feedback_submission(self): job_applicant.name, scheduled_on=scheduled_on, status="Under Review" ) - frappe.db.sql("DELETE FROM `tabEmail Queue`") + frappe.db.delete("Email Queue") + + frappe.db.set_single_value("HR Settings", "send_interview_feedback_reminder", 0) send_daily_feedback_reminder() + self.assertFalse(get_email_by_subject("Subject: Interview Feedback Reminder")) - email_queue = frappe.db.sql("""select * from `tabEmail Queue`""", as_dict=True) - self.assertTrue("Subject: Interview Feedback Reminder" in email_queue[0].message) + frappe.db.set_single_value("HR Settings", "send_interview_feedback_reminder", 1) + send_daily_feedback_reminder() + self.assertTrue(get_email_by_subject("Subject: Interview Feedback Reminder")) def test_get_interview_details_for_applicant_dashboard(self): job_applicant = create_job_applicant() @@ -224,3 +230,7 @@ def setup_reminder_settings(): hr_settings.interview_reminder_template = _("Interview Reminder") hr_settings.feedback_reminder_notification_template = _("Interview Feedback Reminder") hr_settings.save() + + +def get_email_by_subject(subject: str) -> bool: + return frappe.db.exists("Email Queue", {"message": ("like", f"%{subject}%")})