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
@@ -349,7 +349,7 @@ class DurationFieldModel(models.Model):
349
349
"""
350
350
A model that defines DurationField.
351
351
"""
352
- duration_field = ModelDurationField ()
352
+ duration_field = models . DurationField ()
353
353
354
354
class TestSerializer (serializers .ModelSerializer ):
355
355
class Meta :
@@ -363,6 +363,27 @@ class Meta:
363
363
""" )
364
364
self .assertEqual (unicode_repr (TestSerializer ()), expected )
365
365
366
+ def test_duration_field_with_validators (self ):
367
+ class ValidatedDurationFieldModel (models .Model ):
368
+ """
369
+ A model that defines DurationField with validators.
370
+ """
371
+ duration_field = models .DurationField (
372
+ validators = [MinValueValidator (datetime .timedelta (days = 1 )), MaxValueValidator (datetime .timedelta (days = 3 ))]
373
+ )
374
+
375
+ class TestSerializer (serializers .ModelSerializer ):
376
+ class Meta :
377
+ model = ValidatedDurationFieldModel
378
+ fields = '__all__'
379
+
380
+ expected = dedent ("""
381
+ TestSerializer():
382
+ id = IntegerField(label='ID', read_only=True)
383
+ duration_field = DurationField(max_value=datetime.timedelta(3), min_value=datetime.timedelta(1))
384
+ """ )
385
+ self .assertEqual (unicode_repr (TestSerializer ()), expected )
386
+
366
387
367
388
class TestGenericIPAddressFieldValidation (TestCase ):
368
389
def test_ip_address_validation (self ):
0 commit comments