mirror of
				https://github.com/django/django.git
				synced 2025-10-26 07:06:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from django.db import transaction
 | |
| from django.test import TestCase
 | |
| 
 | |
| from .models import FloatModel
 | |
| 
 | |
| 
 | |
| class TestFloatField(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)
 | |
|         # Set field to object on saved instance
 | |
|         instance.size = instance
 | |
|         msg = (
 | |
|             'Tried to update field model_fields.FloatModel.size with a model '
 | |
|             'instance, <FloatModel: FloatModel object>. Use a value '
 | |
|             'compatible with FloatField.'
 | |
|         )
 | |
|         with transaction.atomic():
 | |
|             with self.assertRaisesMessage(TypeError, msg):
 | |
|                 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()
 |