summaryrefslogtreecommitdiff
path: root/factory
diff options
context:
space:
mode:
authorRaphaël Barrois <raphael.barrois@polytechnique.org>2013-10-29 01:07:43 +0100
committerRaphaël Barrois <raphael.barrois@polytechnique.org>2013-10-29 01:07:43 +0100
commit5c10062ce0ffb83010aba800f25f2df3f6540211 (patch)
tree3ea77a4a85f33044705c002ce5fc8a469fd09385 /factory
parentcea04334adfa5ac1458465dcf7f76aa8ee2ed425 (diff)
downloadfactory-boy-5c10062ce0ffb83010aba800f25f2df3f6540211.tar
factory-boy-5c10062ce0ffb83010aba800f25f2df3f6540211.tar.gz
Fix FuzzyDecimal on Python2.6.
Diffstat (limited to 'factory')
-rw-r--r--factory/compat.py10
-rw-r--r--factory/fuzzy.py2
2 files changed, 11 insertions, 1 deletions
diff --git a/factory/compat.py b/factory/compat.py
index f77458f..1e0b2d2 100644
--- a/factory/compat.py
+++ b/factory/compat.py
@@ -24,6 +24,7 @@
"""Compatibility tools"""
import datetime
+import decimal
import sys
PY2 = (sys.version_info[0] == 2)
@@ -40,6 +41,15 @@ else: # pragma: no cover
from io import BytesIO
+
+if sys.version_info[:1] == (2, 6): # pragma: no cover
+ def float_to_decimal(fl):
+ return decimal.Decimal(str(fl))
+else: # pragma: no cover
+ def float_to_decimal(fl):
+ return decimal.Decimal(fl)
+
+
try: # pragma: no cover
# Python >= 3.2
UTC = datetime.timezone.utc
diff --git a/factory/fuzzy.py b/factory/fuzzy.py
index 6c7a866..34949c5 100644
--- a/factory/fuzzy.py
+++ b/factory/fuzzy.py
@@ -136,7 +136,7 @@ class FuzzyDecimal(BaseFuzzyAttribute):
super(FuzzyDecimal, self).__init__(**kwargs)
def fuzz(self):
- base = decimal.Decimal(random.uniform(self.low, self.high))
+ base = compat.float_to_decimal(random.uniform(self.low, self.high))
return base.quantize(decimal.Decimal(10) ** -self.precision)