summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGary Wilson Jr <gary.wilson@gmail.com>2008-08-11 15:24:46 +0000
committerGary Wilson Jr <gary.wilson@gmail.com>2008-08-11 15:24:46 +0000
commitc17c8ddecc5902e3069ab5fc607933463debc538 (patch)
tree85e46a640dc1c05fffa92321ee00c005586d2286 /tests
parent5d837afe239d49f075912292c4ab6a05a7a8dcdc (diff)
Refs #7742 -- Got bug639 regression tests using newforms instead of oldforms.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8304 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/bug639/models.py13
-rw-r--r--tests/regressiontests/bug639/tests.py40
2 files changed, 29 insertions, 24 deletions
diff --git a/tests/regressiontests/bug639/models.py b/tests/regressiontests/bug639/models.py
index 22dd440fc3..12f5f7b147 100644
--- a/tests/regressiontests/bug639/models.py
+++ b/tests/regressiontests/bug639/models.py
@@ -2,19 +2,24 @@ import tempfile
from django.db import models
from django.core.files.storage import FileSystemStorage
+from django.forms import ModelForm
temp_storage = FileSystemStorage(tempfile.gettempdir())
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.
+
+ # 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):
super(Photo, self).save()
self._savecount += 1
+
+class PhotoForm(ModelForm):
+ class Meta:
+ model = Photo
diff --git a/tests/regressiontests/bug639/tests.py b/tests/regressiontests/bug639/tests.py
index 69e4a3ba3b..7410b2fd97 100644
--- a/tests/regressiontests/bug639/tests.py
+++ b/tests/regressiontests/bug639/tests.py
@@ -1,36 +1,36 @@
"""
-Tests for file field behavior, and specifically #639, in which Model.save() gets
-called *again* for each FileField. This test will fail if calling an
-auto-manipulator's save() method causes Model.save() to be called more than once.
+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 regressiontests.bug639.models import Photo
-from django.http import QueryDict
-from django.utils.datastructures import MultiValueDict
+
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.
+ Simulate a file upload and check how many times Model.save() gets
+ called.
"""
- # Grab an image for testing
- img = open(os.path.join(os.path.dirname(__file__), "test.jpg"), "rb").read()
-
- # Fake a request query dict with the file
- qd = QueryDict("title=Testing&image=", mutable=True)
- qd["image_file"] = SimpleUploadedFile('test.jpg', img, 'image/jpeg')
+ # 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')}
- manip = Photo.AddManipulator()
- manip.do_html2python(qd)
- p = manip.save(qd)
-
- # Check the savecount stored on the object (see the model)
+ 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.