def _prefixTestHelper(self, numunits, unit): """ Test that units and prefix or abbreviation agree. :param int numunits: this value times factor yields number of bytes :param unit: a unit specifier """ c = numunits * unit.factor s = Size(c) self.assertEqual(s, Size(c)) u = size._makeSpec(unit.prefix, size._BYTES_WORDS[0], False) s = Size("%ld %s" % (numunits, u)) self.assertEqual(s, c) self.assertEqual(s.convertTo(unit), numunits) u = size._makeSpec(unit.abbr, size._BYTES_SYMBOL, False) s = Size("%ld %s" % (numunits, u)) self.assertEqual(s, c) self.assertEqual(s.convertTo(unit), numunits)
def _prefixTestHelper(self, numbytes, factor, prefix, abbr): c = numbytes * factor s = Size(c) self.assertEquals(s, c) if prefix: u = "%sbytes" % prefix s = Size("%ld %s" % (numbytes, u)) self.assertEquals(s, c) self.assertEquals(s.convertTo(spec=u), numbytes) if abbr: u = "%sb" % abbr s = Size("%ld %s" % (numbytes, u)) self.assertEquals(s, c) self.assertEquals(s.convertTo(spec=u), numbytes) if not prefix and not abbr: s = Size("%ld" % numbytes) self.assertEquals(s, c) self.assertEquals(s.convertTo(), numbytes)
def testConvertToWithSize(self): s = Size(1835008) self.assertEqual(s.convertTo(Size(1)), s.convertTo(B)) self.assertEqual(s.convertTo(Size(1024)), s.convertTo(KiB)) self.assertEqual(Size(512).convertTo(Size(1024)), Decimal("0.5")) self.assertEqual(Size(1024).convertTo(Size(512)), Decimal(2)) with self.assertRaises(ValueError): s.convertTo(Size(0))
def size_from_input(input_str): """Get size from user's input""" if not input_str: # Nothing to parse return None # if no unit was specified, default to MiB. Assume that a string # ending with anything other than a digit has a unit suffix if re.search(r'[\d.%s]$' % locale.nl_langinfo(locale.RADIXCHAR), input_str): input_str += "MiB" try: size = Size(spec=input_str) except (SizeParamsError, ValueError): return None else: # Minimium size for ui-created partitions is 1MiB. if size.convertTo(spec="MiB") < 1: size = Size(spec="1 MiB") return size
def size_from_input(input_str): """Get size from user's input""" if not input_str: # Nothing to parse return None # if no unit was specified, default to MiB. Assume that a string # ending with anything other than a digit has a unit suffix if re.search(r'[\d.%s]$' % locale.nl_langinfo(locale.RADIXCHAR), input_str): input_str += "MiB" try: size = Size(input_str) except ValueError: return None else: # Minimium size for ui-created partitions is 1MiB. if size.convertTo(spec="MiB") < 1: size = Size("1 MiB") return size
def testNegative(self): s = Size("-500MiB") self.assertEqual(s.humanReadable(), "-500 MiB") self.assertEqual(s.convertTo(B), -524288000)
def testConvertToPrecision(self): s = Size(1835008) self.assertEqual(s.convertTo(None), 1835008) self.assertEqual(s.convertTo(B), 1835008) self.assertEqual(s.convertTo(KiB), 1792) self.assertEqual(s.convertTo(MiB), Decimal("1.75"))