Fixed test failure on Oracle: model_fields.tests.test_float_validates_object

Failing test introduced in fix for refs #22210.
This commit is contained in:
Shai Berger 2014-03-12 20:17:43 +02:00
parent aaad3e27ac
commit d181384e5f
1 changed files with 15 additions and 3 deletions

View File

@ -8,7 +8,7 @@ import warnings
from django import test from django import test
from django import forms from django import forms
from django.core.exceptions import ValidationError 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 ( from django.db.models.fields import (
AutoField, BigIntegerField, BinaryField, BooleanField, CharField, AutoField, BigIntegerField, BinaryField, BooleanField, CharField,
CommaSeparatedIntegerField, DateField, DateTimeField, DecimalField, CommaSeparatedIntegerField, DateField, DateTimeField, DecimalField,
@ -80,10 +80,22 @@ class BasicFieldTests(test.TestCase):
def test_float_validates_object(self): def test_float_validates_object(self):
instance = FloatModel(size=2.5) 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() instance.save()
self.assertTrue(instance.id) self.assertTrue(instance.id)
# Set field to object on saved instance
obj = FloatModel.objects.get(pk=1) 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 obj.size = obj
with self.assertRaises(TypeError): with self.assertRaises(TypeError):
obj.save() obj.save()