aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/fields.py
diff options
context:
space:
mode:
authorAndreas Pelme2013-02-14 21:19:51 +0100
committerAndreas Pelme2013-02-14 21:19:51 +0100
commit5a5df18d182d43d993da8f0b5d4a8888e868fcae (patch)
tree7de7b40330976a8573fa3f62d8e194ab924cedd7 /rest_framework/tests/fields.py
parentde029561d0cbb090c0d704811551b2d611472288 (diff)
downloaddjango-rest-framework-5a5df18d182d43d993da8f0b5d4a8888e868fcae.tar.bz2
Added a serializer TimeField
Diffstat (limited to 'rest_framework/tests/fields.py')
-rw-r--r--rest_framework/tests/fields.py48
1 files changed, 47 insertions, 1 deletions
diff --git a/rest_framework/tests/fields.py b/rest_framework/tests/fields.py
index b7587bf1..34f61678 100644
--- a/rest_framework/tests/fields.py
+++ b/rest_framework/tests/fields.py
@@ -2,8 +2,10 @@
General serializer field tests.
"""
from __future__ import unicode_literals
+import datetime
from django.db import models
from django.test import TestCase
+from django.core import validators
from rest_framework import serializers
@@ -26,7 +28,16 @@ class CharPrimaryKeyModelSerializer(serializers.ModelSerializer):
model = CharPrimaryKeyModel
-class ReadOnlyFieldTests(TestCase):
+class TimeFieldModel(models.Model):
+ clock = models.TimeField()
+
+
+class TimeFieldModelSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = TimeFieldModel
+
+
+class BasicFieldTests(TestCase):
def test_auto_now_fields_read_only(self):
"""
auto_now and auto_now_add fields should be read_only by default.
@@ -47,3 +58,38 @@ class ReadOnlyFieldTests(TestCase):
"""
serializer = CharPrimaryKeyModelSerializer()
self.assertEquals(serializer.fields['id'].read_only, False)
+
+ def test_TimeField_from_native(self):
+ f = serializers.TimeField()
+ result = f.from_native('12:34:56.987654')
+
+ self.assertEqual(datetime.time(12, 34, 56, 987654), result)
+
+ def test_TimeField_from_native_datetime_time(self):
+ """
+ Make sure from_native() accepts a datetime.time instance.
+ """
+ f = serializers.TimeField()
+ result = f.from_native(datetime.time(12, 34, 56))
+ self.assertEqual(result, datetime.time(12, 34, 56))
+
+ def test_TimeField_from_native_empty(self):
+ f = serializers.TimeField()
+ result = f.from_native('')
+ self.assertEqual(result, None)
+
+ def test_TimeField_from_native_invalid_time(self):
+ f = serializers.TimeField()
+
+ try:
+ f.from_native('12:69:12')
+ except validators.ValidationError as e:
+ self.assertEqual(e.messages, ["'12:69:12' value has an invalid "
+ "format. It must be a valid time "
+ "in the HH:MM[:ss[.uuuuuu]] format."])
+ else:
+ self.fail("ValidationError was not properly raised")
+
+ def test_TimeFieldModelSerializer(self):
+ serializer = TimeFieldModelSerializer()
+ self.assertTrue(isinstance(serializer.fields['clock'], serializers.TimeField))