add testcase and PEP8 multilines fix

This commit is contained in:
Trang Tran 2017-11-03 22:37:25 +07:00
parent a1b5820b7c
commit 6d3d82ae54
2 changed files with 18 additions and 2 deletions

View File

@ -1029,8 +1029,8 @@ class DecimalField(Field):
if rounding is not None: if rounding is not None:
valid_roundings = [v for k, v in vars(decimal).items() if k.startswith('ROUND_')] valid_roundings = [v for k, v in vars(decimal).items() if k.startswith('ROUND_')]
assert rounding in valid_roundings, \ assert rounding in valid_roundings, (
'Invalid rounding option %s. Valid values for rounding are: %s' % (rounding, valid_roundings) 'Invalid rounding option %s. Valid values for rounding are: %s' % (rounding, valid_roundings))
self.rounding = rounding self.rounding = rounding
def to_internal_value(self, data): def to_internal_value(self, data):

View File

@ -1092,6 +1092,22 @@ class TestNoDecimalPlaces(FieldValues):
field = serializers.DecimalField(max_digits=6, decimal_places=None) field = serializers.DecimalField(max_digits=6, decimal_places=None)
class TestRoundingDecimalField(TestCase):
def test_valid_rounding(self):
field = serializers.DecimalField(max_digits=4, decimal_places=2, rounding='ROUND_UP')
assert field.to_representation(Decimal('1.234')) == '1.24'
field = serializers.DecimalField(max_digits=4, decimal_places=2, rounding='ROUND_DOWN')
assert field.to_representation(Decimal('1.234')) == '1.23'
def test_invalid_rounding(self):
with pytest.raises(AssertionError) as excinfo:
serializers.DecimalField(max_digits=1, decimal_places=1, rounding='ROUND_UNKNOWN')
assert 'Invalid rounding option' in str(excinfo.value)
# Date & time serializers... # Date & time serializers...
class TestDateField(FieldValues): class TestDateField(FieldValues):