[commons.util] fix: not properly converting bibyte and byte based sizes to bytes (size_to_byte)

This commit is contained in:
Vinicius Moreira
2022-04-10 14:00:32 -03:00
parent 374b7ce03f
commit f6a8f20d5b
5 changed files with 52 additions and 45 deletions

View File

@@ -5,40 +5,44 @@ from bauh.commons.util import size_to_byte
class SizeToByteTest(TestCase):
def test_must_return_right_number_of_bytes(self):
self.assertEqual(1.0, size_to_byte(1, 'B'))
self.assertEqual(1024, size_to_byte(1, 'K'))
self.assertEqual(58675.2, size_to_byte(57.3, 'K'))
self.assertEqual(1048576, size_to_byte(1, 'M'))
self.assertEqual(60083404.8, size_to_byte(57.3, 'M'))
self.assertEqual(1073741824, size_to_byte(1, 'G'))
self.assertEqual(61525406515.2, size_to_byte(57.3, 'G'))
self.assertEqual(1099511627776, size_to_byte(1, 'T'))
self.assertEqual(63002016271564.8, size_to_byte(57.3, 'T'))
self.assertEqual(1125899906842624, size_to_byte(1, 'P'))
self.assertEqual(6383852471797678, size_to_byte(5.67, 'P'))
def test_must_return_right_number_of_bytes_for_bit_size(self):
self.assertEqual(0.125, size_to_byte(1, 'b'))
self.assertEqual(0.250, size_to_byte(2, 'b'))
self.assertEqual(0.40625, size_to_byte(3.25, 'b'))
def test_must_return_right_number_of_bytes_for_bit_units(self):
self.assertEqual(1, size_to_byte(8, 'b'))
self.assertEqual(2, size_to_byte(16, 'b'))
self.assertEqual(128, size_to_byte(1, 'KiB'))
self.assertEqual(197460.48, size_to_byte(1542.66, 'KiB'))
self.assertEqual(131072, size_to_byte(1, 'MiB'))
self.assertEqual(546570.24, size_to_byte(4.17, 'MiB'))
self.assertEqual(134217728, size_to_byte(1, 'GiB'))
self.assertEqual(2691065446.4, size_to_byte(20.05, 'GiB'))
self.assertEqual(137438953472, size_to_byte(1, 'TiB'))
self.assertEqual(6926923254988.8, size_to_byte(50.4, 'TiB'))
self.assertEqual(140737488355328, size_to_byte(1, 'PiB'))
self.assertEqual(330733097635020.8, size_to_byte(2.35, 'PiB'))
def test_must_return_right_number_of_bytes_for_byte_based_units(self):
self.assertEqual(1.0, size_to_byte(1, 'B'))
self.assertEqual(587, size_to_byte(587, 'B'))
self.assertEqual(1000, size_to_byte(1, 'K'))
self.assertEqual(57300, size_to_byte(57.3, 'K'))
self.assertEqual(1000000, size_to_byte(1, 'M'))
self.assertEqual(57300000, size_to_byte(57.3, 'M'))
self.assertEqual(1000000000, size_to_byte(1, 'G'))
self.assertEqual(57300000000, size_to_byte(57.3, 'G'))
self.assertEqual(1000000000000, size_to_byte(1, 'T'))
self.assertEqual(57300000000000, size_to_byte(57.3, 'T'))
self.assertEqual(1000000000000000, size_to_byte(1, 'P'))
self.assertEqual(5670000000000000, size_to_byte(5.67, 'P'))
def test_must_return_right_number_of_bytes_for_bibyte_units(self):
self.assertEqual(1024.0, size_to_byte(1, 'KiB'))
self.assertEqual(1579683.84, size_to_byte(1542.66, 'KiB'))
self.assertEqual(1048576, size_to_byte(1, 'MiB'))
self.assertEqual(4372561.92, size_to_byte(4.17, 'MiB'))
self.assertEqual(1073741824, size_to_byte(1, 'GiB'))
self.assertEqual(2168958484.48, size_to_byte(2.02, 'GiB'))
self.assertEqual(1099511627776, size_to_byte(1, 'TiB'))
self.assertEqual(3375500697272.32, size_to_byte(3.07, 'TiB'))
self.assertEqual(1125899906842624, size_to_byte(1, 'PiB'))
self.assertEqual(1294784892869017.5, size_to_byte(1.15, 'PiB'))
def test_must_return_converted_string_sizes(self):
self.assertEqual(1024, size_to_byte('1', 'K'))
self.assertEqual(58675.2, size_to_byte('57.3', 'K'))
self.assertEqual(60083404.8, size_to_byte('57.3', 'M'))
self.assertEqual(61525406515.2, size_to_byte('57.3', 'G'))
self.assertEqual(63002016271564.8, size_to_byte('57.3', 'T'))
self.assertEqual(6383852471797678, size_to_byte('5.67', 'P'))
self.assertEqual(1000, size_to_byte('1', 'K'))
self.assertEqual(57300, size_to_byte('57.3', 'K'))
self.assertEqual(57300000, size_to_byte('57.3', 'M'))
self.assertEqual(57300000000, size_to_byte('57.3', 'G'))
self.assertEqual(57300000000000, size_to_byte('57.3', 'T'))
self.assertEqual(5670000000000000, size_to_byte('5.67', 'P'))
def test_must_treat_string_sizes_before_converting(self):
self.assertEqual(58675.2, size_to_byte(' 57 , 3 ', ' K '))
self.assertEqual(57300, size_to_byte(' 57 , 3 ', ' K '))

View File

@@ -109,7 +109,7 @@ Description: GNU C compiler
'section': 'web',
'maintainer': 'Distro Dev <root@distro.com>',
'architecture': 'amd64',
'uncompressed size': 247463936.0,
'uncompressed size': 236000000,
'predepends': ('distro-system-adjustments (>= 2021.12.16)', ),
'breaks': ('firefox-dbg (< 95.0.1+distro1+una)', 'firefox-dev (< 95.0.1+distro1+una)',
'firefox-geckodriver (< 95.0.1+distro1+una)', 'firefox-mozsymbols (< 95.0.1+distro1+una)'),
@@ -126,7 +126,7 @@ Description: GNU C compiler
'section': 'devel',
'maintainer': 'Distro Developers <distro-devel-discuss@lists.distro.com>',
'architecture': 'amd64',
'uncompressed size': 52428.8,
'uncompressed size': 51200,
'depends': ('cpp (= 4:9.3.0-1distro2)', 'gcc-9 (>= 9.3.0-3~)'),
'recommends': ('libc6-dev | libc-dev', ),
'suggests': ('gcc-multilib', 'make', 'manpages-dev', 'autoconf', 'automake',

View File

@@ -20,4 +20,4 @@ class FlatpakTest(TestCase):
SimpleProcess.assert_called_once()
handle_simple.assert_called_once()
self.assertEqual({'org.xpto.Xnote': 4508876.8}, download_size)
self.assertEqual({'org.xpto.Xnote': 4300000}, download_size)