mirror of
				https://github.com/django/django.git
				synced 2025-10-30 17:16:10 +00:00 
			
		
		
		
	git-svn-id: http://code.djangoproject.com/svn/django/trunk@8304 bcc190cf-cafb-0310-a4f2-bffc1f526a37
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """
 | |
| Tests for file field behavior, and specifically #639, in which Model.save()
 | |
| gets called *again* for each FileField. This test will fail if calling a
 | |
| ModelForm's save() method causes Model.save() to be called more than once.
 | |
| """
 | |
| 
 | |
| import os
 | |
| import unittest
 | |
| 
 | |
| from django.core.files.uploadedfile import SimpleUploadedFile
 | |
| from regressiontests.bug639.models import Photo, PhotoForm
 | |
| 
 | |
| class Bug639Test(unittest.TestCase):
 | |
| 
 | |
|     def testBug639(self):
 | |
|         """
 | |
|         Simulate a file upload and check how many times Model.save() gets
 | |
|         called.
 | |
|         """
 | |
|         # Grab an image for testing.
 | |
|         filename = os.path.join(os.path.dirname(__file__), "test.jpg")
 | |
|         img = open(filename, "rb").read()
 | |
| 
 | |
|         # Fake a POST QueryDict and FILES MultiValueDict.
 | |
|         data = {'title': 'Testing'}
 | |
|         files = {"image": SimpleUploadedFile('test.jpg', img, 'image/jpeg')}
 | |
| 
 | |
|         form = PhotoForm(data=data, files=files)
 | |
|         p = form.save()
 | |
| 
 | |
|         # Check the savecount stored on the object (see the model).
 | |
|         self.assertEqual(p._savecount, 1)
 | |
| 
 | |
|     def tearDown(self):
 | |
|         """
 | |
|         Make sure to delete the "uploaded" file to avoid clogging /tmp.
 | |
|         """
 | |
|         p = Photo.objects.get()
 | |
|         p.image.delete(save=False)
 |