Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Add regression test for DecimalField mapping
  • Loading branch information
jpadilla committed Oct 30, 2015
commit 7d79cf35b7be01b175d8c25276a4414e8144a16b
40 changes: 39 additions & 1 deletion tests/test_model_serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

from rest_framework import serializers
from rest_framework.compat import DurationField as ModelDurationField
from rest_framework.compat import unicode_repr
from rest_framework.compat import DecimalValidator, unicode_repr


def dedent(blocktext):
Expand Down Expand Up @@ -861,3 +861,41 @@ class Meta:
}]

assert serializer.data == expected


class DecimalFieldModel(models.Model):
decimal_field = models.DecimalField(
max_digits=3,
decimal_places=1,
validators=[MinValueValidator(1), MaxValueValidator(3)]
)


class TestDecimalFieldMappings(TestCase):
@pytest.mark.skipif(DecimalValidator is not None,
reason='DecimalValidator is available in Django 1.9+')
def test_decimal_field_has_no_decimal_validator(self):
"""
Test that a DecimalField has no validators before Django 1.9.
"""
class TestSerializer(serializers.ModelSerializer):
class Meta:
model = DecimalFieldModel

serializer = TestSerializer()

assert len(serializer.fields['decimal_field'].validators) == 0

@pytest.mark.skipif(DecimalValidator is None,
reason='DecimalValidator is available in Django 1.9+')
def test_decimal_field_has_decimal_validator(self):
"""
Test that a DecimalField has DecimalValidator in Django 1.9+.
"""
class TestSerializer(serializers.ModelSerializer):
class Meta:
model = DecimalFieldModel

serializer = TestSerializer()

assert len(serializer.fields['decimal_field'].validators) == 2