def test_convert_to_bytes(self): self.assertEqual(eva.convert_to_bytes(1, 'B'), 1) self.assertEqual(eva.convert_to_bytes(1, 'K'), 1024) self.assertEqual(eva.convert_to_bytes(1, 'M'), 1048576) self.assertEqual(eva.convert_to_bytes(1, 'G'), 1073741824) self.assertEqual(eva.convert_to_bytes(1, 'T'), 1099511627776) # futureproofing self.assertEqual(eva.convert_to_bytes(1.5, 'K'), 1536) self.assertEqual(eva.convert_to_bytes(1.5, 'k'), 1536) # case difference self.assertEqual(eva.convert_to_bytes('1.5', 'k'), 1536) with self.assertRaises(ValueError): eva.convert_to_bytes(1.5, 'xB')
def parse_bytes_sec_from_lines(self, lines): """! @brief Return the number of bytes per second from a list of wget output lines. """ # 100 285M 100 285M 0 0 431M 0 --:--:-- --:--:-- --:--:-- 431M rate_regex = re.compile('^\d+\s+\w+\s+\d+\s+\w+\s+\d+\s+\d+\s+(\d+)([A-Z]).+$') for line in lines: line = line.split('\r')[-1] matches = rate_regex.match(line) if matches: return eva.convert_to_bytes(matches.group(1), matches.group(2)) return None