From d181384e5f01e9d23fd9872b2cb532e0d70249b6 Mon Sep 17 00:00:00 2001 From: Shai Berger Date: Wed, 12 Mar 2014 20:17:43 +0200 Subject: [PATCH] Fixed test failure on Oracle: model_fields.tests.test_float_validates_object Failing test introduced in fix for refs #22210. --- tests/model_fields/tests.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/model_fields/tests.py b/tests/model_fields/tests.py index a39ad81f64..8cd58b8a44 100644 --- a/tests/model_fields/tests.py +++ b/tests/model_fields/tests.py @@ -8,7 +8,7 @@ import warnings from django import test from django import forms from django.core.exceptions import ValidationError -from django.db import connection, models, IntegrityError +from django.db import connection, transaction, models, IntegrityError from django.db.models.fields import ( AutoField, BigIntegerField, BinaryField, BooleanField, CharField, CommaSeparatedIntegerField, DateField, DateTimeField, DecimalField, @@ -80,10 +80,22 @@ class BasicFieldTests(test.TestCase): def test_float_validates_object(self): instance = FloatModel(size=2.5) + # Try setting float field to unsaved object + instance.size = instance + with transaction.atomic(): + with self.assertRaises(TypeError): + instance.save() + # Set value to valid and save + instance.size = 2.5 instance.save() self.assertTrue(instance.id) - - obj = FloatModel.objects.get(pk=1) + # Set field to object on saved instance + instance.size = instance + with transaction.atomic(): + with self.assertRaises(TypeError): + instance.save() + # Try setting field to object on retrieved object + obj = FloatModel.objects.get(pk=instance.id) obj.size = obj with self.assertRaises(TypeError): obj.save()