[rhel6-branch 11/30] Pass floats as string to Decimal constructor everywhere.

mulkieran installerbot-noreply at redhat.com
Thu May 28 21:04:16 UTC 2015


From: Anne Mulhern <amulhern at redhat.com>

Signed-off-by: Anne Mulhern <amulhern at redhat.com>
---
 blivet/size.py     | 4 +++-
 tests/size_test.py | 8 ++++----
 tests/util_test.py | 2 +-
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/blivet/size.py b/blivet/size.py
index da44343..3261ea5 100644
--- a/blivet/size.py
+++ b/blivet/size.py
@@ -244,7 +244,9 @@ def __new__(cls, value=0, context=None):
         """
         if isinstance(value, (six.string_types, bytes)):
             size = _parseSpec(value)
-        elif isinstance(value, (six.integer_types, float, Decimal)):
+        elif isinstance(value, float):
+            size = Decimal(str(value))
+        elif isinstance(value, (six.integer_types, Decimal)):
             size = Decimal(value)
         elif isinstance(value, Size):
             size = Decimal(value.convertTo())
diff --git a/tests/size_test.py b/tests/size_test.py
index d686aa8..d9d93d9 100644
--- a/tests/size_test.py
+++ b/tests/size_test.py
@@ -37,7 +37,7 @@ class SizeTestCase(unittest.TestCase):
 
     def testExceptions(self):
         zero = Size(0)
-        self.assertEqual(zero, Size(0.0))
+        self.assertEqual(zero, Size("0.0"))
 
         s = Size(500)
         with self.assertRaises(SizePlacesError):
@@ -164,7 +164,7 @@ def testMinValue(self):
 
         s = Size("0.5 GiB")
         self.assertEquals(s.humanReadable(max_places=2, min_value=1), "512 MiB")
-        self.assertEquals(s.humanReadable(max_places=2, min_value=Decimal(0.1)), "0.5 GiB")
+        self.assertEquals(s.humanReadable(max_places=2, min_value=Decimal("0.1")), "0.5 GiB")
         self.assertEquals(s.humanReadable(max_places=2, min_value=Decimal(1)), "512 MiB")
 
     def testConvertToPrecision(self):
@@ -172,7 +172,7 @@ def testConvertToPrecision(self):
         self.assertEquals(s.convertTo(None), 1835008)
         self.assertEquals(s.convertTo(B), 1835008)
         self.assertEquals(s.convertTo(KiB), 1792)
-        self.assertEquals(s.convertTo(MiB), 1.75)
+        self.assertEquals(s.convertTo(MiB), Decimal("1.75"))
 
     def testNegative(self):
         s = Size("-500MiB")
@@ -180,7 +180,7 @@ def testNegative(self):
         self.assertEquals(s.convertTo(B), -524288000)
 
     def testPartialBytes(self):
-        self.assertEquals(Size(1024.6), Size(1024))
+        self.assertEquals(Size("1024.6"), Size(1024))
         self.assertEquals(Size("%s KiB" % (1/1025.0,)), Size(0))
         self.assertEquals(Size("%s KiB" % (1/1023.0,)), Size(1))
 
diff --git a/tests/util_test.py b/tests/util_test.py
index 0c7c095..b1468b9 100644
--- a/tests/util_test.py
+++ b/tests/util_test.py
@@ -12,7 +12,7 @@ class MiscTest(unittest.TestCase):
     def test_power_of_two(self):
         self.assertFalse(util.power_of_two(None))
         self.assertFalse(util.power_of_two("not a number"))
-        self.assertFalse(util.power_of_two(Decimal(2.2)))
+        self.assertFalse(util.power_of_two(Decimal("2.2")))
         self.assertFalse(util.power_of_two(-1))
         self.assertFalse(util.power_of_two(0))
         self.assertFalse(util.power_of_two(1))


-- 
To view this commit on github, visit https://github.com/rhinstaller/blivet/commit/010125d0fd8eb4a4158d455994434e63d3037a28


More information about the anaconda-patches mailing list