コード例 #1
0
    def test_extended_datetime_arithmetic(self):
        zone = util.create_timezone(timedelta(hours=12, minutes=45))
        ext_dt = util.extended_datetime(0, 12, 31, 9, 17, 45, 14889, zone)
        self.assertEqual(ext_dt + timedelta(hours=20),
                         datetime(1, 1, 1, 5, 17, 45, 14889, zone))
        self.assertEqual(
            ext_dt - timedelta(hours=20),
            util.extended_datetime(0, 12, 30, 13, 17, 45, 14889, zone))
        self.assertEqual(ext_dt - ext_dt, timedelta(0))

        zone2 = util.create_timezone(timedelta(hours=-8, minutes=-31))
        ext_dt2 = util.extended_datetime(0, 11, 14, 13, 44, 20, 876543, zone2)
        expected_diff = timedelta(days=47,
                                  hours=-4,
                                  minutes=-27,
                                  seconds=25,
                                  microseconds=-861654)
        expected_diff -= timedelta(hours=20, minutes=76)
        self.assertEqual(ext_dt - ext_dt2, expected_diff)

        dt = datetime(400, 12, 31, 9, 17, 45, 14889, zone)
        self.assertEqual(
            dt - ext_dt,
            timedelta(days=util.extended_datetime.DAYS_IN_400_YEARS))
        self.assertEqual(
            ext_dt - dt,
            -timedelta(days=util.extended_datetime.DAYS_IN_400_YEARS))

        with self.assertRaises(TypeError):
            ext_dt - "test"
コード例 #2
0
 def test_extended_datetime_replace(self):
     zone = util.create_timezone(timedelta(hours=12, minutes=45))
     ext_dt = util.extended_datetime(0, 1, 1, 23, tzinfo=zone)
     self.assertEqual(ext_dt.replace(year=2040, minute=59),
                      datetime(2040, 1, 1, 23, 59, tzinfo=zone))
     self.assertEqual(ext_dt.replace(minute=59),
                      util.extended_datetime(0, 1, 1, 23, 59, tzinfo=zone))
コード例 #3
0
 def test_extended_datetime_isoformat(self):
     self.assertEqual('0000-01-01T00:00:00',
                      util.extended_datetime(0, 1, 1).isoformat())
     self.assertEqual(
         '0000-01-01T00:00:00.001000',
         util.extended_datetime(0, 1, 1, microsecond=1000).isoformat())
     self.assertEqual('0000-01-01%00:00:00',
                      util.extended_datetime(0, 1, 1).isoformat(sep='%'))
コード例 #4
0
 def test_extended_datetime_compare_tzinfo(self):
     with self.assertRaises(TypeError):
         self.assertTrue(
             util.extended_datetime(0, 1, 1, tzinfo=utc) < datetime(
                 1, 1, 1))
     with self.assertRaises(TypeError):
         self.assertTrue(
             util.extended_datetime(0, 1, 1) < datetime(1, 1, 1, tzinfo=utc)
         )
コード例 #5
0
ファイル: test_util.py プロジェクト: tarker/asn1crypto
    def test_extended_datetime_encodings(self):
        zone = util.create_timezone(timedelta(hours=12, minutes=45))

        # test with microseconds
        ext_dt = util.extended_datetime(0, 2, 29, 9, 17, 45, 14889, zone)
        self.assertEqual(str(ext_dt), '0000-02-29 09:17:45.014889+12:45')
        if py2:
            self.assertEqual(unicode(ext_dt), '0000-02-29 09:17:45.014889+12:45')  # noqa: F821

        # test without microseconds
        ext_dt = util.extended_datetime(0, 2, 29, 9, 17, 45, 0, zone)
        self.assertEqual(str(ext_dt), '0000-02-29 09:17:45+12:45')
        if py2:
            self.assertEqual(unicode(ext_dt), '0000-02-29 09:17:45+12:45')  # noqa: F821
コード例 #6
0
 def test_extended_datetime_timestamp(self):
     if sys.version_info >= (3, 3):
         zone = util.create_timezone(timedelta(hours=12, minutes=45))
         ext_dt = util.extended_datetime(0, 12, 31, 23, 0, 0, 14889, zone)
         dt = datetime(1, 1, 1, 0, 0, 0, 14889, zone)
         self.assertTrue(
             abs(dt.timestamp() - ext_dt.timestamp() - 3600.0) < 0.0000001)
コード例 #7
0
 def test_extended_datetime_properties(self):
     zone = util.create_timezone(timedelta(hours=12, minutes=45))
     dt = util.extended_datetime(0, 11, 27, 5, 44, 31, 14889, zone)
     self.assertEqual(dt.year, 0)
     self.assertEqual(dt.month, 11)
     self.assertEqual(dt.day, 27)
     self.assertEqual(dt.hour, 5)
     self.assertEqual(dt.minute, 44)
     self.assertEqual(dt.second, 31)
     self.assertEqual(dt.microsecond, 14889)
     self.assertEqual(dt.tzinfo, zone)
コード例 #8
0
ファイル: test_util.py プロジェクト: tarker/asn1crypto
 def test_extended_datetime_strftime(self):
     self.assertEqual('0000-01-01 00:00:00', util.extended_datetime(0, 1, 1).strftime('%Y-%m-%d %H:%M:%S'))
     self.assertEqual('Sat Saturday Jan January', util.extended_datetime(0, 1, 1).strftime('%a %A %b %B'))
     self.assertEqual('Tue Tuesday Feb February 29', util.extended_datetime(0, 2, 29).strftime('%a %A %b %B %d'))
     if sys.platform == 'win32' and sys.version_info < (3, 5) and platform.python_implementation() != 'PyPy':
         self.assertEqual('01/01/00 00:00:00', util.extended_datetime(0, 1, 1).strftime('%c'))
     else:
         self.assertEqual('Sat Jan  1 00:00:00 0000', util.extended_datetime(0, 1, 1).strftime('%c'))
     self.assertEqual('01/01/00', util.extended_datetime(0, 1, 1).strftime('%x'))
     self.assertEqual('%Y', util.extended_datetime(0, 1, 1).strftime('%%Y'))
コード例 #9
0
ファイル: test_util.py プロジェクト: joernheissler/asn1crypto
 def test_extended_datetime_strftime(self):
     self.assertEqual('0000-01-01 00:00:00', util.extended_datetime(0, 1, 1).strftime('%Y-%m-%d %H:%M:%S'))
     self.assertEqual('Sat Saturday Jan January', util.extended_datetime(0, 1, 1).strftime('%a %A %b %B'))
     self.assertEqual('Tue Tuesday Feb February 29', util.extended_datetime(0, 2, 29).strftime('%a %A %b %B %d'))
     if sys.platform == 'win32' and sys.version_info < (3, 5):
         self.assertEqual('01/01/00 00:00:00', util.extended_datetime(0, 1, 1).strftime('%c'))
     else:
         self.assertEqual('Sat Jan  1 00:00:00 0000', util.extended_datetime(0, 1, 1).strftime('%c'))
     self.assertEqual('01/01/00', util.extended_datetime(0, 1, 1).strftime('%x'))
コード例 #10
0
ファイル: test_util.py プロジェクト: zdw/asn1crypto
 def test_extended_datetime_strftime(self):
     self.assertEqual('0000-01-01 00:00:00', util.extended_datetime(0, 1, 1).strftime('%Y-%m-%d %H:%M:%S'))
     self.assertEqual('Sat Saturday Jan January', util.extended_datetime(0, 1, 1).strftime('%a %A %b %B'))
     self.assertEqual('Tue Tuesday Feb February 29', util.extended_datetime(0, 2, 29).strftime('%a %A %b %B %d'))
     if sys.platform == 'win32':
         self.assertEqual('01/01/00 00:00:00', util.extended_datetime(0, 1, 1).strftime('%c'))
     else:
         self.assertEqual('Sat Jan  1 00:00:00 0000', util.extended_datetime(0, 1, 1).strftime('%c'))
     self.assertEqual('01/01/00', util.extended_datetime(0, 1, 1).strftime('%x'))
コード例 #11
0
ファイル: test_core.py プロジェクト: zzazzles/asn1crypto
    def generalized_time_info():
        def tz(hours, minutes=0):
            return util.create_timezone(timedelta(hours=hours,
                                                  minutes=minutes))

        return (
            (b'\x18\x1520180405062426.0+0200',
             datetime(2018, 4, 5, 6, 24, 26, 0,
                      tz(2)), b'\x18\x0f20180405042426Z'),
            (b'\x18\x0f2018062419-1355',
             datetime(2018, 6, 24, 19, 0, 0, 0,
                      tz(-13, -55)), b'\x18\x0f20180625085500Z'),
            (b'\x18\x0d2018062419-13',
             datetime(2018, 6, 24, 19, 0, 0, 0,
                      tz(-13)), b'\x18\x0f20180625080000Z'),
            (b'\x18\x0b2018062419Z', datetime(2018, 6, 24, 19, 0, 0, 0, tz(0)),
             b'\x18\x0f20180624190000Z'),
            (b'\x18\x122018062419.15+0345',
             datetime(2018, 6, 24, 19, 9, 0, 0,
                      tz(3, 45)), b'\x18\x0f20180624152400Z'),
            (
                b'\x18\x13201806241957,433+02',
                datetime(2018, 6, 24, 19, 57, 25, 980000, tz(2)),
                b'\x18\x1220180624175725.98Z',
            ),
            (
                b'\x18\x1620180624195724.215999Z',
                datetime(2018, 6, 24, 19, 57, 24, 215999, tz(0)),
                b'\x18\x1620180624195724.215999Z',
            ),
            (
                b'\x18\x150000022910.31337-0815',
                util.extended_datetime(0, 2, 29, 10, 18, 48, 132000,
                                       tz(-8, -15)),
                b'\x18\x1300000229183348.132Z',
            ),
            (b'\x18\x1520180624195724.215999',
             datetime(2018, 6, 24, 19, 57, 24, 215999), None),
            (b'\x18\x0a2018062419', datetime(2018, 6, 24, 19, 0, 0, 0), None),
        )
コード例 #12
0
    def test_extended_datetime_compare(self):
        self.assertTrue(util.extended_datetime(0, 1, 1) < datetime(1, 1, 1))
        self.assertTrue(util.extended_datetime(0, 1, 1) <= datetime(1, 1, 1))
        self.assertTrue(util.extended_datetime(0, 1, 1) != datetime(1, 1, 1))
        self.assertFalse(util.extended_datetime(0, 1, 1) == datetime(1, 1, 1))
        self.assertFalse(util.extended_datetime(0, 1, 1) >= datetime(1, 1, 1))
        self.assertFalse(util.extended_datetime(0, 1, 1) > datetime(1, 1, 1))

        self.assertFalse(
            util.extended_datetime(0, 1, 1) < util.extended_datetime(0, 1, 1))
        self.assertTrue(
            util.extended_datetime(0, 1, 1) <= util.extended_datetime(0, 1, 1))
        self.assertFalse(
            util.extended_datetime(0, 1, 1) != util.extended_datetime(0, 1, 1))
        self.assertTrue(
            util.extended_datetime(0, 1, 1) == util.extended_datetime(0, 1, 1))
        self.assertTrue(
            util.extended_datetime(0, 1, 1) >= util.extended_datetime(0, 1, 1))
        self.assertFalse(
            util.extended_datetime(0, 1, 1) > util.extended_datetime(0, 1, 1))

        self.assertTrue(
            util.extended_datetime(0, 1, 1) < util.extended_datetime(0, 1, 2))
        self.assertTrue(
            util.extended_datetime(0, 1, 1) <= util.extended_datetime(0, 1, 2))
        self.assertTrue(
            util.extended_datetime(0, 1, 1) != util.extended_datetime(0, 1, 2))
        self.assertFalse(
            util.extended_datetime(0, 1, 1) == util.extended_datetime(0, 1, 2))
        self.assertFalse(
            util.extended_datetime(0, 1, 1) >= util.extended_datetime(0, 1, 2))
        self.assertFalse(
            util.extended_datetime(0, 1, 1) > util.extended_datetime(0, 1, 2))

        self.assertFalse(
            util.extended_datetime(0, 1, 3) < util.extended_datetime(0, 1, 2))
        self.assertFalse(
            util.extended_datetime(0, 1, 3) <= util.extended_datetime(0, 1, 2))
        self.assertTrue(
            util.extended_datetime(0, 1, 3) != util.extended_datetime(0, 1, 2))
        self.assertFalse(
            util.extended_datetime(0, 1, 3) == util.extended_datetime(0, 1, 2))
        self.assertTrue(
            util.extended_datetime(0, 1, 3) >= util.extended_datetime(0, 1, 2))
        self.assertTrue(
            util.extended_datetime(0, 1, 3) > util.extended_datetime(0, 1, 2))
        self.assertTrue(
            util.extended_datetime(0, 12, 31, 21, 4, 5, 6,
                                   util.create_timezone(timedelta(hours=-8)))
            == datetime(1, 1, 1, 5, 4, 5, 6, utc))
        self.assertTrue(
            util.extended_datetime(0, 12, 31, 21, 4, 5, 6,
                                   util.create_timezone(timedelta(hours=-8)))
            == datetime(1, 1, 1, 5, 7, 5, 6,
                        util.create_timezone(timedelta(hours=0, minutes=3))))
        self.assertFalse(
            util.extended_datetime(0, 12, 31, 21, 4, 5, 6,
                                   util.create_timezone(timedelta(hours=-7)))
            == datetime(1, 1, 1, 5, 4, 5, 6, utc))
        self.assertFalse(
            util.extended_datetime(0, 1, 1) == util.extended_datetime(
                0, 1, 1, tzinfo=utc))
        self.assertFalse(util.extended_datetime(0, 1, 1) == "0000-01-01")

        with self.assertRaises(TypeError):
            util.extended_datetime(0, 1, 1) < "0000-01-02"
コード例 #13
0
ファイル: test_util.py プロジェクト: yaggyhub/asn1crypto
    def test_extended_datetime_compare(self):
        self.assertTrue(util.extended_datetime(0, 1, 1) < datetime(1, 1, 1))
        self.assertTrue(util.extended_datetime(0, 1, 1) <= datetime(1, 1, 1))
        self.assertTrue(util.extended_datetime(0, 1, 1) != datetime(1, 1, 1))
        self.assertFalse(util.extended_datetime(0, 1, 1) == datetime(1, 1, 1))
        self.assertFalse(util.extended_datetime(0, 1, 1) >= datetime(1, 1, 1))
        self.assertFalse(util.extended_datetime(0, 1, 1) > datetime(1, 1, 1))

        self.assertFalse(
            util.extended_datetime(0, 1, 1) < util.extended_datetime(0, 1, 1))
        self.assertTrue(
            util.extended_datetime(0, 1, 1) <= util.extended_datetime(0, 1, 1))
        self.assertFalse(
            util.extended_datetime(0, 1, 1) != util.extended_datetime(0, 1, 1))
        self.assertTrue(
            util.extended_datetime(0, 1, 1) == util.extended_datetime(0, 1, 1))
        self.assertTrue(
            util.extended_datetime(0, 1, 1) >= util.extended_datetime(0, 1, 1))
        self.assertFalse(
            util.extended_datetime(0, 1, 1) > util.extended_datetime(0, 1, 1))

        self.assertTrue(
            util.extended_datetime(0, 1, 1) < util.extended_datetime(0, 1, 2))
        self.assertTrue(
            util.extended_datetime(0, 1, 1) <= util.extended_datetime(0, 1, 2))
        self.assertTrue(
            util.extended_datetime(0, 1, 1) != util.extended_datetime(0, 1, 2))
        self.assertFalse(
            util.extended_datetime(0, 1, 1) == util.extended_datetime(0, 1, 2))
        self.assertFalse(
            util.extended_datetime(0, 1, 1) >= util.extended_datetime(0, 1, 2))
        self.assertFalse(
            util.extended_datetime(0, 1, 1) > util.extended_datetime(0, 1, 2))

        self.assertFalse(
            util.extended_datetime(0, 1, 3) < util.extended_datetime(0, 1, 2))
        self.assertFalse(
            util.extended_datetime(0, 1, 3) <= util.extended_datetime(0, 1, 2))
        self.assertTrue(
            util.extended_datetime(0, 1, 3) != util.extended_datetime(0, 1, 2))
        self.assertFalse(
            util.extended_datetime(0, 1, 3) == util.extended_datetime(0, 1, 2))
        self.assertTrue(
            util.extended_datetime(0, 1, 3) >= util.extended_datetime(0, 1, 2))
        self.assertTrue(
            util.extended_datetime(0, 1, 3) > util.extended_datetime(0, 1, 2))
コード例 #14
0
ファイル: test_util.py プロジェクト: joernheissler/asn1crypto
    def test_extended_datetime_compare(self):
        self.assertTrue(util.extended_datetime(0, 1, 1) < datetime(1, 1, 1))
        self.assertTrue(util.extended_datetime(0, 1, 1) <= datetime(1, 1, 1))
        self.assertTrue(util.extended_datetime(0, 1, 1) != datetime(1, 1, 1))
        self.assertFalse(util.extended_datetime(0, 1, 1) == datetime(1, 1, 1))
        self.assertFalse(util.extended_datetime(0, 1, 1) >= datetime(1, 1, 1))
        self.assertFalse(util.extended_datetime(0, 1, 1) > datetime(1, 1, 1))

        self.assertFalse(util.extended_datetime(0, 1, 1) < util.extended_datetime(0, 1, 1))
        self.assertTrue(util.extended_datetime(0, 1, 1) <= util.extended_datetime(0, 1, 1))
        self.assertFalse(util.extended_datetime(0, 1, 1) != util.extended_datetime(0, 1, 1))
        self.assertTrue(util.extended_datetime(0, 1, 1) == util.extended_datetime(0, 1, 1))
        self.assertTrue(util.extended_datetime(0, 1, 1) >= util.extended_datetime(0, 1, 1))
        self.assertFalse(util.extended_datetime(0, 1, 1) > util.extended_datetime(0, 1, 1))

        self.assertTrue(util.extended_datetime(0, 1, 1) < util.extended_datetime(0, 1, 2))
        self.assertTrue(util.extended_datetime(0, 1, 1) <= util.extended_datetime(0, 1, 2))
        self.assertTrue(util.extended_datetime(0, 1, 1) != util.extended_datetime(0, 1, 2))
        self.assertFalse(util.extended_datetime(0, 1, 1) == util.extended_datetime(0, 1, 2))
        self.assertFalse(util.extended_datetime(0, 1, 1) >= util.extended_datetime(0, 1, 2))
        self.assertFalse(util.extended_datetime(0, 1, 1) > util.extended_datetime(0, 1, 2))

        self.assertFalse(util.extended_datetime(0, 1, 3) < util.extended_datetime(0, 1, 2))
        self.assertFalse(util.extended_datetime(0, 1, 3) <= util.extended_datetime(0, 1, 2))
        self.assertTrue(util.extended_datetime(0, 1, 3) != util.extended_datetime(0, 1, 2))
        self.assertFalse(util.extended_datetime(0, 1, 3) == util.extended_datetime(0, 1, 2))
        self.assertTrue(util.extended_datetime(0, 1, 3) >= util.extended_datetime(0, 1, 2))
        self.assertTrue(util.extended_datetime(0, 1, 3) > util.extended_datetime(0, 1, 2))
コード例 #15
0
ファイル: test_util.py プロジェクト: joernheissler/asn1crypto
 def test_extended_datetime_date_time(self):
     self.assertEqual(util.extended_date(0, 1, 1), util.extended_datetime(0, 1, 1).date())
     self.assertEqual(util.extended_date(0, 2, 29), util.extended_datetime(0, 2, 29).date())
     self.assertEqual(time(0, 0, 0), util.extended_datetime(0, 1, 1).time())
コード例 #16
0
ファイル: test_util.py プロジェクト: joernheissler/asn1crypto
 def test_extended_datetime_compare_tzinfo(self):
     with self.assertRaises(TypeError):
         self.assertTrue(util.extended_datetime(0, 1, 1, tzinfo=utc) < datetime(1, 1, 1))
     with self.assertRaises(TypeError):
         self.assertTrue(util.extended_datetime(0, 1, 1) < datetime(1, 1, 1, tzinfo=utc))
コード例 #17
0
 def test_extended_datetime_date_time(self):
     self.assertEqual(util.extended_date(0, 1, 1),
                      util.extended_datetime(0, 1, 1).date())
     self.assertEqual(util.extended_date(0, 2, 29),
                      util.extended_datetime(0, 2, 29).date())
     self.assertEqual(time(0, 0, 0), util.extended_datetime(0, 1, 1).time())
コード例 #18
0
 def test_extended_datetime_init(self):
     with self.assertRaises(ValueError):
         util.extended_datetime(2000, 11, 27)