From 1a6057fd9be3bd534c5f11ac28e269b7b1336232 Mon Sep 17 00:00:00 2001 From: Chuan Shi Date: Thu, 7 Mar 2019 15:53:51 -0800 Subject: [PATCH] fix tests --- rest_framework/fields.py | 5 ++++- tests/test_fields.py | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 01ba6225c..1733f1139 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1080,7 +1080,10 @@ class DecimalField(Field): if value in (decimal.Decimal('Inf'), decimal.Decimal('-Inf')): self.fail('invalid') - return self.validate_precision(self.quantize(value)) + if self.rounding is None: + return self.quantize(self.validate_precision(value)) + else: + return self.validate_precision(self.quantize(value)) def validate_precision(self, value): """ diff --git a/tests/test_fields.py b/tests/test_fields.py index 013bd3748..dbd336e0f 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1168,10 +1168,10 @@ class TestQuantizedValueForDecimal(TestCase): value = field.to_internal_value('12.0').as_tuple() expected_digit_tuple = (0, (1, 2, 0, 0), -2) assert value == expected_digit_tuple - + def test_rounding_value_for_decimal(self): - field = serializers.DecimalField(max_digits=4, decimal_places=2, rounding=ROUND_HALF_UP) - value = field.to_internal_value('12.004).as_tuple() + field = serializers.DecimalField(max_digits=4, decimal_places=2, rounding=ROUND_DOWN) + value = field.to_internal_value('12.004').as_tuple() expected_digit_tuple = (0, (1, 2, 0, 0), -2) assert value == expected_digit_tuple