def testGetTimeOfDay(self): """Tests the GetTimeOfDay function.""" fake_time_object = fake_time.FakeTime() fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') time_of_day_tuple = fake_time_object.GetTimeOfDay() self.assertEqual(time_of_day_tuple, (21, 6, 31)) fake_time_object = fake_time.FakeTime() fake_time_object._number_of_seconds = None time_of_day_tuple = fake_time_object.GetTimeOfDay() self.assertEqual(time_of_day_tuple, (None, None, None))
def testCopyToDateTimeString(self): """Tests the CopyToDateTimeString function.""" fake_time_object = fake_time.FakeTime() fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') date_time_string = fake_time_object.CopyToDateTimeString() self.assertEqual(date_time_string, '2010-08-12 21:06:31.546875') fake_time_object = fake_time.FakeTime() fake_time_object._number_of_seconds = None date_time_string = fake_time_object.CopyToDateTimeString() self.assertIsNone(date_time_string)
def testGetDate(self): """Tests the GetDate function.""" fake_time_object = fake_time.FakeTime() fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') date_tuple = fake_time_object.GetDate() self.assertEqual(date_tuple, (2010, 8, 12)) fake_time_object = fake_time.FakeTime() fake_time_object._number_of_seconds = None date_tuple = fake_time_object.GetDate() self.assertEqual(date_tuple, (None, None, None))
def testGetNormalizedTimestamp(self): """Tests the _GetNormalizedTimestamp function.""" fake_time_object = fake_time.FakeTime() fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') normalized_timestamp = fake_time_object._GetNormalizedTimestamp() self.assertEqual(normalized_timestamp, 1281647191.546875) fake_time_object = fake_time.FakeTime() fake_time_object._number_of_seconds = None normalized_timestamp = fake_time_object._GetNormalizedTimestamp() self.assertIsNone(normalized_timestamp)
def testProduceEventWithEventData(self): """Tests the ProduceEventWithEventData method.""" knowledge_base_object = knowledge_base.KnowledgeBase() parser_mediator = mediator.ParserMediator(knowledge_base_object) storage_writer = fake_writer.FakeStorageWriter() parser_mediator.SetStorageWriter(storage_writer) storage_writer.Open() event_data_stream = events.EventDataStream() parser_mediator.ProduceEventDataStream(event_data_stream) date_time = fake_time.FakeTime() event_with_timestamp = time_events.DateTimeValuesEvent( date_time, definitions.TIME_DESCRIPTION_WRITTEN) event_with_timestamp.parser = 'test_parser' event_data = events.EventData() event_data.parser = 'test_parser' parser_mediator.ProduceEventWithEventData(event_with_timestamp, event_data) self.assertEqual(storage_writer.number_of_events, 1) self.assertEqual(storage_writer.number_of_extraction_warnings, 0) self.assertEqual(storage_writer.number_of_recovery_warnings, 0) event_without_timestamp = events.EventObject() event_without_timestamp.parser = 'test_parser' with self.assertRaises(errors.InvalidEvent): parser_mediator.ProduceEventWithEventData(event_without_timestamp, event_data)
def testCopyToDateTimeStringISO8601(self): """Tests the CopyToDateTimeStringISO8601 function.""" fake_time_object = fake_time.FakeTime() fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') date_time_string = fake_time_object.CopyToDateTimeStringISO8601() self.assertEqual(date_time_string, '2010-08-12T21:06:31.546875+00:00')
def testCopyFromDateTimeString(self): """Tests the CopyFromDateTimeString function.""" fake_time_object = fake_time.FakeTime() fake_time_object.CopyFromDateTimeString('2010-08-12') self.assertEqual(fake_time_object._number_of_seconds, 1281571200) self.assertIsNone(fake_time_object._microseconds) self.assertEqual(fake_time_object._time_zone_offset, 0) fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31') self.assertEqual(fake_time_object._number_of_seconds, 1281647191) self.assertIsNone(fake_time_object._microseconds) self.assertEqual(fake_time_object._time_zone_offset, 0) fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') self.assertEqual(fake_time_object._number_of_seconds, 1281647191) self.assertEqual(fake_time_object._microseconds, 546875) self.assertEqual(fake_time_object._time_zone_offset, 0) fake_time_object.CopyFromDateTimeString( '2010-08-12 21:06:31.546875-01:00') self.assertEqual(fake_time_object._number_of_seconds, 1281647191) self.assertEqual(fake_time_object._microseconds, 546875) self.assertEqual(fake_time_object._time_zone_offset, -60) fake_time_object.CopyFromDateTimeString( '2010-08-12 21:06:31.546875+01:00') self.assertEqual(fake_time_object._number_of_seconds, 1281647191) self.assertEqual(fake_time_object._microseconds, 546875) self.assertEqual(fake_time_object._time_zone_offset, 60) fake_time_object.CopyFromDateTimeString('1601-01-02 00:00:00') self.assertEqual(fake_time_object._number_of_seconds, -11644387200) self.assertIsNone(fake_time_object._microseconds) self.assertEqual(fake_time_object._time_zone_offset, 0)
def testGetPlasoTimestamp(self): """Tests the GetPlasoTimestamp function.""" fake_time_object = fake_time.FakeTime() fake_time_object._normalized_timestamp = decimal.Decimal( '1333794697.6252465') plaso_timestamp = fake_time_object.GetPlasoTimestamp() self.assertEqual(plaso_timestamp, 1333794697625247)
def testCopyToStatTimeTuple(self): """Tests the CopyToStatTimeTuple function.""" fake_time_object = fake_time.FakeTime() fake_time_object.CopyFromString(u'2010-08-12 21:06:31.546875') expected_stat_time_tuple = (1281647191, 5468750) stat_time_tuple = fake_time_object.CopyToStatTimeTuple() self.assertEqual(stat_time_tuple, expected_stat_time_tuple) fake_time_object = fake_time.FakeTime() fake_time_object.CopyFromString(u'2010-08-12 21:06:31') expected_stat_time_tuple = (1281647191, None) stat_time_tuple = fake_time_object.CopyToStatTimeTuple() self.assertEqual(stat_time_tuple, expected_stat_time_tuple) fake_time_object = fake_time.FakeTime() fake_time_object._number_of_seconds = None expected_stat_time_tuple = (None, None) stat_time_tuple = fake_time_object.CopyToStatTimeTuple() self.assertEqual(stat_time_tuple, expected_stat_time_tuple)
def testGetPlasoTimestamp(self): """Tests the GetPlasoTimestamp function.""" fake_time_object = fake_time.FakeTime() fake_time_object.CopyFromString(u'2010-08-12 21:06:31.546875') expected_micro_posix_number_of_seconds = 1281647191546875 micro_posix_number_of_seconds = fake_time_object.GetPlasoTimestamp() self.assertEqual(micro_posix_number_of_seconds, expected_micro_posix_number_of_seconds) fake_time_object = fake_time.FakeTime() fake_time_object.CopyFromString(u'2010-08-12 21:06:31') expected_micro_posix_number_of_seconds = 1281647191000000 micro_posix_number_of_seconds = fake_time_object.GetPlasoTimestamp() self.assertEqual(micro_posix_number_of_seconds, expected_micro_posix_number_of_seconds) fake_time_object = fake_time.FakeTime() fake_time_object._number_of_seconds = None micro_posix_number_of_seconds = fake_time_object.GetPlasoTimestamp() self.assertIsNone(micro_posix_number_of_seconds)
def __init__( self, resolver_context, file_system, path_spec, file_entry_type=None, is_root=False): """Initializes a file entry. Args: resolver_context (Context): resolver context. file_system (FileSystem): file system. path_spec (PathSpec): path specification. file_entry_type (Optional[str]): file entry type. is_root (Optional[bool]): True if the file entry is the root file entry of the corresponding file system. """ super(FakeFileEntry, self).__init__( resolver_context, file_system, path_spec, is_root=is_root, is_virtual=True) self._date_time = dfdatetime_fake_time.FakeTime() self._name = None self.entry_type = file_entry_type
def testProduceEventWithEventData(self): """Tests the ProduceEventWithEventData method.""" session = sessions.Session() storage_writer = fake_writer.FakeStorageWriter(session) storage_writer.Open() parsers_mediator = self._CreateParserMediator(storage_writer) event_with_timestamp = events.EventObject() event_with_timestamp.timestamp = fake_time.FakeTime() event_data = events.EventData() parsers_mediator.ProduceEventWithEventData(event_with_timestamp, event_data) self.assertEqual(storage_writer.number_of_events, 1) event_without_timestamp = events.EventObject() with self.assertRaises(errors.InvalidEvent): parsers_mediator.ProduceEventWithEventData(event_without_timestamp, event_data)
def testCopyFromDateTimeString(self): """Tests the CopyFromDateTimeString function.""" fake_time_object = fake_time.FakeTime() expected_number_of_seconds = 1281571200 fake_time_object.CopyFromDateTimeString('2010-08-12') self.assertEqual(fake_time_object._number_of_seconds, expected_number_of_seconds) self.assertIsNone(fake_time_object._microseconds) expected_number_of_seconds = 1281647191 fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31') self.assertEqual(fake_time_object._number_of_seconds, expected_number_of_seconds) self.assertIsNone(fake_time_object._microseconds) expected_number_of_seconds = 1281647191 fake_time_object.CopyFromDateTimeString('2010-08-12 21:06:31.546875') self.assertEqual(fake_time_object._number_of_seconds, expected_number_of_seconds) self.assertEqual(fake_time_object._microseconds, 546875) expected_number_of_seconds = 1281650791 fake_time_object.CopyFromDateTimeString( '2010-08-12 21:06:31.546875-01:00') self.assertEqual(fake_time_object._number_of_seconds, expected_number_of_seconds) self.assertEqual(fake_time_object._microseconds, 546875) expected_number_of_seconds = 1281643591 fake_time_object.CopyFromDateTimeString( '2010-08-12 21:06:31.546875+01:00') self.assertEqual(fake_time_object._number_of_seconds, expected_number_of_seconds) self.assertEqual(fake_time_object._microseconds, 546875) expected_number_of_seconds = -11644387200 fake_time_object.CopyFromDateTimeString('1601-01-02 00:00:00') self.assertEqual(fake_time_object._number_of_seconds, expected_number_of_seconds) self.assertIsNone(fake_time_object._microseconds)
def testProduceEventWithEventData(self): """Tests the ProduceEventWithEventData method.""" session = sessions.Session() storage_writer = fake_writer.FakeStorageWriter(session) storage_writer.Open() parsers_mediator = self._CreateParserMediator(storage_writer) date_time = fake_time.FakeTime() event_with_timestamp = time_events.DateTimeValuesEvent( date_time, definitions.TIME_DESCRIPTION_WRITTEN) event_data = events.EventData() parsers_mediator.ProduceEventWithEventData(event_with_timestamp, event_data) self.assertEqual(storage_writer.number_of_errors, 0) self.assertEqual(storage_writer.number_of_events, 1) event_without_timestamp = events.EventObject() with self.assertRaises(errors.InvalidEvent): parsers_mediator.ProduceEventWithEventData(event_without_timestamp, event_data)
def AddFileEntry(self, path, file_entry_type=definitions.FILE_ENTRY_TYPE_FILE, file_data=None, link_data=None): """Adds a fake file entry. Args: path: the path of the file entry. file_entry_type: optional type of the file entry object. file_data: optional data of the fake file-like object. link_data: optional link data of the fake file entry object. Raises: KeyError: if the path already exists. ValueError: if the file data is set but the file entry type is not a file or if the link data is set but the file entry type is not a link. """ if path in self._paths: raise KeyError( u'File entry already set for path: {0:s}.'.format(path)) if file_data and file_entry_type != definitions.FILE_ENTRY_TYPE_FILE: raise ValueError(u'File data set for non-file file entry type.') if link_data and file_entry_type != definitions.FILE_ENTRY_TYPE_LINK: raise ValueError(u'Link data set for non-link file entry type.') stat_object = vfs_stat.VFSStat() # File data stat information. if file_data is not None: stat_object.size = len(file_data) # Date and time stat information. date_time_values = dfdatetime_fake_time.FakeTime() stat_time, stat_time_nano = date_time_values.CopyToStatTimeTuple() if stat_time is not None: stat_object.atime = stat_time stat_object.atime_nano = stat_time_nano stat_object.ctime = stat_time stat_object.ctime_nano = stat_time_nano stat_object.mtime = stat_time stat_object.mtime_nano = stat_time_nano # Ownership and permissions stat information. # File entry type stat information. stat_object.type = file_entry_type # Other stat information. if file_data: path_data = file_data elif link_data: path_data = link_data else: path_data = None self._paths[path] = (stat_object, path_data)