Пример #1
0
def time_datetime(dt):
    """
    Alternative to babel datetimeformat, allows user to choose ISO 8601 format
    by checking box in usersettings Options. Input may be datetime object or
    timestamp.
    """
    return show_time.format_date_time(dt)
Пример #2
0
 def macro(self, content, arguments, page_url, alternative):
     if arguments is None:
         tm = None
     else:
         stamp = arguments[0]
         tm = self.parse_time(stamp)
     return show_time.format_date_time(tm)
Пример #3
0
 def test_show_time_datetime(self):
     """ users who are not logged-in get ISO 8601 Zulu dates """
     formatted_date = show_time.format_date(utc_dt=0)
     assert formatted_date == '1970-01-01z'
     formatted_time = show_time.format_time(utc_dt=0)
     assert formatted_time == '00:00:00z'
     formatted_date_time = show_time.format_date_time(utc_dt=0)
     assert formatted_date_time == '1970-01-01 00:00:00z'
Пример #4
0
    def test_parse_time(self):
        MacroDateTimeBase_obj = MacroDateTimeBase()
        test_time_args = '2011-08-07T11:11:11+0533'
        ts = MacroDateTimeBase_obj.parse_time(test_time_args)
        expected = 1312695491.0
        assert ts == expected

        result = format_date_time(datetime.utcfromtimestamp(ts))
        expected = '2011-08-07 05:38:11z'
        assert result == expected

        flaskg.user.valid = True  # show_time creates ISO 8601 dates if user is not logged in
        result = format_date_time(datetime.utcfromtimestamp(ts))
        expected = 'Aug 7, 2011, 5:38:11 AM'  # comma after year was added in recent CLDR
        assert result == expected

        with pytest.raises(ValueError):
            # things after next 10,000 years can't be predicted
            MacroDateTimeBase_obj.parse_time('12011-08-07T11:11:11')
Пример #5
0
 def test_show_time_datetime_logged_in_local(self):
     """users who are logged-in, unchecked ISO-8601 get dates based on locale and timezone"""
     flaskg.user.valid = True
     flaskg.user.locale = 'en'
     flaskg.user.iso_8601 = False
     flaskg.user.timezone = 'US/Arizona'
     formatted_date = show_time.format_date(utc_dt=0)
     assert formatted_date == 'Dec 31, 1969'
     formatted_time = show_time.format_time(utc_dt=0)
     assert formatted_time == '5:00:00 PM'
     formatted_date_time = show_time.format_date_time(utc_dt=0)
     assert formatted_date_time == 'Dec 31, 1969, 5:00:00 PM'
Пример #6
0
 def test_show_time_datetime_logged_in_utc(self):
     """users who are logged-in, selected UTC timezone and checked ISO-8601 get ISO 8601 Zulu dates"""
     flaskg.user.valid = True
     flaskg.user.timezone = 'UTC'
     flaskg.user.locale = 'en'
     flaskg.user.iso_8601 = True
     formatted_date = show_time.format_date(utc_dt=0)
     assert formatted_date == '1970-01-01z'
     formatted_time = show_time.format_time(utc_dt=0)
     assert formatted_time == '00:00:00z'
     formatted_date_time = show_time.format_date_time(utc_dt=0)
     assert formatted_date_time == '1970-01-01 00:00:00z'
Пример #7
0
def test_Macro():
    """Test: DateTime.Macro """
    flaskg.user.valid = True  # show_time creates ISO 8601 dates if user is not logged in
    macro_obj = Macro()
    # when arguments is None
    result = macro_obj.macro('content', None, 'page_url', 'alternative')
    # get the current time
    test_time = time.time()
    test_time = format_date_time(datetime.utcfromtimestamp(test_time))
    assert test_time == result

    arguments = ['2011-08-07T11:11:11', 'argument2']
    result = macro_obj.macro('content', arguments, 'page_url', 'alternative')
    expected = 'Aug 7, 2011, 11:11:11 AM'  # comma after year was added in recent CLDR
    assert result == expected

    flaskg.user.valid = False
    result = macro_obj.macro('content', arguments, 'page_url', 'alternative')
    expected = '2011-08-07 11:11:11z'
    assert result == expected

    arguments = ['incorrect_argument']
    with pytest.raises(ValueError):
        macro_obj.macro('content', arguments, 'page_url', 'alternative')

    # the following are different ways to specify the same moment
    expected = '2019-10-07 18:30:00z'
    arguments = ['2019-10-07T18:30:00Z'
                 '2019-10-07T22:30:00+0400',
                 '2019-10-07 11:30:00-0700',  # ascii hyphen-minus
                 '2019-10-07T15:00:00-0330',
                 '2019-10-07 11:30:00\u22120700',  # unicode minus \u2212
                 '2019-10-07T15:00:00\u22120330', ]
    for arg in arguments:
        result = macro_obj.macro('content', (arg, ), 'page_url', 'alternative')
        assert result == expected
Пример #8
0
def time_datetime(dt):
    """
    Alternative to babel datetimeformat, allows user to choose ISO 8601 format
    by checking box in usersettings Options.
    """
    return show_time.format_date_time(datetime.datetime.utcfromtimestamp(dt))