def test_hashing(self): if sys.version_info < (3, 8): self.assertEqual(hash(Timezone.fromstring('+05:00')), 1289844826723787395) else: self.assertEqual(hash(Timezone.fromstring('+05:00')), 7009945331308913293)
def test_eq_operator(self): tz = Timezone.fromstring('-05:00') mkdt = DateTime.fromstring self.assertTrue(mkdt("2002-04-02T12:00:00-01:00") == mkdt("2002-04-02T17:00:00+04:00")) self.assertFalse(mkdt("2002-04-02T12:00:00") == mkdt("2002-04-02T23:00:00+06:00")) self.assertFalse(mkdt("2002-04-02T12:00:00") == mkdt("2002-04-02T17:00:00")) self.assertTrue(mkdt("2002-04-02T12:00:00") == mkdt("2002-04-02T12:00:00")) self.assertTrue(mkdt("2002-04-02T23:00:00-04:00") == mkdt("2002-04-03T02:00:00-01:00")) self.assertTrue(mkdt("1999-12-31T24:00:00") == mkdt("1999-12-31T00:00:00")) self.assertTrue(mkdt("2005-04-04T24:00:00") == mkdt("2005-04-04T00:00:00")) self.assertTrue(mkdt("2002-04-02T12:00:00-01:00", tz) == mkdt("2002-04-02T17:00:00+04:00", tz)) self.assertTrue(mkdt("2002-04-02T12:00:00", tz) == mkdt("2002-04-02T23:00:00+06:00", tz)) self.assertFalse(mkdt("2002-04-02T12:00:00", tz) == mkdt("2002-04-02T17:00:00", tz)) self.assertTrue(mkdt("2002-04-02T12:00:00", tz) == mkdt("2002-04-02T12:00:00", tz)) self.assertTrue(mkdt("2002-04-02T23:00:00-04:00", tz) == mkdt("2002-04-03T02:00:00-01:00", tz)) self.assertTrue(mkdt("1999-12-31T24:00:00", tz) == mkdt("1999-12-31T00:00:00", tz)) self.assertTrue(mkdt("2005-04-04T24:00:00", tz) == mkdt("2005-04-04T00:00:00", tz)) self.assertFalse(mkdt("2005-04-04T24:00:00", tz) != mkdt("2005-04-04T00:00:00", tz)) self.assertTrue(DateTime.fromstring("-1000-01-01") == DateTime.fromstring("-1000-01-01")) self.assertTrue(DateTime.fromstring("-10000-01-01") == DateTime.fromstring("-10000-01-01")) self.assertFalse(DateTime.fromstring("20000-01-01") != DateTime.fromstring("20000-01-01")) self.assertFalse(DateTime.fromstring("-10000-01-02") == DateTime.fromstring("-10000-01-01"))
def test_as_string(self): self.assertEqual(str(Timezone.fromstring('+05:00')), '+05:00') self.assertEqual(str(Timezone.fromstring('-13:15')), '-13:15')
def test_init_format(self): self.assertEqual(Timezone.fromstring('Z').offset, datetime.timedelta(0)) self.assertEqual(Timezone.fromstring('00:00').offset, datetime.timedelta(0)) self.assertEqual(Timezone.fromstring('+00:00').offset, datetime.timedelta(0)) self.assertEqual(Timezone.fromstring('-00:00').offset, datetime.timedelta(0)) self.assertEqual(Timezone.fromstring('-0:0').offset, datetime.timedelta(0)) self.assertEqual(Timezone.fromstring('+05:15').offset, datetime.timedelta(hours=5, minutes=15)) self.assertEqual(Timezone.fromstring('-11:00').offset, datetime.timedelta(hours=-11)) self.assertEqual(Timezone.fromstring('+13:59').offset, datetime.timedelta(hours=13, minutes=59)) self.assertEqual(Timezone.fromstring('-13:59').offset, datetime.timedelta(hours=-13, minutes=-59)) self.assertEqual(Timezone.fromstring('+14:00').offset, datetime.timedelta(hours=14)) self.assertEqual(Timezone.fromstring('-14:00').offset, datetime.timedelta(hours=-14)) self.assertRaises(ValueError, Timezone.fromstring, '-15:00') self.assertRaises(ValueError, Timezone.fromstring, '-14:01') self.assertRaises(ValueError, Timezone.fromstring, '+14:01') self.assertRaises(ValueError, Timezone.fromstring, '+10') self.assertRaises(ValueError, Timezone.fromstring, '+10:00:00')
def test_ne_operator(self): self.assertNotEqual(Timezone.fromstring('+05:00'), Timezone.fromstring('+06:00'))