Exemple #1
0
 def test_date(self):
     with mock_time(1954, 2, 3, 0, 0, 0):
         self.assertEqual(
             ttypes.Timestamp.from_string('00:00:00').date, '1954-02-03')
         self.assertEqual(
             ttypes.Timestamp.from_string('08:09:10').date, '1954-02-03')
         self.assertEqual(
             ttypes.Timestamp.from_string('23:59:59').date, '1954-02-03')
     self.assertEqual(
         ttypes.Timestamp.from_string('1954').date, '1954-01-01')
     self.assertEqual(
         ttypes.Timestamp.from_string('1954-08').date, '1954-08-01')
     self.assertEqual(
         ttypes.Timestamp.from_string('1954-08-09').date, '1954-08-09')
     self.assertEqual(
         ttypes.Timestamp.from_string('1954-08-09 23:59:59').date,
         '1954-08-09')
     self.assertEqual(
         ttypes.Timestamp.from_string('1954-08-10 00:00:00').date,
         '1954-08-10')
     self.assertEqual(
         ttypes.Timestamp.from_string('1954-08-10 11:12:13').date,
         '1954-08-10')
     self.assertEqual(ttypes.Timestamp(ttypes.Timestamp.NOW).date, 'now')
     self.assertEqual(ttypes.Timestamp(ttypes.Timestamp.SOON).date, 'soon')
     self.assertEqual(
         ttypes.Timestamp(ttypes.Timestamp.UNKNOWN).date, 'unknown')
     self.assertEqual(
         ttypes.Timestamp(ttypes.Timestamp.NOT_APPLICABLE).date,
         'not applicable')
     self.assertEqual(
         ttypes.Timestamp(ttypes.Timestamp.NEVER).date, 'never')
Exemple #2
0
    def test_bool(self):
        import random
        for td in (ttypes.Timestamp(random.randint(-1e10, 1e10) * MIN),
                   ttypes.Timestamp(random.randint(-1e10, 1e10) * HOUR),
                   ttypes.Timestamp(random.randint(-1e10, 1e10) * DAY)):
            self.assertEqual(bool(td), True)

        for td in (ttypes.Timestamp(ttypes.Timestamp.UNKNOWN),
                   ttypes.Timestamp(ttypes.Timestamp.NOT_APPLICABLE)):
            self.assertEqual(bool(td), False)
Exemple #3
0
    def test_string(self):
        dt = datetime(year=2000, month=1, day=1)
        now = dt.timestamp()
        self.mock_time(now)

        self.assertEqual(str(ttypes.Timestamp(now)), self.strftime('%H:%M:%S', now))
        soon = now + 60
        self.assertEqual(str(ttypes.Timestamp(soon)), self.strftime('%H:%M:%S', soon))
        later_today = now + 3*60*60
        self.assertEqual(str(ttypes.Timestamp(later_today)), self.strftime('%H:%M', later_today))
        next_week = now + 7*24*60*60
        self.assertEqual(str(ttypes.Timestamp(next_week)), self.strftime('%Y-%m-%d', next_week))
Exemple #4
0
    def test_bool(self):
        for td in (ttypes.Timestamp(random.randint(-1000, 1000) * MIN),
                   ttypes.Timestamp(random.randint(-1000, 1000) * HOUR),
                   ttypes.Timestamp(random.randint(-1000, 1000) * DAY),
                   ttypes.Timestamp(random.randint(-1000, 1000) * MONTH),
                   ttypes.Timestamp(random.randint(-1000, 1000) * YEAR)):
            self.assertIs(bool(td), True)

        for td in (ttypes.Timestamp(ttypes.Timestamp.UNKNOWN),
                   ttypes.Timestamp(ttypes.Timestamp.NOT_APPLICABLE),
                   ttypes.Timestamp(ttypes.Timestamp.NEVER)):
            self.assertIs(bool(td), False)

        for td in (ttypes.Timestamp(ttypes.Timestamp.NOW),
                   ttypes.Timestamp(ttypes.Timestamp.SOON)):
            self.assertIs(bool(td), True)
Exemple #5
0
 def test_time(self):
     self.assertEqual(ttypes.Timestamp.from_string('1954').time, '00:00:00')
     self.assertEqual(
         ttypes.Timestamp.from_string('1954-08').time, '00:00:00')
     self.assertEqual(
         ttypes.Timestamp.from_string('1954-08-09').time, '00:00:00')
     self.assertEqual(
         ttypes.Timestamp.from_string('1954-08-09 23:59:59').time,
         '23:59:59')
     self.assertEqual(
         ttypes.Timestamp.from_string('1954-08-10 11:12:13').time,
         '11:12:13')
     self.assertEqual(ttypes.Timestamp(ttypes.Timestamp.NOW).time, 'now')
     self.assertEqual(ttypes.Timestamp(ttypes.Timestamp.SOON).time, 'soon')
     self.assertEqual(
         ttypes.Timestamp(ttypes.Timestamp.UNKNOWN).time, 'unknown')
     self.assertEqual(
         ttypes.Timestamp(ttypes.Timestamp.NOT_APPLICABLE).time,
         'not applicable')
     self.assertEqual(
         ttypes.Timestamp(ttypes.Timestamp.NEVER).time, 'never')
Exemple #6
0
 def test_timedelta(self):
     self.assertIsInstance(
         ttypes.Timestamp(1234).timedelta, ttypes.Timedelta)
     self.assertIsInstance(
         ttypes.Timestamp(ttypes.Timestamp.NOW).timedelta, ttypes.Timedelta)
     self.assertIsInstance(
         ttypes.Timestamp(ttypes.Timestamp.SOON).timedelta,
         ttypes.Timedelta)
     self.assertIsInstance(
         ttypes.Timestamp(ttypes.Timestamp.UNKNOWN).timedelta,
         ttypes.Timedelta)
     self.assertIsInstance(
         ttypes.Timestamp(ttypes.Timestamp.NOT_APPLICABLE).timedelta,
         ttypes.Timedelta)
     self.assertIsInstance(
         ttypes.Timestamp(ttypes.Timestamp.NEVER).timedelta,
         ttypes.Timedelta)
     with mock_time(2000, 1, 1, 0, 0, 0):
         self.assertEqual(
             ttypes.Timestamp.from_string('00:00:00').timedelta,
             ttypes.Timedelta(0))
         self.assertEqual(
             ttypes.Timestamp.from_string('00:00:01').timedelta,
             ttypes.Timedelta(1))
         self.assertEqual(
             ttypes.Timestamp.from_string('00:05:00').timedelta,
             ttypes.Timedelta(300))
         self.assertEqual(
             ttypes.Timestamp.from_string('01-02 00:00:00').timedelta,
             ttypes.Timedelta(3600 * 24))
         self.assertEqual(
             ttypes.Timestamp.from_string('02-01 00:00:00').timedelta,
             ttypes.Timedelta(3600 * 24 * 31))
Exemple #7
0
    def test_sorting(self):
        now = 1e6
        lst = [ttypes.Timestamp(ttypes.Timestamp.NOW),
               ttypes.Timestamp(ttypes.Timestamp.SOON),
               ttypes.Timestamp(now + (-2 * HOUR)),
               ttypes.Timestamp(now + (2 * MIN)),
               ttypes.Timestamp(now + (3 * MIN)),
               ttypes.Timestamp(now + (1 * DAY)),
               ttypes.Timestamp(now + (2.5 * YEAR)),
               ttypes.Timestamp(ttypes.Timestamp.UNKNOWN),
               ttypes.Timestamp(ttypes.Timestamp.NOT_APPLICABLE)]

        import random
        def shuffle(l):
            return random.sample(l, k=len(l))

        for _ in range(10):
            self.assertEqual(sorted(shuffle(lst)), lst)
Exemple #8
0
 def test_full_property(self):
     with mock_time(1993, 2, 14, 5, 38, 12):
         self.assertEqual(
             ttypes.Timestamp(time.time()).full, '1993-02-14 05:38:12')
     self.assertEqual(ttypes.Timestamp(ttypes.Timestamp.NOW).full, 'now')
     self.assertEqual(ttypes.Timestamp(ttypes.Timestamp.SOON).full, 'soon')
     self.assertEqual(
         ttypes.Timestamp(ttypes.Timestamp.UNKNOWN).full, 'unknown')
     self.assertEqual(
         ttypes.Timestamp(ttypes.Timestamp.NOT_APPLICABLE).full,
         'not applicable')
     self.assertEqual(
         ttypes.Timestamp(ttypes.Timestamp.NEVER).full, 'never')
Exemple #9
0
 def test_string_representation(self):
     with mock_time(1993, 2, 14, 5, 38, 12):
         self.assertEqual(str(ttypes.Timestamp(time.time())), '05:38:12')
         self.assertEqual(str(ttypes.Timestamp(time.time() - 60)),
                          '05:37:12')
         self.assertEqual(str(ttypes.Timestamp(time.time() + 60)),
                          '05:39:12')
         self.assertEqual(str(ttypes.Timestamp(time.time() - 3 * 60 * 60)),
                          '02:38')
         self.assertEqual(str(ttypes.Timestamp(time.time() + 3 * 60 * 60)),
                          '08:38')
         self.assertEqual(
             str(ttypes.Timestamp(time.time() - 7 * 24 * 60 * 60)),
             '1993-02-07')
         self.assertEqual(
             str(ttypes.Timestamp(time.time() + 7 * 24 * 60 * 60)),
             '1993-02-21')
     self.assertEqual(str(ttypes.Timestamp(ttypes.Timestamp.NOW)), 'now')
     self.assertEqual(str(ttypes.Timestamp(ttypes.Timestamp.SOON)), 'soon')
     self.assertEqual(str(ttypes.Timestamp(ttypes.Timestamp.UNKNOWN)), '?')
     self.assertEqual(
         str(ttypes.Timestamp(ttypes.Timestamp.NOT_APPLICABLE)), '')
     self.assertEqual(str(ttypes.Timestamp(ttypes.Timestamp.NEVER)),
                      'never')