[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