summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJacob Kaplan-Moss <jacob@jacobian.org>2008-07-07 22:06:32 +0000
committerJacob Kaplan-Moss <jacob@jacobian.org>2008-07-07 22:06:32 +0000
commit9dabd1f8ff7760f28bd1dcfa8b83ae6b1c0b79aa (patch)
tree2d87553e045e57e83fd18279a2fffb503b61b044 /tests
parent72544950e198c08ac49ba9d878ea7440313b13a7 (diff)
Fixed #7651: uploading multiple files with the same name now work. Also, in order to test the problem the test client now handles uploading multiple files at once. Patch from Mike Axiak.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7858 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/file_uploads/tests.py31
-rw-r--r--tests/regressiontests/file_uploads/urls.py1
-rw-r--r--tests/regressiontests/file_uploads/views.py12
3 files changed, 39 insertions, 5 deletions
diff --git a/tests/regressiontests/file_uploads/tests.py b/tests/regressiontests/file_uploads/tests.py
index 8992298470..8a61966240 100644
--- a/tests/regressiontests/file_uploads/tests.py
+++ b/tests/regressiontests/file_uploads/tests.py
@@ -147,12 +147,35 @@ class FileUploadTests(TestCase):
def test_broken_custom_upload_handler(self):
f = tempfile.NamedTemporaryFile()
f.write('a' * (2 ** 21))
-
+
# AttributeError: You cannot alter upload handlers after the upload has been processed.
self.assertRaises(
AttributeError,
self.client.post,
- '/file_uploads/quota/broken/',
+ '/file_uploads/quota/broken/',
{'f': open(f.name)}
- )
- \ No newline at end of file
+ )
+
+ def test_fileupload_getlist(self):
+ file1 = tempfile.NamedTemporaryFile()
+ file1.write('a' * (2 ** 23))
+
+ file2 = tempfile.NamedTemporaryFile()
+ file2.write('a' * (2 * 2 ** 18))
+
+ file2a = tempfile.NamedTemporaryFile()
+ file2a.write('a' * (5 * 2 ** 20))
+
+ response = self.client.post('/file_uploads/getlist_count/', {
+ 'file1': open(file1.name),
+ 'field1': u'test',
+ 'field2': u'test3',
+ 'field3': u'test5',
+ 'field4': u'test6',
+ 'field5': u'test7',
+ 'file2': (open(file2.name), open(file2a.name))
+ })
+ got = simplejson.loads(response.content)
+
+ self.assertEqual(got.get('file1'), 1)
+ self.assertEqual(got.get('file2'), 2)
diff --git a/tests/regressiontests/file_uploads/urls.py b/tests/regressiontests/file_uploads/urls.py
index 529bee312d..cc4cc80fdd 100644
--- a/tests/regressiontests/file_uploads/urls.py
+++ b/tests/regressiontests/file_uploads/urls.py
@@ -7,4 +7,5 @@ urlpatterns = patterns('',
(r'^echo/$', views.file_upload_echo),
(r'^quota/$', views.file_upload_quota),
(r'^quota/broken/$', views.file_upload_quota_broken),
+ (r'^getlist_count/$', views.file_upload_getlist_count),
)
diff --git a/tests/regressiontests/file_uploads/views.py b/tests/regressiontests/file_uploads/views.py
index 833cf90531..dfa877da3a 100644
--- a/tests/regressiontests/file_uploads/views.py
+++ b/tests/regressiontests/file_uploads/views.py
@@ -67,4 +67,14 @@ def file_upload_quota_broken(request):
"""
response = file_upload_echo(request)
request.upload_handlers.insert(0, QuotaUploadHandler())
- return response \ No newline at end of file
+ return response
+
+def file_upload_getlist_count(request):
+ """
+ Check the .getlist() function to ensure we receive the correct number of files.
+ """
+ file_counts = {}
+
+ for key in request.FILES.keys():
+ file_counts[key] = len(request.FILES.getlist(key))
+ return HttpResponse(simplejson.dumps(file_counts))