From 5ce8e8c4ffc9e0dbdd5de113e2fe402e27e0d58b Mon Sep 17 00:00:00 2001 From: Hussain Nagaria Date: Sat, 17 Jan 2026 23:22:38 +0530 Subject: [PATCH] test: flaky evaluation schedule MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Earlier logic was flaky because the test calculated the last expected date using a 56‑day window, while the production code builds schedules for 60 days. Those extra 4 days sometimes include another Monday or Wednesday, so the schedule ends later than the test expects. --- .../course_evaluator/test_course_evaluator.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/lms/lms/doctype/course_evaluator/test_course_evaluator.py b/lms/lms/doctype/course_evaluator/test_course_evaluator.py index 605bb553..764fdec5 100644 --- a/lms/lms/doctype/course_evaluator/test_course_evaluator.py +++ b/lms/lms/doctype/course_evaluator/test_course_evaluator.py @@ -5,7 +5,10 @@ from frappe.tests import UnitTestCase from frappe.utils import add_days, format_time, getdate -from lms.lms.doctype.course_evaluator.course_evaluator import get_schedule +from lms.lms.doctype.course_evaluator.course_evaluator import ( + get_schedule, + get_schedule_range_end_date, +) from lms.lms.test_utils import TestUtils @@ -52,17 +55,9 @@ class TestCourseEvaluator(UnitTestCase): return first_date def calculated_last_date_of_schedule(self, first_date): - last_day = add_days(getdate(), 56) - offset_monday = (0 - last_day.weekday() + 7) % 7 # 0 for Monday - offset_wednesday = (2 - last_day.weekday() + 7) % 7 # 2 for Wednesday - - if offset_monday < offset_wednesday and offset_monday <= 4: - last_day = add_days(last_day, offset_monday) - elif offset_wednesday <= 4: - last_day = add_days(last_day, offset_wednesday) - else: - last_day = add_days(last_day, min(offset_monday, offset_wednesday) + 7) - + last_day = getdate(get_schedule_range_end_date(getdate(), self.batch.name)) + while last_day.weekday() not in (0, 2): + last_day = add_days(last_day, -1) return last_day def test_unavailability_dates(self):