[common] fix: size to byte conversion

This commit is contained in:
Vinicius Moreira
2022-03-07 17:41:13 -03:00
parent 9daa995d00
commit d0b4060739
3 changed files with 30 additions and 18 deletions

View File

@@ -17,15 +17,17 @@ def size_to_byte(size: float, unit: str) -> int:
if lower_unit[0] == 'b':
final_size = size
elif lower_unit[0] == 'k':
final_size = size * 1000
final_size = size * 1024
elif lower_unit[0] == 'm':
final_size = size * 1000000
final_size = size * (1024 ** 2)
elif lower_unit[0] == 'g':
final_size = size * (1024 ** 3)
elif lower_unit[0] == 't':
final_size = size * 1000000000000
final_size = size * (1024 ** 4)
else:
final_size = size * 1000000000000000
final_size = size * (1024 ** 5)
return int(final_size)
return round(final_size)
def datetime_as_milis(date: datetime = datetime.utcnow()) -> int:

View File

@@ -5,29 +5,26 @@ from bauh.commons import system
class GetHumanSizeStr(TestCase):
def test__must_return_1Kb_for_1024(self):
def test__must_properly_convert_to_Kb(self):
self.assertEqual('1.00 Kb', system.get_human_size_str(1024))
def test__must_return_1_5Kb_for_1536(self):
self.assertEqual('1.50 Kb', system.get_human_size_str(1536))
def test__must_return_1_75Kb_for_1792(self):
self.assertEqual('1.75 Kb', system.get_human_size_str(1792))
self.assertEqual('57.30 Kb', system.get_human_size_str(58675.2))
def test__must_return_1Mb_for_1048576(self):
def test__must_properly_convert_to_Mb(self):
self.assertEqual('1.00 Mb', system.get_human_size_str(1048576))
def test__must_return_1_2Mb_for_1258291(self):
self.assertEqual('1.20 Mb', system.get_human_size_str(1258291))
def test__must_return_1_5Mb_for_1572864(self):
self.assertEqual('1.50 Mb', system.get_human_size_str(1572864))
self.assertEqual('57.30 Mb', system.get_human_size_str(60083404.8))
def test__must_return_1Gb_for_1073741824(self):
def test__must_properly_convert_to_Gb(self):
self.assertEqual('1.00 Gb', system.get_human_size_str(1073741824))
self.assertEqual('57.30 Gb', system.get_human_size_str(61525406515.2))
def test__must_return_1Tb_for_1099511627776(self):
def test__must_properly_convert_to_Tb(self):
self.assertEqual('1.00 Tb', system.get_human_size_str(1099511627776))
self.assertEqual('57.30 Tb', system.get_human_size_str(63002016271564.8))
def test__must_return_1Pb_for_1125899906842624(self):
def test__must_properly_convert_to_Pb(self):
self.assertEqual('1.00 Pb', system.get_human_size_str(1125899906842624))
self.assertEqual('57.30 Pb', system.get_human_size_str(64514064662082350))

13
tests/common/test_util.py Normal file
View File

@@ -0,0 +1,13 @@
from unittest import TestCase
from bauh.commons.util import size_to_byte
class SizeToByteTest(TestCase):
def test_must_return_right_number_of_bytes(self):
self.assertEqual(round(float('58675.2')), size_to_byte(57.3, 'K'))
self.assertEqual(round(float('60083404.8')), size_to_byte(57.3, 'M'))
self.assertEqual(round(float('61525406515.2')), size_to_byte(57.3, 'G'))
self.assertEqual(round(float('63002016271564.8')), size_to_byte(57.3, 'T'))
self.assertEqual(round(float('64514064662082350')), size_to_byte(57.3, 'P'))