summaryrefslogtreecommitdiff
path: root/src/isodate/tests/test_time.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/isodate/tests/test_time.py')
-rw-r--r--src/isodate/tests/test_time.py184
1 files changed, 91 insertions, 93 deletions
diff --git a/src/isodate/tests/test_time.py b/src/isodate/tests/test_time.py
index fe96dab..c843bc9 100644
--- a/src/isodate/tests/test_time.py
+++ b/src/isodate/tests/test_time.py
@@ -1,32 +1,6 @@
-##############################################################################
-# Copyright 2009, Gerhard Weis
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-# * Neither the name of the authors nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT
-##############################################################################
-'''
+"""
Test cases for the isotime module.
-'''
+"""
import unittest
from datetime import time
@@ -39,57 +13,83 @@ from isodate import TZ_BAS, TZ_EXT, TZ_HOUR
# the following list contains tuples of ISO time strings and the expected
# result from the parse_time method. A result of None means an ISO8601Error
# is expected.
-TEST_CASES = [('232050', time(23, 20, 50), TIME_BAS_COMPLETE + TZ_BAS),
- ('23:20:50', time(23, 20, 50), TIME_EXT_COMPLETE + TZ_EXT),
- ('2320', time(23, 20), TIME_BAS_MINUTE),
- ('23:20', time(23, 20), TIME_EXT_MINUTE),
- ('23', time(23), TIME_HOUR),
- ('232050,5', time(23, 20, 50, 500000), None),
- ('23:20:50.5', time(23, 20, 50, 500000), None),
- # test precision
- ('15:33:42.123456', time(15, 33, 42, 123456), None),
- ('15:33:42.1234564', time(15, 33, 42, 123456), None),
- ('15:33:42.1234557', time(15, 33, 42, 123456), None),
- ('2320,8', time(23, 20, 48), None),
- ('23:20,8', time(23, 20, 48), None),
- ('23,3', time(23, 18), None),
- ('232030Z', time(23, 20, 30, tzinfo=UTC),
- TIME_BAS_COMPLETE + TZ_BAS),
- ('2320Z', time(23, 20, tzinfo=UTC), TIME_BAS_MINUTE + TZ_BAS),
- ('23Z', time(23, tzinfo=UTC), TIME_HOUR + TZ_BAS),
- ('23:20:30Z', time(23, 20, 30, tzinfo=UTC),
- TIME_EXT_COMPLETE + TZ_EXT),
- ('23:20Z', time(23, 20, tzinfo=UTC), TIME_EXT_MINUTE + TZ_EXT),
- ('152746+0100', time(15, 27, 46,
- tzinfo=FixedOffset(1, 0, '+0100')), TIME_BAS_COMPLETE + TZ_BAS),
- ('152746-0500', time(15, 27, 46,
- tzinfo=FixedOffset(-5, 0, '-0500')),
- TIME_BAS_COMPLETE + TZ_BAS),
- ('152746+01', time(15, 27, 46,
- tzinfo=FixedOffset(1, 0, '+01:00')),
- TIME_BAS_COMPLETE + TZ_HOUR),
- ('152746-05', time(15, 27, 46,
- tzinfo=FixedOffset(-5, -0, '-05:00')),
- TIME_BAS_COMPLETE + TZ_HOUR),
- ('15:27:46+01:00', time(15, 27, 46,
- tzinfo=FixedOffset(1, 0, '+01:00')),
- TIME_EXT_COMPLETE + TZ_EXT),
- ('15:27:46-05:00', time(15, 27, 46,
- tzinfo=FixedOffset(-5, -0, '-05:00')),
- TIME_EXT_COMPLETE + TZ_EXT),
- ('15:27:46+01', time(15, 27, 46,
- tzinfo=FixedOffset(1, 0, '+01:00')),
- TIME_EXT_COMPLETE + TZ_HOUR),
- ('15:27:46-05', time(15, 27, 46,
- tzinfo=FixedOffset(-5, -0, '-05:00')),
- TIME_EXT_COMPLETE + TZ_HOUR),
- ('15:27:46-05:30', time(15, 27, 46,
- tzinfo=FixedOffset(-5, -30, '-05:30')),
- TIME_EXT_COMPLETE + TZ_EXT),
- ('15:27:46-0545', time(15, 27, 46,
- tzinfo=FixedOffset(-5, -45, '-0545')),
- TIME_EXT_COMPLETE + TZ_BAS),
- ('1:17:30', None, TIME_EXT_COMPLETE)]
+TEST_CASES = [
+ ("232050", time(23, 20, 50), TIME_BAS_COMPLETE + TZ_BAS),
+ ("23:20:50", time(23, 20, 50), TIME_EXT_COMPLETE + TZ_EXT),
+ ("2320", time(23, 20), TIME_BAS_MINUTE),
+ ("23:20", time(23, 20), TIME_EXT_MINUTE),
+ ("23", time(23), TIME_HOUR),
+ ("232050,5", time(23, 20, 50, 500000), None),
+ ("23:20:50.5", time(23, 20, 50, 500000), None),
+ # test precision
+ ("15:33:42.123456", time(15, 33, 42, 123456), None),
+ ("15:33:42.1234564", time(15, 33, 42, 123456), None),
+ ("15:33:42.1234557", time(15, 33, 42, 123455), None),
+ (
+ "10:59:59.9999999Z",
+ time(10, 59, 59, 999999, tzinfo=UTC),
+ None,
+ ), # TIME_EXT_COMPLETE + TZ_EXT),
+ ("2320,8", time(23, 20, 48), None),
+ ("23:20,8", time(23, 20, 48), None),
+ ("23,3", time(23, 18), None),
+ ("232030Z", time(23, 20, 30, tzinfo=UTC), TIME_BAS_COMPLETE + TZ_BAS),
+ ("2320Z", time(23, 20, tzinfo=UTC), TIME_BAS_MINUTE + TZ_BAS),
+ ("23Z", time(23, tzinfo=UTC), TIME_HOUR + TZ_BAS),
+ ("23:20:30Z", time(23, 20, 30, tzinfo=UTC), TIME_EXT_COMPLETE + TZ_EXT),
+ ("23:20Z", time(23, 20, tzinfo=UTC), TIME_EXT_MINUTE + TZ_EXT),
+ (
+ "152746+0100",
+ time(15, 27, 46, tzinfo=FixedOffset(1, 0, "+0100")),
+ TIME_BAS_COMPLETE + TZ_BAS,
+ ),
+ (
+ "152746-0500",
+ time(15, 27, 46, tzinfo=FixedOffset(-5, 0, "-0500")),
+ TIME_BAS_COMPLETE + TZ_BAS,
+ ),
+ (
+ "152746+01",
+ time(15, 27, 46, tzinfo=FixedOffset(1, 0, "+01:00")),
+ TIME_BAS_COMPLETE + TZ_HOUR,
+ ),
+ (
+ "152746-05",
+ time(15, 27, 46, tzinfo=FixedOffset(-5, -0, "-05:00")),
+ TIME_BAS_COMPLETE + TZ_HOUR,
+ ),
+ (
+ "15:27:46+01:00",
+ time(15, 27, 46, tzinfo=FixedOffset(1, 0, "+01:00")),
+ TIME_EXT_COMPLETE + TZ_EXT,
+ ),
+ (
+ "15:27:46-05:00",
+ time(15, 27, 46, tzinfo=FixedOffset(-5, -0, "-05:00")),
+ TIME_EXT_COMPLETE + TZ_EXT,
+ ),
+ (
+ "15:27:46+01",
+ time(15, 27, 46, tzinfo=FixedOffset(1, 0, "+01:00")),
+ TIME_EXT_COMPLETE + TZ_HOUR,
+ ),
+ (
+ "15:27:46-05",
+ time(15, 27, 46, tzinfo=FixedOffset(-5, -0, "-05:00")),
+ TIME_EXT_COMPLETE + TZ_HOUR,
+ ),
+ (
+ "15:27:46-05:30",
+ time(15, 27, 46, tzinfo=FixedOffset(-5, -30, "-05:30")),
+ TIME_EXT_COMPLETE + TZ_EXT,
+ ),
+ (
+ "15:27:46-0545",
+ time(15, 27, 46, tzinfo=FixedOffset(-5, -45, "-0545")),
+ TIME_EXT_COMPLETE + TZ_BAS,
+ ),
+ ("1:17:30", None, TIME_EXT_COMPLETE),
+]
def create_testcase(timestring, expectation, format):
@@ -101,15 +101,15 @@ def create_testcase(timestring, expectation, format):
"""
class TestTime(unittest.TestCase):
- '''
+ """
A test case template to parse an ISO time string into a time
object.
- '''
+ """
def test_parse(self):
- '''
+ """
Parse an ISO time string and compare it to the expected value.
- '''
+ """
if expectation is None:
self.assertRaises(ISO8601Error, parse_time, timestring)
else:
@@ -117,24 +117,22 @@ def create_testcase(timestring, expectation, format):
self.assertEqual(result, expectation)
def test_format(self):
- '''
+ """
Take time object and create ISO string from it.
This is the reverse test to test_parse.
- '''
+ """
if expectation is None:
- self.assertRaises(AttributeError,
- time_isoformat, expectation, format)
+ self.assertRaises(AttributeError, time_isoformat, expectation, format)
elif format is not None:
- self.assertEqual(time_isoformat(expectation, format),
- timestring)
+ self.assertEqual(time_isoformat(expectation, format), timestring)
return unittest.TestLoader().loadTestsFromTestCase(TestTime)
def test_suite():
- '''
+ """
Construct a TestSuite instance for all test cases.
- '''
+ """
suite = unittest.TestSuite()
for timestring, expectation, format in TEST_CASES:
suite.addTest(create_testcase(timestring, expectation, format))
@@ -146,5 +144,5 @@ def load_tests(loader, tests, pattern):
return test_suite()
-if __name__ == '__main__':
- unittest.main(defaultTest='test_suite')
+if __name__ == "__main__":
+ unittest.main(defaultTest="test_suite")