diff options
author | Raphaël Barrois <raphael.barrois@polytechnique.org> | 2013-10-29 01:07:43 +0100 |
---|---|---|
committer | Raphaël Barrois <raphael.barrois@polytechnique.org> | 2013-10-29 01:07:43 +0100 |
commit | 5c10062ce0ffb83010aba800f25f2df3f6540211 (patch) | |
tree | 3ea77a4a85f33044705c002ce5fc8a469fd09385 /factory | |
parent | cea04334adfa5ac1458465dcf7f76aa8ee2ed425 (diff) | |
download | factory-boy-5c10062ce0ffb83010aba800f25f2df3f6540211.tar factory-boy-5c10062ce0ffb83010aba800f25f2df3f6540211.tar.gz |
Fix FuzzyDecimal on Python2.6.
Diffstat (limited to 'factory')
-rw-r--r-- | factory/compat.py | 10 | ||||
-rw-r--r-- | factory/fuzzy.py | 2 |
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) |