diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/regressiontests/file_uploads/tests.py | 31 | ||||
| -rw-r--r-- | tests/regressiontests/file_uploads/urls.py | 1 | ||||
| -rw-r--r-- | tests/regressiontests/file_uploads/views.py | 12 |
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)) |
