示例#1
0
 def test_today(self):
     with freeze_time('2016-9-19 8:00'):
         today13 = datetime.combine(date.today(), time(13, 0))
         assert (today13, False) == guessdatetimefstr(['today', '13:00'],
                                                      LOCALE_BERLIN)
         assert date.today() == guessdatetimefstr(['today'],
                                                  LOCALE_BERLIN)[0].date()
示例#2
0
 def test_time_weekday(self):
     with freeze_time('2016-9-19'):
         assert (datetime(2016, 9, 23, 16), False) == \
             guessdatetimefstr(
                 'Friday 16:00'.split(),
                 locale=LOCALE_BERLIN,
                 default_day=datetime.today())
示例#3
0
 def test_time_weekday(self):
     with freeze_time('2016-9-19'):
         assert (datetime(2016, 9, 23, 16), False) == \
             guessdatetimefstr(
                 'Friday 16:00'.split(),
                 locale=locale_de,
                 default_day=datetime.today())
示例#4
0
文件: utils_test.py 项目: greg42/khal
    def test_short_format_contains_year(self):
        """if the non long versions of date(time)format contained a year, the
        current year would be used instead of the given one, see #545"""
        locale = {
            'timeformat': '%H:%M',
            'dateformat': '%Y-%m-%d',
            'longdateformat': '%Y-%m-%d',
            'datetimeformat': '%Y-%m-%d %H:%M',
            'longdatetimeformat': '%Y-%m-%d %H:%M',
        }
        with freeze_time('2016-12-30 17:53'):
            assert (datetime(2017, 1, 1), True) == \
                guessdatetimefstr('2017-1-1'.split(), locale=locale, default_day=datetime.today())

        with freeze_time('2016-12-30 17:53'):
            assert (datetime(2017, 1, 1, 16, 30), False) == guessdatetimefstr(
                '2017-1-1 16:30'.split(), locale=locale, default_day=datetime.today(),
            )
示例#5
0
def khal_list(collection,
              daterange=None,
              conf=None,
              agenda_format=None,
              day_format=None,
              once=False,
              notstarted=False,
              width=False,
              env=None,
              datepoint=None):
    assert daterange is not None or datepoint is not None
    """returns a list of all events in `daterange`"""
    # because empty strings are also Falsish
    if agenda_format is None:
        agenda_format = conf['view']['agenda_event_format']

    if daterange is not None:
        if day_format is None:
            day_format = conf['view']['agenda_day_format']
        start, end = start_end_from_daterange(
            daterange,
            conf['locale'],
            default_timedelta_date=conf['default']['timedelta'],
            default_timedelta_datetime=conf['default']['timedelta'],
        )
        logger.debug('Getting all events between {} and {}'.format(start, end))

    elif datepoint is not None:
        if not datepoint:
            datepoint = ['now']
        try:
            start, allday = utils.guessdatetimefstr(datepoint, conf['locale'],
                                                    date.today())
        except ValueError:
            raise FatalError('Invalid value of `{}` for a datetime'.format(
                ' '.join(datepoint)))
        if allday:
            logger.debug('Got date {}'.format(start))
            raise FatalError('Please supply a datetime, not a date.')
        end = start + timedelta(seconds=1)
        if day_format is None:
            day_format = style(
                start.strftime(conf['locale']['longdatetimeformat']),
                bold=True,
            )
        logger.debug('Getting all events between {} and {}'.format(start, end))

    event_column = []
    once = set() if once else None
    if env is None:
        env = {}

    original_start = conf['locale']['local_timezone'].localize(start)
    while start < end:
        if start.date() == end.date():
            day_end = end
        else:
            day_end = datetime.combine(start.date(), time.max)
        current_events = get_events_between(
            collection,
            locale=conf['locale'],
            agenda_format=agenda_format,
            start=start,
            end=day_end,
            notstarted=notstarted,
            original_start=original_start,
            env=env,
            seen=once,
            width=width,
        )
        if day_format and (conf['default']['show_all_days'] or current_events):
            event_column.append(
                format_day(start.date(), day_format, conf['locale']))
        event_column.extend(current_events)
        start = datetime(*start.date().timetuple()[:3]) + timedelta(days=1)

    if event_column == []:
        event_column = [style('No events', bold=True)]
    return event_column
示例#6
0
 def test_time_now(self):
     with freeze_time('2016-9-19 17:53'):
         assert (datetime(2016, 9, 19, 17, 53), False) == \
             guessdatetimefstr('now'.split(), locale=LOCALE_BERLIN, default_day=datetime.today())
示例#7
0
 def test_time_tomorrow(self):
     assert (self.tomorrow16, False) == \
         guessdatetimefstr('16:00'.split(), locale=LOCALE_BERLIN, default_day=tomorrow)
示例#8
0
 def test_tomorrow(self):
     assert (self.tomorrow16, False) == \
         guessdatetimefstr('tomorrow 16:00 16:00'.split(), locale=LOCALE_BERLIN)
示例#9
0
 def test_time_now(self):
     with freeze_time('2016-9-19 17:53'):
         assert (datetime(2016, 9, 19, 17, 53), False) == \
             guessdatetimefstr('now'.split(), locale=locale_de, default_day=datetime.today())
示例#10
0
 def test_time_tomorrow(self):
     assert (self.tomorrow16, False) == \
         guessdatetimefstr('16:00'.split(), locale=locale_de, default_day=tomorrow)
示例#11
0
 def test_tomorrow(self):
     assert (self.tomorrow16, False) == \
         guessdatetimefstr('tomorrow 16:00 16:00'.split(), locale=locale_de)
示例#12
0
文件: utils_test.py 项目: greg42/khal
 def test_today(self):
     today13 = datetime.combine(date.today(), time(13, 0))
     assert (today13, False) == guessdatetimefstr(['today', '13:00'], locale_de)
     assert today == guessdatetimefstr(['today'], locale_de)[0].date()