Source code for drf_braces.tests.forms.test_fields

from __future__ import absolute_import, print_function, unicode_literals
import unittest
from datetime import datetime

import pytz
from dateutil.tz import tzoffset
from django import forms
from rest_framework import ISO_8601

from ...forms.fields import ISO8601DateTimeField


[docs]class TestISO8601DateTimeField(unittest.TestCase):
[docs] def test_to_python_empty(self): field = ISO8601DateTimeField(required=False) self.assertIsNone(field.clean(''))
[docs] def test_to_python_not_iso8601(self): field = ISO8601DateTimeField() self.assertEqual(field.clean('2015-01-01 16:30'), datetime(2015, 1, 1, 16, 30)) with self.assertRaises(forms.ValidationError): field.clean('2015-01-01T16:30')
[docs] def test_to_python_iso8601(self): field = ISO8601DateTimeField(input_formats=[ISO_8601]) self.assertEqual( field.clean('2015-01-01 16:30'), datetime(2015, 1, 1, 16, 30) ) self.assertEqual( field.clean('2015-01-01T16:30'), datetime(2015, 1, 1, 16, 30) ) self.assertEqual( field.clean('2015-01-01T16:30+00:00'), datetime(2015, 1, 1, 16, 30).replace(tzinfo=pytz.UTC) ) self.assertEqual( field.clean('2015-01-01T16:30+04:00'), datetime(2015, 1, 1, 16, 30).replace(tzinfo=tzoffset(None, 4 * 60 * 60)) ) with self.assertRaises(forms.ValidationError): field.clean('2015-01-01T16:30+A')