diff --git a/frappe/cli.py b/frappe/cli.py index 8868725f03..b4cc5813f2 100755 --- a/frappe/cli.py +++ b/frappe/cli.py @@ -792,7 +792,7 @@ def run_tests(app=None, module=None, doctype=None, verbose=False, tests=(), driv import frappe.test_runner from frappe.utils import sel - sel.start(verbose, driver) + # sel.start(verbose, driver) ret = 1 try: @@ -801,7 +801,8 @@ def run_tests(app=None, module=None, doctype=None, verbose=False, tests=(), driv if len(ret.failures) == 0 and len(ret.errors) == 0: ret = 0 finally: - sel.close() + pass + # sel.close() return ret diff --git a/frappe/core/doctype/event/event.py b/frappe/core/doctype/event/event.py index a834a06a01..ed93839f2e 100644 --- a/frappe/core/doctype/event/event.py +++ b/frappe/core/doctype/event/event.py @@ -131,7 +131,7 @@ def get_events(start, end, user=None, for_reminder=False): # repeat for all years in period for year in range(start_year, end_year+1): date = str(year) + "-" + event_start - if date >= start and date <= repeat: + if date >= start and date <= end and date <= repeat: add_event(e, date) remove_events.append(e) @@ -148,7 +148,7 @@ def get_events(start, end, user=None, for_reminder=False): start_from = date for i in xrange(int(date_diff(end, start) / 30) + 3): - if date >= start and date <= repeat and date >= event_start: + if date >= start and date <= end and date <= repeat and date >= event_start: add_event(e, date) date = add_months(start_from, i+1) @@ -163,7 +163,7 @@ def get_events(start, end, user=None, for_reminder=False): date = add_days(start, weekday - start_weekday) for cnt in xrange(int(date_diff(end, start) / 7) + 3): - if date >= start and date <= repeat and date >= event_start: + if date >= start and date <= end and date <= repeat and date >= event_start: add_event(e, date) date = add_days(date, 7) @@ -173,7 +173,7 @@ def get_events(start, end, user=None, for_reminder=False): if e.repeat_on=="Every Day": for cnt in xrange(date_diff(end, start) + 1): date = add_days(start, cnt) - if date >= event_start and date <= repeat \ + if date >= event_start and date <= end and date <= repeat \ and e[weekdays[getdate(date).weekday()]]: add_event(e, date) remove_events.append(e) diff --git a/frappe/core/doctype/event/test_event.py b/frappe/core/doctype/event/test_event.py index 0da305d482..ba2ee14ecf 100644 --- a/frappe/core/doctype/event/test_event.py +++ b/frappe/core/doctype/event/test_event.py @@ -8,6 +8,8 @@ import frappe.defaults import unittest import json +from frappe.core.doctype.event.event import get_events + test_records = frappe.get_test_records('Event') class TestEvent(unittest.TestCase): @@ -94,3 +96,26 @@ class TestEvent(unittest.TestCase): # cleanup ev.delete() + def test_recurring(self): + ev = frappe.get_doc({ + "doctype":"Event", + "subject": "_Test Event", + "starts_on": "2014-02-01", + "event_type": "Public", + "repeat_this_event": 1, + "repeat_on": "Every Year" + }) + ev.insert() + + ev_list = get_events("2014-02-01", "2014-02-01", "Administrator", for_reminder=True) + self.assertTrue(filter(lambda e: e.name==ev.name, ev_list)) + + ev_list1 = get_events("2015-01-20", "2015-01-20", "Administrator", for_reminder=True) + self.assertFalse(filter(lambda e: e.name==ev.name, ev_list1)) + + ev_list2 = get_events("2014-02-20", "2014-02-20", "Administrator", for_reminder=True) + self.assertFalse(filter(lambda e: e.name==ev.name, ev_list2)) + + ev_list3 = get_events("2015-02-01", "2015-02-01", "Administrator", for_reminder=True) + self.assertTrue(filter(lambda e: e.name==ev.name, ev_list3)) +