1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3"""Tests for the fake time implementation.""" 4 5import decimal 6import unittest 7 8from dfdatetime import fake_time 9 10 11class FakeTimeTest(unittest.TestCase): 12 """Tests for the fake time.""" 13 14 # pylint: disable=protected-access 15 16 def testGetNormalizedTimestamp(self): 17 """Tests the _GetNormalizedTimestamp function.""" 18 fake_time_object = fake_time.FakeTime() 19 fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') 20 21 normalized_timestamp = fake_time_object._GetNormalizedTimestamp() 22 self.assertEqual(normalized_timestamp, decimal.Decimal('1281647191.546875')) 23 24 fake_time_object = fake_time.FakeTime() 25 fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875+01:00') 26 27 normalized_timestamp = fake_time_object._GetNormalizedTimestamp() 28 self.assertEqual(normalized_timestamp, decimal.Decimal('1281643591.546875')) 29 30 fake_time_object = fake_time.FakeTime() 31 fake_time_object._number_of_seconds = None 32 33 normalized_timestamp = fake_time_object._GetNormalizedTimestamp() 34 self.assertIsNone(normalized_timestamp) 35 36 def testGetPlasoTimestamp(self): 37 """Tests the GetPlasoTimestamp function.""" 38 fake_time_object = fake_time.FakeTime() 39 fake_time_object._normalized_timestamp = decimal.Decimal( 40 '1333794697.6252465') 41 plaso_timestamp = fake_time_object.GetPlasoTimestamp() 42 self.assertEqual(plaso_timestamp, 1333794697625247) 43 44 def testCopyFromDateTimeString(self): 45 """Tests the CopyFromDateTimeString function.""" 46 fake_time_object = fake_time.FakeTime() 47 48 fake_time_object.CopyFromDateTimeString('2010-08-12') 49 self.assertEqual(fake_time_object._number_of_seconds, 1281571200) 50 self.assertIsNone(fake_time_object._microseconds) 51 self.assertEqual(fake_time_object._time_zone_offset, 0) 52 53 fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31') 54 self.assertEqual(fake_time_object._number_of_seconds, 1281647191) 55 self.assertIsNone(fake_time_object._microseconds) 56 self.assertEqual(fake_time_object._time_zone_offset, 0) 57 58 fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') 59 self.assertEqual(fake_time_object._number_of_seconds, 1281647191) 60 self.assertEqual(fake_time_object._microseconds, 546875) 61 self.assertEqual(fake_time_object._time_zone_offset, 0) 62 63 fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875-01:00') 64 self.assertEqual(fake_time_object._number_of_seconds, 1281647191) 65 self.assertEqual(fake_time_object._microseconds, 546875) 66 self.assertEqual(fake_time_object._time_zone_offset, -60) 67 68 fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875+01:00') 69 self.assertEqual(fake_time_object._number_of_seconds, 1281647191) 70 self.assertEqual(fake_time_object._microseconds, 546875) 71 self.assertEqual(fake_time_object._time_zone_offset, 60) 72 73 fake_time_object.CopyFromDateTimeString('1601-01-02 00:00:00') 74 self.assertEqual(fake_time_object._number_of_seconds, -11644387200) 75 self.assertIsNone(fake_time_object._microseconds) 76 self.assertEqual(fake_time_object._time_zone_offset, 0) 77 78 def testCopyToDateTimeString(self): 79 """Tests the CopyToDateTimeString function.""" 80 fake_time_object = fake_time.FakeTime() 81 fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') 82 83 date_time_string = fake_time_object.CopyToDateTimeString() 84 self.assertEqual(date_time_string, '2010-08-12 21:06:31.546875') 85 86 fake_time_object = fake_time.FakeTime() 87 fake_time_object._number_of_seconds = None 88 89 date_time_string = fake_time_object.CopyToDateTimeString() 90 self.assertIsNone(date_time_string) 91 92 def testCopyToDateTimeStringISO8601(self): 93 """Tests the CopyToDateTimeStringISO8601 function.""" 94 fake_time_object = fake_time.FakeTime() 95 fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') 96 97 date_time_string = fake_time_object.CopyToDateTimeStringISO8601() 98 self.assertEqual(date_time_string, '2010-08-12T21:06:31.546875Z') 99 100 def testGetDate(self): 101 """Tests the GetDate function.""" 102 fake_time_object = fake_time.FakeTime() 103 fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') 104 105 date_tuple = fake_time_object.GetDate() 106 self.assertEqual(date_tuple, (2010, 8, 12)) 107 108 fake_time_object = fake_time.FakeTime() 109 fake_time_object._number_of_seconds = None 110 111 date_tuple = fake_time_object.GetDate() 112 self.assertEqual(date_tuple, (None, None, None)) 113 114 def testGetDateWithTimeOfDay(self): 115 """Tests the GetDateWithTimeOfDay function.""" 116 fake_time_object = fake_time.FakeTime() 117 fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') 118 119 date_with_time_of_day_tuple = fake_time_object.GetDateWithTimeOfDay() 120 self.assertEqual(date_with_time_of_day_tuple, (2010, 8, 12, 21, 6, 31)) 121 122 fake_time_object = fake_time.FakeTime() 123 fake_time_object._number_of_seconds = None 124 125 date_with_time_of_day_tuple = fake_time_object.GetDateWithTimeOfDay() 126 self.assertEqual( 127 date_with_time_of_day_tuple, (None, None, None, None, None, None)) 128 129 def testGetTimeOfDay(self): 130 """Tests the GetTimeOfDay function.""" 131 fake_time_object = fake_time.FakeTime() 132 fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') 133 134 time_of_day_tuple = fake_time_object.GetTimeOfDay() 135 self.assertEqual(time_of_day_tuple, (21, 6, 31)) 136 137 fake_time_object = fake_time.FakeTime() 138 fake_time_object._number_of_seconds = None 139 140 time_of_day_tuple = fake_time_object.GetTimeOfDay() 141 self.assertEqual(time_of_day_tuple, (None, None, None)) 142 143 144if __name__ == '__main__': 145 unittest.main() 146