Exemple #1
0
 def test_mix_datetime_types(self, coll_vdirs):
     """
     Test importing events with mixed tz-aware and tz-naive datetimes.
     """
     coll, vdirs = coll_vdirs
     view = {'event_format': '{title}'}
     import_ics(
         coll,
         {'locale': aux.locale, 'view': view},
         _get_text('event_dt_mixed_awareness'),
         batch=True
     )
     start_date = aux.BERLIN.localize(datetime.datetime(2015, 5, 29))
     end_date = aux.BERLIN.localize(datetime.datetime(2015, 6, 3))
     events = list(coll.get_localized(start_date, end_date))
     assert len(events) == 2
     events = sorted(events)
     assert events[0].start_local == \
         aux.BERLIN.localize(datetime.datetime(2015, 5, 30, 12, 0))
     assert events[0].end_local == \
         aux.BERLIN.localize(datetime.datetime(2015, 5, 30, 16, 0))
     assert events[1].start_local == \
         aux.BERLIN.localize(datetime.datetime(2015, 6, 2, 12, 0))
     assert events[1].end_local == \
         aux.BERLIN.localize(datetime.datetime(2015, 6, 2, 16, 0))
Exemple #2
0
 def test_mix_datetime_types(self, coll_vdirs):
     """
     Test importing events with mixed tz-aware and tz-naive datetimes.
     """
     coll, vdirs = coll_vdirs
     view = {'event_format': '{title}'}
     import_ics(
         coll,
         {'locale': utils.LOCALE_BERLIN, 'view': view},
         _get_text('event_dt_mixed_awareness'),
         batch=True
     )
     start_date = utils.BERLIN.localize(dt.datetime(2015, 5, 29))
     end_date = utils.BERLIN.localize(dt.datetime(2015, 6, 3))
     events = list(coll.get_localized(start_date, end_date))
     assert len(events) == 2
     events = sorted(events)
     assert events[0].start_local == \
         utils.BERLIN.localize(dt.datetime(2015, 5, 30, 12, 0))
     assert events[0].end_local == \
         utils.BERLIN.localize(dt.datetime(2015, 5, 30, 16, 0))
     assert events[1].start_local == \
         utils.BERLIN.localize(dt.datetime(2015, 6, 2, 12, 0))
     assert events[1].end_local == \
         utils.BERLIN.localize(dt.datetime(2015, 6, 2, 16, 0))
Exemple #3
0
    def test_import(self, coll_vdirs):
        coll, vdirs = coll_vdirs
        view = {'event_format': '{title}'}
        conf = {'locale': utils.locale, 'view': view}
        import_ics(coll, conf, _get_text('event_rrule_recuid'), batch=True)
        start_date = utils.BERLIN.localize(dt.datetime(2014, 4, 30))
        end_date = utils.BERLIN.localize(dt.datetime(2014, 9, 26))
        events = list(coll.get_localized(start_date, end_date))
        assert len(events) == 6
        events = sorted(events)
        assert events[1].start_local == utils.BERLIN.localize(
            dt.datetime(2014, 7, 7, 9, 0))
        assert utils.BERLIN.localize(dt.datetime(2014, 7, 14, 7, 0)) in \
            [ev.start for ev in events]

        import_ics(coll,
                   conf,
                   _get_text('event_rrule_recuid_update'),
                   batch=True)
        events = list(coll.get_localized(start_date, end_date))
        for ev in events:
            print(ev.start)
            assert ev.calendar == 'foobar'
        assert len(events) == 5
        assert utils.BERLIN.localize(dt.datetime(2014, 7, 14, 7, 0)) not in \
            [ev.start_local for ev in events]
Exemple #4
0
    def import_ics(ctx, ics, batch, random_uid):
        '''Import events from an .ics file.

        If an event with the same UID is already present in the (implicitly)
        selected calendar import will ask before updating (i.e. overwriting)
        that old event with the imported one, unless --batch is given, than it
        will always update. If this behaviour is not desired, use the
        `--random-uid` flag to generate a new, random UID.
        If no calendar is specified (and not `--batch`), you will be asked
        to choose a calendar. You can either enter the number printed behind
        each calendar's name or any unique prefix of a calendar's name.

        '''
        ics_str = ics.read()
        controllers.import_ics(build_collection(ctx),
                               ctx.obj['conf'],
                               ics=ics_str,
                               batch=batch,
                               random_uid=random_uid)
Exemple #5
0
    def import_ics(ctx, ics, batch, random_uid):
        '''Import events from an .ics file.

        If an event with the same UID is already present in the (implicitly)
        selected calendar import will ask before updating (i.e. overwriting)
        that old event with the imported one, unless --batch is given, than it
        will always update. If this behaviour is not desired, use the
        `--random-uid` flag to generate a new, random UID.
        If no calendar is specified (and not `--batch`), you will be asked
        to choose a calendar. You can either enter the number printed behind
        each calendar's name or any unique prefix of a calendar's name.

        '''
        ics_str = ics.read()
        controllers.import_ics(
            build_collection(ctx),
            ctx.obj['conf'],
            ics=ics_str,
            batch=batch,
            random_uid=random_uid
        )
Exemple #6
0
    def test_import(self, coll_vdirs):
        coll, vdirs = coll_vdirs
        import_ics(coll, {'locale': aux.locale}, _get_text('event_rrule_recuid'),
                   batch=True)
        start_date = aux.BERLIN.localize(datetime.datetime(2014, 4, 30))
        end_date = aux.BERLIN.localize(datetime.datetime(2014, 9, 26))
        events = list(coll.get_localized(start_date, end_date))
        assert len(events) == 6
        events = sorted(events)
        assert events[1].start_local == aux.BERLIN.localize(datetime.datetime(2014, 7, 7, 9, 0))
        assert aux.BERLIN.localize(datetime.datetime(2014, 7, 14, 7, 0)) in \
            [ev.start for ev in events]

        import_ics(coll, {'locale': aux.locale}, _get_text('event_rrule_recuid_update'),
                   batch=True)
        events = list(coll.get_localized(start_date, end_date))
        for ev in events:
            print(ev.start)
        assert len(events) == 5
        assert aux.BERLIN.localize(datetime.datetime(2014, 7, 14, 7, 0)) not in \
            [ev.start_local for ev in events]
Exemple #7
0
    def test_import(self, coll_vdirs):
        coll, vdirs = coll_vdirs
        view = {'event_format': '{title}'}
        conf = {'locale': utils.locale, 'view': view}
        import_ics(coll, conf, _get_text('event_rrule_recuid'), batch=True)
        start_date = utils.BERLIN.localize(dt.datetime(2014, 4, 30))
        end_date = utils.BERLIN.localize(dt.datetime(2014, 9, 26))
        events = list(coll.get_localized(start_date, end_date))
        assert len(events) == 6
        events = sorted(events)
        assert events[1].start_local == utils.BERLIN.localize(dt.datetime(2014, 7, 7, 9, 0))
        assert utils.BERLIN.localize(dt.datetime(2014, 7, 14, 7, 0)) in \
            [ev.start for ev in events]

        import_ics(coll, conf, _get_text('event_rrule_recuid_update'), batch=True)
        events = list(coll.get_localized(start_date, end_date))
        for ev in events:
            print(ev.start)
            assert ev.calendar == 'foobar'
        assert len(events) == 5
        assert utils.BERLIN.localize(dt.datetime(2014, 7, 14, 7, 0)) not in \
            [ev.start_local for ev in events]
Exemple #8
0
    def test_import(self, coll_vdirs):
        coll, vdirs = coll_vdirs
        import_ics(coll, {'locale': locale},
                   _get_text('event_rrule_recuid'),
                   batch=True)
        start_date = datetime.datetime(2014, 4, 30)
        end_date = datetime.datetime(2014, 9, 26)
        events = coll.get_datetime_by_time_range(start_date, end_date)
        assert len(events) == 6
        events = sorted(events)
        assert events[1].start_local == BERLIN.localize(
            datetime.datetime(2014, 7, 7, 9, 0))
        assert BERLIN.localize(datetime.datetime(
            2014, 7, 14, 7, 0)) in [ev.start for ev in events]

        import_ics(coll, {'locale': locale},
                   _get_text('event_rrule_recuid_update'),
                   batch=True)
        events = coll.get_datetime_by_time_range(start_date, end_date)
        for ev in events:
            print(ev.start)
        assert len(events) == 5
        assert BERLIN.localize(datetime.datetime(2014, 7, 14, 7, 0)) not in \
            [ev.start_local for ev in events]