Exemplo n.º 1
0
 def testWhiteSpace(self):
     self.assertEqual(size.parseSpec("1 KiB "), Decimal(1024))
     self.assertEqual(size.parseSpec(" 1 KiB"), Decimal(1024))
     self.assertEqual(size.parseSpec(" 1KiB"), Decimal(1024))
     self.assertEqual(size.parseSpec(" 1e+0KiB"), Decimal(1024))
     with self.assertRaises(ValueError):
         size.parseSpec("1 KiB just a lot of stray characters")
     with self.assertRaises(ValueError):
         size.parseSpec("just 1 KiB")
Exemplo n.º 2
0
    def testScientificNotation(self):
        self.assertEqual(size.parseSpec("1e+0 KiB"), Decimal(1024))
        self.assertEqual(size.parseSpec("1e-0 KiB"), Decimal(1024))
        self.assertEqual(size.parseSpec("1e-1 KB"), Decimal(100))
        self.assertEqual(size.parseSpec("1E-4KB"), Decimal("0.1"))
        self.assertEqual(Size("1E-10KB"), Size(0))

        with self.assertRaises(ValueError):
            # this is an exponent w/out a base
            size.parseSpec("e+0")
Exemplo n.º 3
0
    def testParseSpec(self):
        """ Tests for parseSpec(). """
        for lang in  self.TEST_LANGS:
            os.environ['LANG'] = lang
            locale.setlocale(locale.LC_ALL, '')

            # Test parsing English spec in foreign locales
            self.assertEqual(size.parseSpec("1 kibibytes"), Decimal(1024))
            self.assertEqual(size.parseSpec("2 kibibyte"), Decimal(2048))
            self.assertEqual(size.parseSpec("2 kilobyte"), Decimal(2000))
            self.assertEqual(size.parseSpec("2 kilobytes"), Decimal(2000))
            self.assertEqual(size.parseSpec("2 KB"), Decimal(2000))
            self.assertEqual(size.parseSpec("2 K"), Decimal(2048))
            self.assertEqual(size.parseSpec("2 k"), Decimal(2048))
            self.assertEqual(size.parseSpec("2 Ki"), Decimal(2048))
            self.assertEqual(size.parseSpec("2 g"), Decimal(2 * 1024 ** 3))
            self.assertEqual(size.parseSpec("2 G"), Decimal(2 * 1024 ** 3))

            # Test parsing foreign spec
            self.assertEqual(size.parseSpec("1 %s%s" % (_("kibi"), _("bytes"))), Decimal(1024))

            # Can't parse a valueless number
            with self.assertRaises(ValueError):
                size.parseSpec("Ki")

            self.assertEqual(size.parseSpec("2 %s" % _("K")), Decimal(2048))
            self.assertEqual(size.parseSpec("2 %s" % _("Ki")), Decimal(2048))
            self.assertEqual(size.parseSpec("2 %s" % _("g")), Decimal(2 * 1024 ** 3))
            self.assertEqual(size.parseSpec("2 %s" % _("G")), Decimal(2 * 1024 ** 3))
Exemplo n.º 4
0
 def testLeadingZero(self):
     self.assertEqual(size.parseSpec("001 KiB"), Decimal(1024))
     self.assertEqual(size.parseSpec("1e+01"), Decimal(10))
Exemplo n.º 5
0
    def testFloatingPointStr(self):
        self.assertEqual(size.parseSpec("1.5e+0 KiB"), Decimal(1536))
        self.assertEqual(size.parseSpec("0.0"), Decimal(0))
        self.assertEqual(size.parseSpec("0.9 KiB"), Decimal("921.6"))
        self.assertEqual(size.parseSpec("1.5 KiB"), Decimal(1536))
        self.assertEqual(size.parseSpec("0.5 KiB"), Decimal(512))
        self.assertEqual(size.parseSpec(".5 KiB"), Decimal(512))
        self.assertEqual(size.parseSpec("1. KiB"), Decimal(1024))
        self.assertEqual(size.parseSpec("-1. KiB"), Decimal(-1024))
        self.assertEqual(size.parseSpec("+1. KiB"), Decimal(1024))
        self.assertEqual(size.parseSpec("+1.0000000e+0 KiB"), Decimal(1024))
        self.assertEqual(size.parseSpec("+.5 KiB"), Decimal(512))

        with self.assertRaises(ValueError):
            # this is a fragment of an arithmetic expression
            size.parseSpec("+ 1 KiB")

        with self.assertRaises(ValueError):
            # this is a fragment of an arithmetic expression
            size.parseSpec("- 1 KiB")

        with self.assertRaises(ValueError):
            # this is a lonely .
            size.parseSpec(". KiB")

        with self.assertRaises(ValueError):
            # this has a fragmentary exponent
            size.parseSpec("1.0e+ KiB")

        with self.assertRaises(ValueError):
            # this is a version string, not a number
            size.parseSpec("1.0.0")
Exemplo n.º 6
0
 def testScientificNotation(self):
     self.assertEqual(size.parseSpec("1e+0 KiB"), Decimal(1024))
     self.assertEqual(size.parseSpec("1e-0 KiB"), Decimal(1024))
     self.assertEqual(size.parseSpec("1e-1 KB"), Decimal(100))
     self.assertEqual(size.parseSpec("1E-4KB"), Decimal("0.1"))
     self.assertEqual(Size("1E-10KB"), Size(0))