示例#1
0
 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 ⟳'
示例#2
0
 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
示例#3
0
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
示例#4
0
 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 == '*****@*****.**'
示例#5
0
 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 == '*****@*****.**'
示例#6
0
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
示例#7
0
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'
示例#8
0
    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']))
示例#9
0
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'
示例#10
0
 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))
示例#11
0
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'
示例#12
0
 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))
示例#13
0
    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
示例#14
0
    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
示例#15
0
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'
示例#16
0
    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) == []
示例#17
0
    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) == []
示例#18
0
    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) == []
示例#19
0
 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)
示例#20
0
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)
示例#21
0
    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)
示例#22
0
 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'
示例#23
0
def test_event_rd():
    event = Event(event_dt_rd, **event_kwargs)
    assert event.recur is True
示例#24
0
    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'
示例#25
0
 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))
示例#26
0
 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'
示例#27
0
文件: event_test.py 项目: sdx23/khal
def test_no_initialization():
    with pytest.raises(ValueError):
        Event('', '')
示例#28
0
 def test_raw_d(self):
     assert Event(event_d, **event_kwargs).raw.split('\r\n') == cal_d