def test_event_rr(self): event = Event(event_dt_rr, **event_kwargs) assert event.recur is True assert event.compact(datetime.date(2014, 4, 9)) == u'09:30-10:30: An Event ⟳' event = Event(event_d_rr, **event_kwargs) assert event.recur is True assert event.compact(datetime.date(2014, 4, 9)) == u'Another Event ⟳'
def test_raw_dt(self): event = Event(event_dt, **event_kwargs) assert event.raw.split('\r\n') == cal_dt assert event.compact(datetime.date(2014, 4, 9)) == u'09:30-10:30: An Event' event = Event(event_dt, unicode_symbols=False, **event_kwargs) assert event.compact(datetime.date(2014, 4, 9)) == u'09:30-10:30: An Event' assert event.recur is False
def test_raw_dt(): event = Event(event_dt, **event_kwargs) assert normalize_component(event.raw) == normalize_component(cal_dt) assert event.compact(datetime.date(2014, 4, 9)) == u'09:30-10:30: An Event' event = Event(event_dt, unicode_symbols=False, **event_kwargs) assert event.compact(datetime.date(2014, 4, 9)) == u'09:30-10:30: An Event' assert event.long() == u'09:30-10:30 09.04.2014: An Event' assert event.recur is False
def test_list(self, cal_vdir): cal, vdir = cal_vdir event = Event(event_d, cal.name, **KWARGS) cal.new(event) event = Event(event_today, cal.name, **KWARGS) cal.new(event) assert [href for (href, uid) in cal._dbtool.list()] == [ 'V042MJ8B3SJNFXQOJL6P53OFMHJE8Z3VZWOU.ics', '*****@*****.**' ] assert cal._dbtool.get('*****@*****.**').uid == '*****@*****.**'
def test_list(self, cal_vdir): cal, vdir = cal_vdir event = Event(event_d, cal.name, locale=locale) cal.new(event) event = Event(event_today, cal.name, locale=locale) cal.new(event) hrefs = sorted(href for href, uid in cal._dbtool.list()) assert hrefs == [ 'V042MJ8B3SJNFXQOJL6P53OFMHJE8Z3VZWOU.ics', '*****@*****.**' ] assert cal._dbtool.get('*****@*****.**').uid == '*****@*****.**'
def test_raw_dt(): event = Event(event_dt, **event_kwargs) # timezone components might be ordered differently on different runs assert cal_dt[:3] == event.raw.split('\r\n')[:3] assert cal_dt[18:] == event.raw.split('\r\n')[18:] assert '\r\n'.join(cal_dt_cet) in event.raw assert '\r\n'.join(cal_dt_cest) in event.raw assert event.compact(datetime.date(2014, 4, 9)) == u'09:30-10:30: An Event' event = Event(event_dt, unicode_symbols=False, **event_kwargs) assert event.compact(datetime.date(2014, 4, 9)) == u'09:30-10:30: An Event' assert event.long() == u'09:30-10:30 09.04.2014: An Event' assert event.recur is False
def test_event_rr(): event = Event(event_dt_rr, **event_kwargs) assert event.recur is True assert event.compact(datetime.date(2014, 4, 9)) == u'09:30-10:30: An Event ⟳' assert event.long( ) == u'09:30-10:30 09.04.2014: An Event\nRepeat: FREQ=DAILY;COUNT=10' event = Event(event_d_rr, **event_kwargs) assert event.recur is True assert event.compact(datetime.date(2014, 4, 9)) == u'Another Event ⟳' assert event.long( ) == u'09.04.2014: Another Event\nRepeat: FREQ=DAILY;COUNT=10'
def __init__(self, collection, conf, date_list, location=None, repeat=None): try: event = aux.construct_event( date_list, location=location, repeat=repeat, **conf['locale']) except FatalError: sys.exit(1) event = Event(event, collection.default_calendar_name, locale=conf['locale'], ) try: collection.new(event) except ReadOnlyCalendarError: logger.fatal('ERROR: Cannot modify calendar "{}" as it is ' 'read-only'.format(collection.default_calendar_name)) sys.exit(1) if conf['default']['print_new'] == 'event': print(event.long()) elif conf['default']['print_new'] == 'path': path = collection._calnames[event.calendar].path + event.href print(path.encode(conf['locale']['encoding']))
def test_dt_two_tz(): event = Event(event_dt_two_tz, **event_kwargs) assert normalize_component(cal_dt_two_tz) == normalize_component(event.raw) # local (Berlin) time! assert event.compact(datetime.date(2014, 4, 9)) == u'09:30-16:30: An Event' assert event.long() == u'09:30-16:30 09.04.2014: An Event'
def test_event_d_long(self): event = Event(event_d_long, **event_kwargs) with pytest.raises(ValueError): event.compact(datetime.date(2014, 4, 8)) assert event.compact(datetime.date(2014, 4, 9)) == u'↦ Another Event' assert event.compact(datetime.date(2014, 4, 10)) == u'↔ Another Event' assert event.compact(datetime.date(2014, 4, 11)) == u'⇥ Another Event' with pytest.raises(ValueError): event.compact(datetime.date(2014, 4, 12))
def test_event_no_dst(): """test the creation of a corect VTIMEZONE for timezones with no dst""" bogota_locale = locale.copy() bogota_locale['local_timezone'] = bogota bogota_locale['default_timezone'] = bogota event = Event(event_no_dst, calendar='foobar', locale=bogota_locale) assert event.raw.split('\r\n') == cal_no_dst assert event.long() == u'09:30-10:30 09.04.2014: An Event'
def test_event_dt_long(self): event = Event(event_dt_long, **event_kwargs) with pytest.raises(ValueError): event.compact(datetime.date(2014, 4, 8)) assert event.compact(datetime.date(2014, 4, 9)) == u'09:30→ : An Event' # FIXME ugly! replace with one arro assert event.compact(datetime.date(2014, 4, 10)) == u'→ → : An Event' assert event.compact(datetime.date(2014, 4, 12)) == u'→ 10:30: An Event' with pytest.raises(ValueError): event.compact(datetime.date(2014, 4, 13))
def test_change(self, coll_vdirs): coll, vdirs = coll_vdirs event = Event(event_dt, account='foo', **KWARGS) coll.new(event, cal1) event = coll.get_datetime_by_time_range(self.astart, self.aend)[0] assert event.account == cal1 coll.change_collection(event, cal2) events = coll.get_datetime_by_time_range(self.astart, self.aend) assert len(events) == 1 assert events[0].account == cal2
def test_change(self, coll_vdirs): coll, vdirs = coll_vdirs event = Event(event_dt, calendar='foo', locale=locale) coll.new(event, cal1) event = coll.get_datetime_by_time_range(self.astart, self.aend)[0] assert event.calendar == cal1 coll.change_collection(event, cal2) events = coll.get_datetime_by_time_range(self.astart, self.aend) assert len(events) == 1 assert events[0].calendar == cal2
def test_dt_two_tz(): event = Event(event_dt_two_tz, **event_kwargs) assert '\r\n'.join(cal_dt_two_tz[:3]) in event.raw assert '\r\n'.join(cal_dt_two_tz[5:11]) in event.raw # cet assert '\r\n'.join(cal_dt_two_tz[11:18]) in event.raw # cest assert '\r\n'.join(cal_dt_two_tz[21:27]) in event.raw # est assert '\r\n'.join(cal_dt_two_tz[27:34]) in event.raw # edt assert '\r\n'.join(cal_dt_two_tz[35:]) in event.raw # edt # local (Berlin) time! assert event.compact(datetime.date(2014, 4, 9)) == u'09:30-16:30: An Event' assert event.long() == u'09:30-16:30 09.04.2014: An Event'
def test_insert_d_no_value(self, coll_vdirs): """insert a date event with no VALUE=DATE option""" coll, vdirs = coll_vdirs event = Event(event_d_no_value, calendar='foo', **KWARGS) coll.new(event, cal1) events = coll.get_allday_by_time_range(aday) assert len(events) == 1 assert events[0].calendar == cal1 assert len(list(vdirs[cal1].list())) == 1 assert len(list(vdirs[cal2].list())) == 0 assert len(list(vdirs[cal3].list())) == 0 assert coll.get_datetime_by_time_range(self.bstart, self.bend) == []
def test_insert_d(self, coll_vdirs): """insert a date event""" coll, vdirs = coll_vdirs event = Event(event_d, calendar='foo', locale=locale) coll.new(event, cal1) events = coll.get_allday_by_time_range(aday) assert len(events) == 1 assert events[0].calendar == cal1 assert events[0].color == 'dark blue' assert len(list(vdirs[cal1].list())) == 1 assert len(list(vdirs[cal2].list())) == 0 assert len(list(vdirs[cal3].list())) == 0 assert coll.get_datetime_by_time_range(self.bstart, self.bend) == []
def test_insert(self, coll_vdirs): coll, vdirs = coll_vdirs event = Event(event_dt, account='foo', **KWARGS) coll.new(event, cal1) events = coll.get_datetime_by_time_range(self.astart, self.aend) assert len(events) == 1 assert events[0].account == cal1 assert len(list(vdirs[cal1].list())) == 1 assert len(list(vdirs[cal2].list())) == 0 assert len(list(vdirs[cal3].list())) == 0 assert coll.get_datetime_by_time_range(self.bstart, self.bend) == []
def test_insert_calendar_readonly(self, tmpdir): coll = CalendarCollection() coll.append( Calendar('foobar', ':memory:', str(tmpdir), readonly=True, **KWARGS)) coll.append(Calendar('home', ':memory:', str(tmpdir), **KWARGS)) coll.append( Calendar('work', ':memory:', str(tmpdir), readonly=True, **KWARGS)) event = Event(event_dt, calendar='home', **KWARGS) with pytest.raises(khal.khalendar.exceptions.ReadOnlyCalendarError): coll.new(event, cal1)
def test_dtend_equals_dtstart(): text = textwrap.dedent(""" BEGIN:VEVENT CREATED:20141112T153944Z DESCRIPTION:asdf DTEND;VALUE=DATE:20141127 DTSTAMP:20141112T153944Z DTSTART;VALUE=DATE:20141127 LAST-MODIFIED:20141112T153944Z SEQUENCE:0 SUMMARY:asdfevent UID:937569nfv37689g END:VEVENT """) event = Event(text, calendar='foobar', locale=locale) assert event.end - event.start == datetime.timedelta(days=1)
def __init__(self, collection, conf, date_list, location=None): try: event = aux.construct_event( date_list, location=location, **conf['locale']) except FatalError: sys.exit(1) event = Event(event, collection.default_calendar_name, local_tz=conf['locale']['local_timezone'], default_tz=conf['locale']['default_timezone'], ) try: collection.new(event) except ReadOnlyCalendarError: logger.fatal('ERROR: Cannot modify calendar "{}" as it is ' 'read-only'.format(collection.default_calendar_name)) sys.exit(1)
def test_raw_d(self): event = Event(event_d, **event_kwargs) assert event.raw.split('\r\n') == cal_d assert event.compact(datetime.date(2014, 4, 9)) == u'Another Event'
def test_event_rd(): event = Event(event_dt_rd, **event_kwargs) assert event.recur is True
def test_dt_two_tz(self): event = Event(event_dt_two_tz, **event_kwargs) assert event.raw.split('\r\n') == cal_dt_two_tz # local (Berlin) time! assert event.compact(datetime.date(2014, 4, 9)) == u'09:30-16:30: An Event'
def test_event_dt_duration(self): """event has no end, but duration""" event = Event(event_dt_duration, **event_kwargs) assert event.compact(datetime.date(2014, 4, 9)) == u'09:30-10:30: An Event' assert event.end == berlin.localize(datetime.datetime(2014, 4, 9, 10, 30))
def test_event_dt_no_tz(self): """start and end time of no timezone""" event = Event(event_dt_no_tz, **event_kwargs) assert event.compact(datetime.date(2014, 4, 9)) == u'09:30-10:30: An Event'
def test_no_initialization(): with pytest.raises(ValueError): Event('', '')
def test_raw_d(self): assert Event(event_d, **event_kwargs).raw.split('\r\n') == cal_d