예제 #1
0
파일: size_test.py 프로젝트: dashea/blivet
 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")
예제 #2
0
파일: size_test.py 프로젝트: dashea/blivet
    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")
예제 #3
0
파일: size_test.py 프로젝트: dashea/blivet
    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))
예제 #4
0
파일: size_test.py 프로젝트: dashea/blivet
 def testLeadingZero(self):
     self.assertEqual(size.parseSpec("001 KiB"), Decimal(1024))
     self.assertEqual(size.parseSpec("1e+01"), Decimal(10))
예제 #5
0
파일: size_test.py 프로젝트: dashea/blivet
    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")
예제 #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))