[tests/util] move 'datetime' tests into a separate TestCase class
This commit is contained in:
@@ -406,6 +406,89 @@ def hash(value):
|
|||||||
self.assertEqual(expr(value), result)
|
self.assertEqual(expr(value), result)
|
||||||
|
|
||||||
|
|
||||||
|
class TestDatetime(unittest.TestCase):
|
||||||
|
|
||||||
|
def test_to_datetime(self, f=util.to_datetime):
|
||||||
|
|
||||||
|
def _assert(value, expected):
|
||||||
|
result = f(value)
|
||||||
|
self.assertIsInstance(result, datetime.datetime)
|
||||||
|
self.assertEqual(result, expected, msg=repr(value))
|
||||||
|
|
||||||
|
dt = datetime.datetime(2010, 1, 1)
|
||||||
|
self.assertIs(f(dt), dt)
|
||||||
|
|
||||||
|
_assert(dt , dt)
|
||||||
|
_assert(1262304000 , dt)
|
||||||
|
_assert(1262304000.0 , dt)
|
||||||
|
_assert(1262304000.123, dt)
|
||||||
|
_assert("1262304000" , dt)
|
||||||
|
|
||||||
|
_assert("2010-01-01" , dt)
|
||||||
|
_assert("2010-01-01 00:00:00" , dt)
|
||||||
|
_assert("2010-01-01T00:00:00" , dt)
|
||||||
|
_assert("2010-01-01T00:00:00.123456" , dt)
|
||||||
|
_assert("2009-12-31T19:00:00-05:00" , dt)
|
||||||
|
_assert("2009-12-31T19:00:00.123456-05:00", dt)
|
||||||
|
_assert("2010-01-01T00:00:00Z" , dt)
|
||||||
|
_assert("2010-01-01T00:00:00.123456Z" , dt)
|
||||||
|
|
||||||
|
_assert(0 , util.EPOCH)
|
||||||
|
_assert("" , util.EPOCH)
|
||||||
|
_assert("foo", util.EPOCH)
|
||||||
|
_assert(None , util.EPOCH)
|
||||||
|
_assert(() , util.EPOCH)
|
||||||
|
_assert([] , util.EPOCH)
|
||||||
|
_assert({} , util.EPOCH)
|
||||||
|
_assert((1, 2, 3), util.EPOCH)
|
||||||
|
|
||||||
|
@unittest.skipIf(sys.hexversion < 0x30b0000,
|
||||||
|
"extended fromisoformat timezones")
|
||||||
|
def test_to_datetime_tz(self, f=util.to_datetime):
|
||||||
|
|
||||||
|
def _assert(value, expected):
|
||||||
|
result = f(value)
|
||||||
|
self.assertIsInstance(result, datetime.datetime)
|
||||||
|
self.assertEqual(result, expected, msg=repr(value))
|
||||||
|
|
||||||
|
dt = datetime.datetime(2010, 1, 1)
|
||||||
|
|
||||||
|
_assert("2009-12-31T19:00:00-05" , dt)
|
||||||
|
_assert("2009-12-31T19:00:00-0500" , dt)
|
||||||
|
_assert("2009-12-31T19:00:00.123456-05" , dt)
|
||||||
|
_assert("2009-12-31T19:00:00.123456-0500" , dt)
|
||||||
|
|
||||||
|
def test_datetime_to_timestamp(self, f=util.datetime_to_timestamp):
|
||||||
|
self.assertEqual(f(util.EPOCH), 0.0)
|
||||||
|
self.assertEqual(f(datetime.datetime(2010, 1, 1)), 1262304000.0)
|
||||||
|
self.assertEqual(f(datetime.datetime(2010, 1, 1, 0, 0, 0, 128000)),
|
||||||
|
1262304000.128000)
|
||||||
|
with self.assertRaises(TypeError):
|
||||||
|
f(None)
|
||||||
|
|
||||||
|
def test_datetime_to_timestamp_string(
|
||||||
|
self, f=util.datetime_to_timestamp_string):
|
||||||
|
self.assertEqual(f(util.EPOCH), "0")
|
||||||
|
self.assertEqual(f(datetime.datetime(2010, 1, 1)), "1262304000")
|
||||||
|
self.assertEqual(f(None), "")
|
||||||
|
|
||||||
|
def test_datetime_from_timestamp(
|
||||||
|
self, f=util.datetime_from_timestamp):
|
||||||
|
self.assertEqual(f(0.0), util.EPOCH)
|
||||||
|
self.assertEqual(f(1262304000.0), datetime.datetime(2010, 1, 1))
|
||||||
|
self.assertEqual(f(1262304000.128000).replace(microsecond=0),
|
||||||
|
datetime.datetime(2010, 1, 1, 0, 0, 0))
|
||||||
|
|
||||||
|
def test_datetime_utcfromtimestamp(
|
||||||
|
self, f=util.datetime_utcfromtimestamp):
|
||||||
|
self.assertEqual(f(0.0), util.EPOCH)
|
||||||
|
self.assertEqual(f(1262304000.0), datetime.datetime(2010, 1, 1))
|
||||||
|
|
||||||
|
def test_datetime_utcnow(
|
||||||
|
self, f=util.datetime_utcnow):
|
||||||
|
self.assertIsInstance(f(), datetime.datetime)
|
||||||
|
|
||||||
|
|
||||||
class TestOther(unittest.TestCase):
|
class TestOther(unittest.TestCase):
|
||||||
|
|
||||||
def test_bencode(self):
|
def test_bencode(self):
|
||||||
@@ -794,86 +877,6 @@ value = 123
|
|||||||
self.assertEqual(f(["a", "b", "c"]), "a, b, c")
|
self.assertEqual(f(["a", "b", "c"]), "a, b, c")
|
||||||
self.assertEqual(f([1, 2, 3]), "1, 2, 3")
|
self.assertEqual(f([1, 2, 3]), "1, 2, 3")
|
||||||
|
|
||||||
def test_to_datetime(self, f=util.to_datetime):
|
|
||||||
|
|
||||||
def _assert(value, expected):
|
|
||||||
result = f(value)
|
|
||||||
self.assertIsInstance(result, datetime.datetime)
|
|
||||||
self.assertEqual(result, expected, msg=repr(value))
|
|
||||||
|
|
||||||
dt = datetime.datetime(2010, 1, 1)
|
|
||||||
self.assertIs(f(dt), dt)
|
|
||||||
|
|
||||||
_assert(dt , dt)
|
|
||||||
_assert(1262304000 , dt)
|
|
||||||
_assert(1262304000.0 , dt)
|
|
||||||
_assert(1262304000.123, dt)
|
|
||||||
_assert("1262304000" , dt)
|
|
||||||
|
|
||||||
_assert("2010-01-01" , dt)
|
|
||||||
_assert("2010-01-01 00:00:00" , dt)
|
|
||||||
_assert("2010-01-01T00:00:00" , dt)
|
|
||||||
_assert("2010-01-01T00:00:00.123456" , dt)
|
|
||||||
_assert("2009-12-31T19:00:00-05:00" , dt)
|
|
||||||
_assert("2009-12-31T19:00:00.123456-05:00", dt)
|
|
||||||
_assert("2010-01-01T00:00:00Z" , dt)
|
|
||||||
_assert("2010-01-01T00:00:00.123456Z" , dt)
|
|
||||||
|
|
||||||
_assert(0 , util.EPOCH)
|
|
||||||
_assert("" , util.EPOCH)
|
|
||||||
_assert("foo", util.EPOCH)
|
|
||||||
_assert(None , util.EPOCH)
|
|
||||||
_assert(() , util.EPOCH)
|
|
||||||
_assert([] , util.EPOCH)
|
|
||||||
_assert({} , util.EPOCH)
|
|
||||||
_assert((1, 2, 3), util.EPOCH)
|
|
||||||
|
|
||||||
@unittest.skipIf(sys.hexversion < 0x30b0000,
|
|
||||||
"extended fromisoformat timezones")
|
|
||||||
def test_to_datetime_tz(self, f=util.to_datetime):
|
|
||||||
|
|
||||||
def _assert(value, expected):
|
|
||||||
result = f(value)
|
|
||||||
self.assertIsInstance(result, datetime.datetime)
|
|
||||||
self.assertEqual(result, expected, msg=repr(value))
|
|
||||||
|
|
||||||
dt = datetime.datetime(2010, 1, 1)
|
|
||||||
|
|
||||||
_assert("2009-12-31T19:00:00-05" , dt)
|
|
||||||
_assert("2009-12-31T19:00:00-0500" , dt)
|
|
||||||
_assert("2009-12-31T19:00:00.123456-05" , dt)
|
|
||||||
_assert("2009-12-31T19:00:00.123456-0500" , dt)
|
|
||||||
|
|
||||||
def test_datetime_to_timestamp(self, f=util.datetime_to_timestamp):
|
|
||||||
self.assertEqual(f(util.EPOCH), 0.0)
|
|
||||||
self.assertEqual(f(datetime.datetime(2010, 1, 1)), 1262304000.0)
|
|
||||||
self.assertEqual(f(datetime.datetime(2010, 1, 1, 0, 0, 0, 128000)),
|
|
||||||
1262304000.128000)
|
|
||||||
with self.assertRaises(TypeError):
|
|
||||||
f(None)
|
|
||||||
|
|
||||||
def test_datetime_to_timestamp_string(
|
|
||||||
self, f=util.datetime_to_timestamp_string):
|
|
||||||
self.assertEqual(f(util.EPOCH), "0")
|
|
||||||
self.assertEqual(f(datetime.datetime(2010, 1, 1)), "1262304000")
|
|
||||||
self.assertEqual(f(None), "")
|
|
||||||
|
|
||||||
def test_datetime_from_timestamp(
|
|
||||||
self, f=util.datetime_from_timestamp):
|
|
||||||
self.assertEqual(f(0.0), util.EPOCH)
|
|
||||||
self.assertEqual(f(1262304000.0), datetime.datetime(2010, 1, 1))
|
|
||||||
self.assertEqual(f(1262304000.128000).replace(microsecond=0),
|
|
||||||
datetime.datetime(2010, 1, 1, 0, 0, 0))
|
|
||||||
|
|
||||||
def test_datetime_utcfromtimestamp(
|
|
||||||
self, f=util.datetime_utcfromtimestamp):
|
|
||||||
self.assertEqual(f(0.0), util.EPOCH)
|
|
||||||
self.assertEqual(f(1262304000.0), datetime.datetime(2010, 1, 1))
|
|
||||||
|
|
||||||
def test_datetime_utcnow(
|
|
||||||
self, f=util.datetime_utcnow):
|
|
||||||
self.assertIsInstance(f(), datetime.datetime)
|
|
||||||
|
|
||||||
def test_universal_none(self):
|
def test_universal_none(self):
|
||||||
obj = util.NONE
|
obj = util.NONE
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user