98 lines
3.3 KiB
Python
98 lines
3.3 KiB
Python
import datetime
|
|
import unittest
|
|
import pytz
|
|
|
|
from wsme import utils
|
|
|
|
|
|
class TestUtils(unittest.TestCase):
|
|
def test_parse_isodate(self):
|
|
good_dates = [
|
|
('2008-02-01', datetime.date(2008, 2, 1)),
|
|
('2009-01-04', datetime.date(2009, 1, 4)),
|
|
]
|
|
ill_formatted_dates = [
|
|
'24-12-2004'
|
|
]
|
|
out_of_range_dates = [
|
|
'0000-00-00',
|
|
'2012-02-30',
|
|
]
|
|
for s, d in good_dates:
|
|
assert utils.parse_isodate(s) == d
|
|
for s in ill_formatted_dates + out_of_range_dates:
|
|
self.assertRaises(ValueError, utils.parse_isodate, s)
|
|
|
|
def test_parse_isotime(self):
|
|
good_times = [
|
|
('12:03:54', datetime.time(12, 3, 54)),
|
|
('23:59:59.000004', datetime.time(23, 59, 59, 4)),
|
|
('01:02:03+00:00', datetime.time(1, 2, 3, 0, pytz.UTC)),
|
|
('01:02:03+23:59', datetime.time(1, 2, 3, 0,
|
|
pytz.FixedOffset(1439))),
|
|
('01:02:03-23:59', datetime.time(1, 2, 3, 0,
|
|
pytz.FixedOffset(-1439))),
|
|
]
|
|
ill_formatted_times = [
|
|
'24-12-2004'
|
|
]
|
|
out_of_range_times = [
|
|
'32:12:00',
|
|
'00:54:60',
|
|
'01:02:03-24:00',
|
|
'01:02:03+24:00',
|
|
]
|
|
for s, t in good_times:
|
|
assert utils.parse_isotime(s) == t
|
|
for s in ill_formatted_times + out_of_range_times:
|
|
self.assertRaises(ValueError, utils.parse_isotime, s)
|
|
|
|
def test_parse_isodatetime(self):
|
|
good_datetimes = [
|
|
('2008-02-12T12:03:54',
|
|
datetime.datetime(2008, 2, 12, 12, 3, 54)),
|
|
('2012-05-14T23:59:59.000004',
|
|
datetime.datetime(2012, 5, 14, 23, 59, 59, 4)),
|
|
('1856-07-10T01:02:03+00:00',
|
|
datetime.datetime(1856, 7, 10, 1, 2, 3, 0, pytz.UTC)),
|
|
('1856-07-10T01:02:03+23:59',
|
|
datetime.datetime(1856, 7, 10, 1, 2, 3, 0,
|
|
pytz.FixedOffset(1439))),
|
|
('1856-07-10T01:02:03-23:59',
|
|
datetime.datetime(1856, 7, 10, 1, 2, 3, 0,
|
|
pytz.FixedOffset(-1439))),
|
|
]
|
|
ill_formatted_datetimes = [
|
|
'24-32-2004',
|
|
'1856-07-10+33:00'
|
|
]
|
|
out_of_range_datetimes = [
|
|
'2008-02-12T32:12:00',
|
|
'2012-13-12T00:54:60',
|
|
]
|
|
for s, t in good_datetimes:
|
|
assert utils.parse_isodatetime(s) == t
|
|
for s in ill_formatted_datetimes + out_of_range_datetimes:
|
|
self.assertRaises(ValueError, utils.parse_isodatetime, s)
|
|
|
|
def test_validator_with_valid_code(self):
|
|
valid_code = 404
|
|
self.assertTrue(
|
|
utils.is_valid_code(valid_code),
|
|
"Valid status code not detected"
|
|
)
|
|
|
|
def test_validator_with_invalid_int_code(self):
|
|
invalid_int_code = 648
|
|
self.assertFalse(
|
|
utils.is_valid_code(invalid_int_code),
|
|
"Invalid status code not detected"
|
|
)
|
|
|
|
def test_validator_with_invalid_str_code(self):
|
|
invalid_str_code = '404'
|
|
self.assertFalse(
|
|
utils.is_valid_code(invalid_str_code),
|
|
"Invalid status code not detected"
|
|
)
|