diff --git a/tests/models.py b/tests/models.py index 85143566e..c55d4257e 100644 --- a/tests/models.py +++ b/tests/models.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals import uuid +from django.core.validators import MinValueValidator from django.db import models from django.utils.translation import ugettext_lazy as _ @@ -88,3 +89,9 @@ class NullableOneToOneSource(RESTFrameworkModel): target = models.OneToOneField( OneToOneTarget, null=True, blank=True, related_name='nullable_source', on_delete=models.CASCADE) + + +# min_value with PositiveIntegerField +class MinValueItem(RESTFrameworkModel): + integer = models.IntegerField(validators=[MinValueValidator(0)]) + positive_integer = models.PositiveIntegerField() diff --git a/tests/test_serializer.py b/tests/test_serializer.py index 32be39faa..3c5cf73c2 100644 --- a/tests/test_serializer.py +++ b/tests/test_serializer.py @@ -9,6 +9,7 @@ import pytest from rest_framework import serializers from rest_framework.compat import unicode_repr +from .models import MinValueItem from .utils import MockObject @@ -69,6 +70,21 @@ class TestSerializer: assert serializer.errors == {'non_field_errors': ['No data provided']} +class TestMinValueSerializer: + def setup(self): + class ExampleSerializer(serializers.ModelSerializer): + class Meta: + model = MinValueItem + fields = ('integer', 'positive_integer') + self.serializer = ExampleSerializer() + + def test_min_value_for_integer_field(self): + assert self.serializer['integer'].min_value == 0 + + def test_min_value_for_positive_integer_field(self): + assert self.serializer['positive_integer'].min_value == 0 + + class TestValidateMethod: def test_non_field_error_validate_method(self): class ExampleSerializer(serializers.Serializer):