From ed7821231b7dbf34a6c8ca65be3b9bcbda4a0703 Mon Sep 17 00:00:00 2001 From: Marc Tamlyn Date: Tue, 15 Jul 2014 10:35:29 +0100 Subject: Fixed #19463 -- Added UUIDField Uses native support in postgres, and char(32) on other backends. --- tests/forms_tests/tests/test_fields.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'tests/forms_tests') diff --git a/tests/forms_tests/tests/test_fields.py b/tests/forms_tests/tests/test_fields.py index b64e55b066..22af2cf23d 100644 --- a/tests/forms_tests/tests/test_fields.py +++ b/tests/forms_tests/tests/test_fields.py @@ -30,6 +30,7 @@ import datetime import pickle import re import os +import uuid from decimal import Decimal from unittest import skipIf import warnings @@ -46,7 +47,7 @@ from django.forms import ( Form, forms, HiddenInput, ImageField, IntegerField, MultipleChoiceField, NullBooleanField, NumberInput, PasswordInput, RadioSelect, RegexField, SplitDateTimeField, TextInput, Textarea, TimeField, TypedChoiceField, - TypedMultipleChoiceField, URLField, ValidationError, Widget, + TypedMultipleChoiceField, URLField, UUIDField, ValidationError, Widget, ) from django.test import SimpleTestCase from django.utils import formats @@ -1342,3 +1343,24 @@ class FieldsTests(SimpleTestCase): self.assertTrue(f.has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['2008-05-06', '12:40:00'])) self.assertFalse(f.has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['06/05/2008', '12:40'])) self.assertTrue(f.has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['06/05/2008', '12:41'])) + + def test_uuidfield_1(self): + field = UUIDField() + value = field.clean('550e8400e29b41d4a716446655440000') + self.assertEqual(value, uuid.UUID('550e8400e29b41d4a716446655440000')) + + def test_uuidfield_2(self): + field = UUIDField(required=False) + value = field.clean('') + self.assertEqual(value, None) + + def test_uuidfield_3(self): + field = UUIDField() + with self.assertRaises(ValidationError) as cm: + field.clean('550e8400') + self.assertEqual(cm.exception.messages[0], 'Enter a valid UUID.') + + def test_uuidfield_4(self): + field = UUIDField() + value = field.prepare_value(uuid.UUID('550e8400e29b41d4a716446655440000')) + self.assertEqual(value, '550e8400e29b41d4a716446655440000') -- cgit v1.3