7
7
"""
8
8
from __future__ import unicode_literals
9
9
10
+ import datetime
10
11
import decimal
11
12
from collections import OrderedDict
12
13
16
17
MaxValueValidator , MinLengthValidator , MinValueValidator
17
18
)
18
19
from django .db import models
19
- from django .db .models import DurationField as ModelDurationField
20
20
from django .test import TestCase
21
21
from django .utils import six
22
22
@@ -347,7 +347,7 @@ class DurationFieldModel(models.Model):
347
347
"""
348
348
A model that defines DurationField.
349
349
"""
350
- duration_field = ModelDurationField ()
350
+ duration_field = models . DurationField ()
351
351
352
352
class TestSerializer (serializers .ModelSerializer ):
353
353
class Meta :
@@ -361,6 +361,27 @@ class Meta:
361
361
""" )
362
362
self .assertEqual (unicode_repr (TestSerializer ()), expected )
363
363
364
+ def test_duration_field_with_validators (self ):
365
+ class ValidatedDurationFieldModel (models .Model ):
366
+ """
367
+ A model that defines DurationField.
368
+ """
369
+ duration_field = models .DurationField (
370
+ validators = [MinValueValidator (datetime .timedelta (days = 1 )), MaxValueValidator (datetime .timedelta (days = 3 ))]
371
+ )
372
+
373
+ class TestSerializer (serializers .ModelSerializer ):
374
+ class Meta :
375
+ model = ValidatedDurationFieldModel
376
+ fields = '__all__'
377
+
378
+ expected = dedent ("""
379
+ TestSerializer():
380
+ id = IntegerField(label='ID', read_only=True)
381
+ duration_field = DurationField(max_value=datetime.timedelta(3), min_value=datetime.timedelta(1))
382
+ """ )
383
+ self .assertEqual (unicode_repr (TestSerializer ()), expected )
384
+
364
385
365
386
class TestGenericIPAddressFieldValidation (TestCase ):
366
387
def test_ip_address_validation (self ):
0 commit comments