def __str__(self) -> str: result: str = f"Foler Path: '{self._imagefile}:{self._folderpath}'\r\n" result += f"Partition Index: '{self._partitionindex}\r\n\r\n" headers: list = ['Name', 'Type', 'Size', 'Create Date', 'Modify Date'] row_format: str = "{:<45}{:<10}{:<10}{:<21}{:<21}\r\n" result += row_format.format(*headers) + "\r\n" for item in self._folderitems: result += row_format.format(item.Name.decode(), item.Type, str(format_bytes(item.Size)), str(item.create), str(item.modify_date)) return result
def get_image_metadata(self) -> EWFMetadata: """ Retrieves all available metadata of the image and returns a EWFMetadata object. """ headers: dict = self._imageinfo.ewf_handle.get_header_values() hashes: dict = self._imageinfo.ewf_handle.get_hash_values() metadata: EWFMetadata = EWFMetadata( hashes=hashes, headers=headers, bytes_per_sector=self._imageinfo.ewf_handle.bytes_per_sector, number_of_sectors=self._imageinfo.ewf_handle.get_number_of_sectors( ), image_size=format_bytes( self._imageinfo.ewf_handle.get_media_size())) return metadata
def get_folder_items_in_csv_format(self) -> str: """ For every item in the folder yields a comma seperated string. """ for item in self._folderitems: folderpath: str = self._folderpath.strip('/') filepath: str = "" if folderpath != "": filepath = "/".join([ self._imagefile, str(self._partitionindex), folderpath, item.Name.decode() ]) else: filepath = f"{self._imagefile}/{str(self._partitionindex)}/{item.Name.decode()}" result: str = ",".join([ str(self._partitionindex), filepath, item.Type, str(format_bytes(item.Size)), str(item.create), str(item.modify_date) ]) yield result
def test_format_bytes_Terra_2(self): """Should return 1TB""" size = 1125899906842624 expected = "1024.0TB" self.assertEqual(expected, format_bytes(size))
def test_format_bytes_Terra(self): """Should return 1TB""" size = 1099511627776 expected = "1.0TB" self.assertEqual(expected, format_bytes(size))
def test_format_bytes_Giga(self): """Should return 1GB""" size = 1073741824 expected = "1.0GB" self.assertEqual(expected, format_bytes(size))
def test_format_bytes_Mega_2(self): """Should return 1MB""" size = 1048577 expected = "1.0MB" self.assertEqual(expected, format_bytes(size))
def test_format_bytes_Kilo(self): """Should return 1KB""" size = 1025 expected = "1.0KB" self.assertEqual(expected, format_bytes(size))