diff --git a/cabot/cabotapp/tests/fixtures/recurring_response.ics b/cabot/cabotapp/tests/fixtures/recurring_response.ics new file mode 100644 index 0000000..ddeb843 --- /dev/null +++ b/cabot/cabotapp/tests/fixtures/recurring_response.ics @@ -0,0 +1,57 @@ +BEGIN:VCALENDAR +PRODID:-//Google Inc//Google Calendar 70.9054//EN +VERSION:2.0 +CALSCALE:GREGORIAN +METHOD:PUBLISH +X-WR-CALNAME:Cabot Rota +X-WR-TIMEZONE:America/New_York +X-WR-CALDESC: +BEGIN:VTIMEZONE +TZID:America/New_York +X-LIC-LOCATION:America/New_York +BEGIN:DAYLIGHT +TZOFFSETFROM:-0500 +TZOFFSETTO:-0400 +TZNAME:EDT +DTSTART:19700308T020000 +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:-0400 +TZOFFSETTO:-0500 +TZNAME:EST +DTSTART:19701101T020000 +RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +DTSTART;TZID=America/New_York:20161129T080000 +DTEND;TZID=America/New_York:20161130T080000 +RRULE:FREQ=DAILY;INTERVAL=2 +DTSTAMP:20161128T214445Z +UID:mep8lmf2s1lhmmm366c6rhhers@google.com +CREATED:20161128T204255Z +DESCRIPTION: +LAST-MODIFIED:20161128T204255Z +LOCATION: +SEQUENCE:0 +STATUS:CONFIRMED +SUMMARY:foo +TRANSP:OPAQUE +END:VEVENT +BEGIN:VEVENT +DTSTART;TZID=America/New_York:20161128T080000 +DTEND;TZID=America/New_York:20161129T080000 +RRULE:FREQ=DAILY;INTERVAL=2 +DTSTAMP:20161128T214445Z +UID:s4ftq5jd98cuubmbous3mgst5c@google.com +CREATED:20161128T203907Z +DESCRIPTION: +LAST-MODIFIED:20161128T203947Z +LOCATION: +SEQUENCE:1 +STATUS:CONFIRMED +SUMMARY:bar +TRANSP:OPAQUE +END:VEVENT +END:VCALENDAR diff --git a/cabot/cabotapp/tests/tests_basic.py b/cabot/cabotapp/tests/tests_basic.py index 1c50054..8f55dd2 100644 --- a/cabot/cabotapp/tests/tests_basic.py +++ b/cabot/cabotapp/tests/tests_basic.py @@ -169,6 +169,11 @@ def fake_gcal_response(*args, **kwargs): resp.status_code = 200 return resp +def fake_recurring_response(*args, **kwargs): + resp = Mock() + resp.content = get_content('recurring_response.ics') + resp.status_code = 200 + return resp def throws_timeout(*args, **kwargs): raise requests.RequestException(u'фиктивная ошибка innit') @@ -433,6 +438,20 @@ class TestDutyRota(LocalTestCase): events = get_events() self.assertEqual(events[0]['summary'], 'troels') + @patch('cabot.cabotapp.models.requests.get', fake_recurring_response) + def test_duty_rota_recurring(self): + events = get_events() + events.sort(key=lambda ev: ev['start']) + curr_summ = events[0]['summary']; + self.assertTrue(curr_summ == 'foo' or curr_summ == 'bar') + for i in range(0, 60): + self.assertEqual(events[i]['summary'], curr_summ) + if(curr_summ == 'foo'): + curr_summ = 'bar' + else: + curr_summ = 'foo' + + class TestWebInterface(LocalTestCase): def setUp(self):