mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2024-11-10 04:06:11 +00:00
53 lines
1.7 KiB
Python
53 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import unicode_literals
|
|
from datetime import timedelta, datetime
|
|
|
|
import unittest
|
|
|
|
from dateutil import tz
|
|
from dateutil import utils
|
|
from dateutil.utils import within_delta
|
|
|
|
from freezegun import freeze_time
|
|
|
|
UTC = tz.tzutc()
|
|
NYC = tz.gettz("America/New_York")
|
|
|
|
|
|
class UtilsTest(unittest.TestCase):
|
|
@freeze_time(datetime(2014, 12, 15, 1, 21, 33, 4003))
|
|
def testToday(self):
|
|
self.assertEqual(utils.today(), datetime(2014, 12, 15, 0, 0, 0))
|
|
|
|
@freeze_time(datetime(2014, 12, 15, 12), tz_offset=5)
|
|
def testTodayTzInfo(self):
|
|
self.assertEqual(utils.today(NYC),
|
|
datetime(2014, 12, 15, 0, 0, 0, tzinfo=NYC))
|
|
|
|
@freeze_time(datetime(2014, 12, 15, 23), tz_offset=5)
|
|
def testTodayTzInfoDifferentDay(self):
|
|
self.assertEqual(utils.today(UTC),
|
|
datetime(2014, 12, 16, 0, 0, 0, tzinfo=UTC))
|
|
|
|
def testDefaultTZInfoNaive(self):
|
|
dt = datetime(2014, 9, 14, 9, 30)
|
|
self.assertIs(utils.default_tzinfo(dt, NYC).tzinfo,
|
|
NYC)
|
|
|
|
def testDefaultTZInfoAware(self):
|
|
dt = datetime(2014, 9, 14, 9, 30, tzinfo=UTC)
|
|
self.assertIs(utils.default_tzinfo(dt, NYC).tzinfo,
|
|
UTC)
|
|
|
|
def testWithinDelta(self):
|
|
d1 = datetime(2016, 1, 1, 12, 14, 1, 9)
|
|
d2 = d1.replace(microsecond=15)
|
|
|
|
self.assertTrue(within_delta(d1, d2, timedelta(seconds=1)))
|
|
self.assertFalse(within_delta(d1, d2, timedelta(microseconds=1)))
|
|
|
|
def testWithinDeltaWithNegativeDelta(self):
|
|
d1 = datetime(2016, 1, 1)
|
|
d2 = datetime(2015, 12, 31)
|
|
|
|
self.assertTrue(within_delta(d2, d1, timedelta(days=-1)))
|