Permalink
Browse files

Fixed #22979 -- Moved bug* tests

  • Loading branch information...
tb123 authored and timgraham committed Jul 26, 2014
1 parent f14898a commit 11181a64f947236402903deb6fa8c4df7b8bff75
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -3,12 +3,12 @@
from django.contrib import admin
-class Bug8245Test(TestCase):
+class AdminAutoDiscoverTests(TestCase):
"""
Test for bug #8245 - don't raise an AlreadyRegistered exception when using
autodiscover() and an admin.py module contains an error.
"""
- def test_bug_8245(self):
+ def test_double_call_autodiscover(self):
# The first time autodiscover is called, we should get our real error.
with self.assertRaises(Exception) as cm:
admin.autodiscover()
View
@@ -1,31 +0,0 @@
-import os
-import tempfile
-
-from django.core.files.storage import FileSystemStorage
-from django.db import models
-from django.forms import ModelForm
-
-
-temp_storage_dir = tempfile.mkdtemp(dir=os.environ['DJANGO_TEST_TEMP_DIR'])
-temp_storage = FileSystemStorage(temp_storage_dir)
-
-
-class Photo(models.Model):
- title = models.CharField(max_length=30)
- image = models.FileField(storage=temp_storage, upload_to='tests')
-
- # Support code for the tests; this keeps track of how many times save()
- # gets called on each instance.
- def __init__(self, *args, **kwargs):
- super(Photo, self).__init__(*args, **kwargs)
- self._savecount = 0
-
- def save(self, force_insert=False, force_update=False):
- super(Photo, self).save(force_insert, force_update)
- self._savecount += 1
-
-
-class PhotoForm(ModelForm):
- class Meta:
- model = Photo
- fields = '__all__'
View
Binary file not shown.
View
@@ -1,45 +0,0 @@
-"""
-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 shutil
-import unittest
-
-from django.core.files.uploadedfile import SimpleUploadedFile
-from django.utils._os import upath
-
-from .models import Photo, PhotoForm, temp_storage_dir
-
-
-class Bug639Test(unittest.TestCase):
-
- def test_bug_639(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(upath(__file__)), "test.jpg")
- with open(filename, "rb") as fp:
- img = fp.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)
- shutil.rmtree(temp_storage_dir)
No changes.
@@ -407,3 +407,19 @@ class StumpJoke(models.Model):
class Student(models.Model):
character = models.ForeignKey(Character)
study = models.CharField(max_length=30)
+
+
+# Model for #639
+class Photo(models.Model):
+ title = models.CharField(max_length=30)
+ image = models.FileField(storage=temp_storage, upload_to='tests')
+
+ # Support code for the tests; this keeps track of how many times save()
+ # gets called on each instance.
+ def __init__(self, *args, **kwargs):
+ super(Photo, self).__init__(*args, **kwargs)
+ self._savecount = 0
+
+ def save(self, force_insert=False, force_update=False):
+ super(Photo, self).save(force_insert, force_update)
+ self._savecount += 1
View
@@ -20,7 +20,7 @@
from .models import (Article, ArticleStatus, Author, Author1, BetterWriter, BigInt, Book,
Category, CommaSeparatedInteger, CustomFF, CustomFieldForExclusionModel,
DerivedBook, DerivedPost, Document, ExplicitPK, FilePathModel, FlexibleDatePost, Homepage,
- ImprovedArticle, ImprovedArticleWithParentLink, Inventory, Person, Post, Price,
+ ImprovedArticle, ImprovedArticleWithParentLink, Inventory, Person, Photo, Post, Price,
Product, Publication, TextFile, Triple, Writer, WriterProfile,
Colour, ColourfulItem, DateTimePost, CustomErrorMessage,
test_images, StumpJoke, Character, Student)
@@ -1856,6 +1856,36 @@ class Meta:
form = CFFForm(data={'f': None})
form.save()
+ def test_file_field_multiple_save(self):
+ """
+ Simulate a file upload and check how many times Model.save() gets
+ called. Test for bug #639.
+ """
+ class PhotoForm(forms.ModelForm):
+ class Meta:
+ model = Photo
+ fields = '__all__'
+
+ # Grab an image for testing.
+ filename = os.path.join(os.path.dirname(upath(__file__)), "test.png")
+ with open(filename, "rb") as fp:
+ img = fp.read()
+
+ # Fake a POST QueryDict and FILES MultiValueDict.
+ data = {'title': 'Testing'}
+ files = {"image": SimpleUploadedFile('test.png', img, 'image/png')}
+
+ form = PhotoForm(data=data, files=files)
+ p = form.save()
+
+ try:
+ # Check the savecount stored on the object (see the model).
+ self.assertEqual(p._savecount, 1)
+ finally:
+ # Delete the "uploaded" file to avoid clogging /tmp.
+ p = Photo.objects.get()
+ p.image.delete(save=False)
+
def test_file_path_field_blank(self):
"""
Regression test for #8842: FilePathField(blank=True)

0 comments on commit 11181a6

Please sign in to comment.