def test_tzname(self): assert 'UTC' in timezone.utc.tzname(None) assert 'UTC' in timezone(ZERO).tzname(None) assert 'UTC-05:00' == timezone(timedelta(hours=-5)).tzname(None) assert 'UTC+09:30' == timezone(timedelta(hours=9.5)).tzname(None) assert 'UTC-00:01' == timezone(timedelta(minutes=-1)).tzname(None) assert 'XYZ' == timezone(-5 * HOUR, 'XYZ').tzname(None) with pytest.raises(TypeError): self.EST.tzname('') with pytest.raises(TypeError): self.EST.tzname(5)
def test_utcoffset(self): dummy = self.DT for h in [0, 1.5, 12]: offset = h * HOUR.total_seconds() offset = timedelta(seconds=offset) self.assertEqual(offset, timezone(offset).utcoffset(dummy)) self.assertEqual(-offset, timezone(-offset).utcoffset(dummy)) with self.assertRaises(TypeError): self.EST.utcoffset('') with self.assertRaises(TypeError): self.EST.utcoffset(5)
def test_utcoffset(self): dummy = self.DT for h in [0, 1.5, 12]: offset = h * HOUR.total_seconds() offset = timedelta(seconds=offset) assert offset == timezone(offset).utcoffset(dummy) assert -offset == timezone(-offset).utcoffset(dummy) with pytest.raises(TypeError): self.EST.utcoffset('') with pytest.raises(TypeError): self.EST.utcoffset(5)
def test_tzname(self): self.assertTrue('UTC' in timezone.utc.tzname(None)) self.assertTrue('UTC' in timezone(ZERO).tzname(None)) self.assertEqual('UTC-05:00', timezone(timedelta( hours=-5)).tzname(None)) self.assertEqual('UTC+09:30', timezone(timedelta( hours=9.5)).tzname(None)) self.assertEqual('UTC-00:01', timezone(timedelta(minutes=-1)).tzname(None)) self.assertEqual('XYZ', timezone(-5 * HOUR, 'XYZ').tzname(None)) with self.assertRaises(TypeError): self.EST.tzname('') with self.assertRaises(TypeError): self.EST.tzname(5)
def test_tzname(self): self.assertTrue('UTC' in timezone.utc.tzname(None)) self.assertTrue('UTC' in timezone(ZERO).tzname(None)) self.assertEqual('UTC-05:00', timezone(timedelta(hours=-5)).tzname(None)) self.assertEqual('UTC+09:30', timezone(timedelta(hours=9.5)).tzname(None)) self.assertEqual('UTC-00:01', timezone(timedelta(minutes=-1)).tzname(None)) self.assertEqual('XYZ', timezone(-5 * HOUR, 'XYZ').tzname(None)) with self.assertRaises(TypeError): self.EST.tzname('') with self.assertRaises(TypeError): self.EST.tzname(5)
def test_date_time(self): """DT conversion to datetime.datetime ...""" dicom_datetime = "1961" dt = valuerep.DT(dicom_datetime) # Assert `dt` equals to correct `datetime` assert datetime(1961, 1, 1) == dt # Assert `dt.__repr__` holds original string assert '"{0}"'.format(dicom_datetime) == repr(dt) dicom_datetime = "19610804" dt = valuerep.DT(dicom_datetime) # Assert `dt` equals to correct `datetime` assert datetime(1961, 8, 4) == dt # Assert `dt.__repr__` holds original string assert '"{0}"'.format(dicom_datetime) == repr(dt) dicom_datetime = "19610804192430.123" dt = valuerep.DT(dicom_datetime) # Assert `dt` equals to correct `datetime` assert datetime(1961, 8, 4, 19, 24, 30, 123000) == dt # Assert `dt.__repr__` holds original string assert '"{0}"'.format(dicom_datetime) == repr(dt) dicom_datetime = "196108041924-1000" dt = valuerep.DT(dicom_datetime) # Assert `dt` equals to correct `datetime` datetime_datetime = datetime(1961, 8, 4, 19, 24, 0, 0, timezone(timedelta(seconds=-10 * 3600))) assert datetime_datetime == dt assert timedelta(0, 0, 0, 0, 0, -10) == dt.utcoffset() # Assert `dt.__repr__` holds original string assert '"{0}"'.format(dicom_datetime) == repr(dt)
def testDateTime(self): """DT conversion to datetime.datetime ...""" dicom_datetime = "1961" dt = valuerep.DT(dicom_datetime) datetime_datetime = datetime(1961, 1, 1) self.assertEqual(dt, datetime_datetime, ("DT {0} not equal to datetime {1}".format( dicom_datetime, datetime_datetime))) dicom_datetime = "19610804" dt = valuerep.DT(dicom_datetime) datetime_datetime = datetime(1961, 8, 4) self.assertEqual(dt, datetime_datetime, ("DT {0} not equal to datetime {1}".format( dicom_datetime, datetime_datetime))) dicom_datetime = "19610804192430.123" dt = valuerep.DT(dicom_datetime) datetime_datetime = datetime(1961, 8, 4, 19, 24, 30, 123000) self.assertEqual(dt, datetime_datetime, ("DT {0} not equal to datetime {1}".format( dicom_datetime, datetime_datetime))) dicom_datetime = "196108041924-1000" dt = valuerep.DT(dicom_datetime) datetime_datetime = datetime(1961, 8, 4, 19, 24, 0, 0, timezone(timedelta(seconds=-10 * 3600))) self.assertEqual(dt, datetime_datetime, ("DT {0} not equal to datetime {1}".format( dicom_datetime, datetime_datetime))) self.assertEqual(dt.utcoffset(), timedelta(0, 0, 0, 0, 0, -10), "DT offset did not compare correctly to timedelta")
def testDateTime(self): """DT conversion to datetime.datetime ...""" dicom_datetime = "1961" dt = valuerep.DT(dicom_datetime) datetime_datetime = datetime(1961, 1, 1) self.assertEqual(dt, datetime_datetime, ("DT {0} not equal to datetime {1}" .format(dicom_datetime, datetime_datetime))) dicom_datetime = "19610804" dt = valuerep.DT(dicom_datetime) datetime_datetime = datetime(1961, 8, 4) self.assertEqual(dt, datetime_datetime, ("DT {0} not equal to datetime {1}" .format(dicom_datetime, datetime_datetime))) dicom_datetime = "19610804192430.123" dt = valuerep.DT(dicom_datetime) datetime_datetime = datetime(1961, 8, 4, 19, 24, 30, 123000) self.assertEqual(dt, datetime_datetime, ("DT {0} not equal to datetime {1}" .format(dicom_datetime, datetime_datetime))) dicom_datetime = "196108041924-1000" dt = valuerep.DT(dicom_datetime) datetime_datetime = datetime(1961, 8, 4, 19, 24, 0, 0, timezone(timedelta(seconds=-10 * 3600))) self.assertEqual(dt, datetime_datetime, ("DT {0} not equal to datetime {1}" .format(dicom_datetime, datetime_datetime))) self.assertEqual(dt.utcoffset(), timedelta(0, 0, 0, 0, 0, -10), "DT offset did not compare correctly to timedelta")
def test_constructor(self): self.assertIs(timezone.utc, timezone(timedelta(0))) self.assertIsNot(timezone.utc, timezone(timedelta(0), 'UTC')) self.assertEqual(timezone.utc, timezone(timedelta(0), 'UTC')) # invalid offsets for invalid in [ timedelta(microseconds=1), timedelta(1, 1), timedelta(seconds=1), timedelta(1), -timedelta(1) ]: self.assertRaises(ValueError, timezone, invalid) self.assertRaises(ValueError, timezone, -invalid) with self.assertRaises(TypeError): timezone(None) with self.assertRaises(TypeError): timezone(42) with self.assertRaises(TypeError): timezone(ZERO, None) with self.assertRaises(TypeError): timezone(ZERO, 42) with self.assertRaises(TypeError): timezone(ZERO, 'ABC', 'extra')
def testDateTime(self): """DT conversion to datetime.datetime ...""" dicom_datetime = "1961" dt = valuerep.DT(dicom_datetime) # Assert `dt` equals to correct `datetime` datetime_datetime = datetime(1961, 1, 1) self.assertEqual(dt, datetime_datetime, ("DT {0} not equal to datetime {1}" .format(dicom_datetime, datetime_datetime))) # Assert `dt.__repr__` holds original string self.assertEqual(repr(dt), '"{0}"'.format(dicom_datetime), ('DT {0} string representation is not equal to ' 'original DICOM string: {1}' .format(dt, dicom_datetime))) dicom_datetime = "19610804" dt = valuerep.DT(dicom_datetime) # Assert `dt` equals to correct `datetime` datetime_datetime = datetime(1961, 8, 4) self.assertEqual(dt, datetime_datetime, ("DT {0} not equal to datetime {1}" .format(dicom_datetime, datetime_datetime))) # Assert `dt.__repr__` holds original string self.assertEqual(repr(dt), '"{0}"'.format(dicom_datetime), ('DT {0} string representation is not equal to ' 'original DICOM string: {1}' .format(dt, dicom_datetime))) dicom_datetime = "19610804192430.123" dt = valuerep.DT(dicom_datetime) # Assert `dt` equals to correct `datetime` datetime_datetime = datetime(1961, 8, 4, 19, 24, 30, 123000) self.assertEqual(dt, datetime_datetime, ("DT {0} not equal to datetime {1}" .format(dicom_datetime, datetime_datetime))) # Assert `dt.__repr__` holds original string self.assertEqual(repr(dt), '"{0}"'.format(dicom_datetime), ('DT {0} string representation is not equal to ' 'original DICOM string: {1}' .format(dt, dicom_datetime))) dicom_datetime = "196108041924-1000" dt = valuerep.DT(dicom_datetime) # Assert `dt` equals to correct `datetime` datetime_datetime = datetime(1961, 8, 4, 19, 24, 0, 0, timezone(timedelta(seconds=-10 * 3600))) self.assertEqual(dt, datetime_datetime, ("DT {0} not equal to datetime {1}" .format(dicom_datetime, datetime_datetime))) self.assertEqual(dt.utcoffset(), timedelta(0, 0, 0, 0, 0, -10), "DT offset did not compare correctly to timedelta") # Assert `dt.__repr__` holds original string self.assertEqual(repr(dt), '"{0}"'.format(dicom_datetime), ('DT {0} string representation is not equal to ' 'original DICOM string: {1}' .format(dt, dicom_datetime)))
def test_constructor(self): assert timezone.utc is timezone(timedelta(0)) assert timezone.utc is not timezone(timedelta(0), 'UTC') assert timezone(timedelta(0), 'UTC') == timezone.utc # invalid offsets for invalid in [ timedelta(microseconds=1), timedelta(1, 1), timedelta(seconds=1), timedelta(1), -timedelta(1) ]: with pytest.raises(ValueError): timezone(invalid) with pytest.raises(ValueError): timezone(-invalid) with pytest.raises(TypeError): timezone(None) with pytest.raises(TypeError): timezone(42) with pytest.raises(TypeError): timezone(ZERO, None) with pytest.raises(TypeError): timezone(ZERO, 42) with pytest.raises(TypeError): timezone(ZERO, 'ABC', 'extra')
def setUp(self): self.ACDT = timezone(timedelta(hours=9.5), 'ACDT') self.EST = timezone(-timedelta(hours=5), 'EST') self.DT = datetime(2010, 1, 1)
def test_constructor(self): self.assertIs(timezone.utc, timezone(timedelta(0))) self.assertIsNot(timezone.utc, timezone(timedelta(0), 'UTC')) self.assertEqual(timezone.utc, timezone(timedelta(0), 'UTC')) # invalid offsets for invalid in [timedelta(microseconds=1), timedelta(1, 1), timedelta(seconds=1), timedelta(1), -timedelta(1)]: self.assertRaises(ValueError, timezone, invalid) self.assertRaises(ValueError, timezone, -invalid) with self.assertRaises(TypeError): timezone(None) with self.assertRaises(TypeError): timezone(42) with self.assertRaises(TypeError): timezone(ZERO, None) with self.assertRaises(TypeError): timezone(ZERO, 42) with self.assertRaises(TypeError): timezone(ZERO, 'ABC', 'extra')
def test_comparison(self): assert timezone(ZERO) != timezone(HOUR) assert timezone(HOUR) == timezone(HOUR) assert timezone(-5 * HOUR) == timezone(-5 * HOUR, 'EST') with pytest.raises(TypeError): timezone(ZERO) < timezone(ZERO) assert timezone(ZERO) in {timezone(ZERO)} assert timezone(ZERO) is not None assert not timezone(ZERO) is None assert 'random' != timezone(ZERO)
def test_comparison(self): self.assertNotEqual(timezone(ZERO), timezone(HOUR)) self.assertEqual(timezone(HOUR), timezone(HOUR)) self.assertEqual(timezone(-5 * HOUR), timezone(-5 * HOUR, 'EST')) with self.assertRaises(TypeError): timezone(ZERO) < timezone(ZERO) self.assertIn(timezone(ZERO), {timezone(ZERO)}) self.assertTrue(timezone(ZERO) is not None) self.assertFalse(timezone(ZERO) is None) self.assertNotEqual(timezone(ZERO), 'random')
def _utc_offset(offset, name): return timezone(timedelta(seconds=offset), name)