1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Tests for the FILETIME timestamp implementation."""
from __future__ import unicode_literals
import decimal
import unittest
from dfdatetime import filetime
class FiletimeEpochTest(unittest.TestCase):
"""Tests for the FILETIME epoch."""
def testInitialize(self):
"""Tests the __init__ function."""
filetime_epoch = filetime.FiletimeEpoch()
self.assertIsNotNone(filetime_epoch)
class FiletimeTest(unittest.TestCase):
"""Tests for the FILETIME timestamp."""
# pylint: disable=protected-access
def testProperties(self):
"""Tests the properties."""
filetime_object = filetime.Filetime(timestamp=0x01cb3a623d0a17ce)
self.assertEqual(filetime_object.timestamp, 0x01cb3a623d0a17ce)
filetime_object = filetime.Filetime()
self.assertIsNone(filetime_object.timestamp)
def testGetNormalizedTimestamp(self):
"""Tests the _GetNormalizedTimestamp function."""
filetime_object = filetime.Filetime(timestamp=0x01cb3a623d0a17ce)
normalized_timestamp = filetime_object._GetNormalizedTimestamp()
self.assertEqual(normalized_timestamp, decimal.Decimal('1281647191.546875'))
filetime_object = filetime.Filetime(timestamp=0x1ffffffffffffffff)
normalized_timestamp = filetime_object._GetNormalizedTimestamp()
self.assertIsNone(normalized_timestamp)
filetime_object = filetime.Filetime()
normalized_timestamp = filetime_object._GetNormalizedTimestamp()
self.assertIsNone(normalized_timestamp)
def testCopyFromDateTimeString(self):
"""Tests the CopyFromDateTimeString function."""
filetime_object = filetime.Filetime()
expected_timestamp = 0x1cb39b14e8c4000
filetime_object.CopyFromDateTimeString('2010-08-12')
self.assertEqual(filetime_object.timestamp, expected_timestamp)
expected_timestamp = 0x1cb3a623cb6a580
filetime_object.CopyFromDateTimeString('2010-08-12 21:06:31')
self.assertEqual(filetime_object.timestamp, expected_timestamp)
expected_timestamp = 0x01cb3a623d0a17ce
filetime_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875')
self.assertEqual(filetime_object.timestamp, expected_timestamp)
expected_timestamp = 0x1cb3a6a9ece7fce
filetime_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875-01:00')
self.assertEqual(filetime_object.timestamp, expected_timestamp)
expected_timestamp = 0x1cb3a59db45afce
filetime_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875+01:00')
self.assertEqual(filetime_object.timestamp, expected_timestamp)
expected_timestamp = 86400 * 10000000
filetime_object.CopyFromDateTimeString('1601-01-02 00:00:00')
self.assertEqual(filetime_object.timestamp, expected_timestamp)
with self.assertRaises(ValueError):
filetime_object.CopyFromDateTimeString('1500-01-02 00:00:00')
def testCopyToDateTimeString(self):
"""Tests the CopyToDateTimeString function."""
filetime_object = filetime.Filetime(timestamp=0x01cb3a623d0a17ce)
date_time_string = filetime_object.CopyToDateTimeString()
self.assertEqual(date_time_string, '2010-08-12 21:06:31.5468750')
filetime_object = filetime.Filetime()
date_time_string = filetime_object.CopyToDateTimeString()
self.assertIsNone(date_time_string)
def testCopyToDateTimeStringISO8601(self):
"""Tests the CopyToDateTimeStringISO8601 function."""
filetime_object = filetime.Filetime(timestamp=0x01cb3a623d0a17ce)
date_time_string = filetime_object.CopyToDateTimeStringISO8601()
self.assertEqual(date_time_string, '2010-08-12T21:06:31.5468750Z')
def testGetDate(self):
"""Tests the GetDate function."""
filetime_object = filetime.Filetime(timestamp=0x01cb3a623d0a17ce)
date_tuple = filetime_object.GetDate()
self.assertEqual(date_tuple, (2010, 8, 12))
filetime_object = filetime.Filetime()
date_tuple = filetime_object.GetDate()
self.assertEqual(date_tuple, (None, None, None))
def testGetTimeOfDay(self):
"""Tests the GetTimeOfDay function."""
filetime_object = filetime.Filetime(timestamp=0x01cb3a623d0a17ce)
time_of_day_tuple = filetime_object.GetTimeOfDay()
self.assertEqual(time_of_day_tuple, (21, 6, 31))
filetime_object = filetime.Filetime()
time_of_day_tuple = filetime_object.GetTimeOfDay()
self.assertEqual(time_of_day_tuple, (None, None, None))
if __name__ == '__main__':
unittest.main()
|