summaryrefslogtreecommitdiff
path: root/tests/regressiontests/forms
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-07-19 18:47:59 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-07-19 18:47:59 +0000
commit344383284cf1a51fa646bc8926014f78ba512a56 (patch)
treedd4bedffa4cfc6f463028d53700fa702a03e74e3 /tests/regressiontests/forms
parenta1037869716796a1075a964112aa380d86ed485f (diff)
Fixed #6009 -- Added regression tests to show that uploading non-ASCII
filenames now works properly. Patch from Leah Culver. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7987 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/forms')
-rw-r--r--tests/regressiontests/forms/fields.py3
-rw-r--r--tests/regressiontests/forms/forms.py4
-rw-r--r--tests/regressiontests/forms/models.py19
3 files changed, 26 insertions, 0 deletions
diff --git a/tests/regressiontests/forms/fields.py b/tests/regressiontests/forms/fields.py
index c70ff2dff3..838ba21073 100644
--- a/tests/regressiontests/forms/fields.py
+++ b/tests/regressiontests/forms/fields.py
@@ -802,6 +802,9 @@ ValidationError: [u'The submitted file is empty.']
>>> type(f.clean(SimpleUploadedFile('name', 'Some File Content')))
<class 'django.core.files.uploadedfile.SimpleUploadedFile'>
+>>> type(f.clean(SimpleUploadedFile('我隻氣墊船裝滿晒鱔.txt', 'मेरी मँडराने वाली नाव सर्पमीनों से भरी ह')))
+<class 'django.core.files.uploadedfile.SimpleUploadedFile'>
+
>>> type(f.clean(SimpleUploadedFile('name', 'Some File Content'), 'files/test4.pdf'))
<class 'django.core.files.uploadedfile.SimpleUploadedFile'>
diff --git a/tests/regressiontests/forms/forms.py b/tests/regressiontests/forms/forms.py
index 6e6e4f79bf..d834bdaccc 100644
--- a/tests/regressiontests/forms/forms.py
+++ b/tests/regressiontests/forms/forms.py
@@ -1480,6 +1480,10 @@ not request.POST.
>>> f.is_valid()
True
+>>> f = FileForm(data={}, files={'file1': SimpleUploadedFile('我隻氣墊船裝滿晒鱔.txt', 'मेरी मँडराने वाली नाव सर्पमीनों से भरी ह')}, auto_id=False)
+>>> print f
+<tr><th>File1:</th><td><input type="file" name="file1" /></td></tr>
+
# Basic form processing in a view #############################################
>>> from django.template import Template, Context
diff --git a/tests/regressiontests/forms/models.py b/tests/regressiontests/forms/models.py
index 98b9233d80..fcffcb8263 100644
--- a/tests/regressiontests/forms/models.py
+++ b/tests/regressiontests/forms/models.py
@@ -1,6 +1,10 @@
+# -*- coding: utf-8 -*-
import datetime
from django.db import models
+# Can't import as "forms" due to implementation details in the test suite (the
+# current file is called "forms" an is already imported).
+from django import forms as django_forms
class BoundaryModel(models.Model):
positive_integer = models.PositiveIntegerField(null=True, blank=True)
@@ -14,8 +18,23 @@ class ChoiceModel(models.Model):
"""For ModelChoiceField and ModelMultipleChoiceField tests."""
name = models.CharField(max_length=10)
+class FileModel(models.Model):
+ file = models.FileField(upload_to='/')
+
+class FileForm(django_forms.Form):
+ file1 = django_forms.FileField()
+
__test__ = {'API_TESTS': """
>>> from django.forms import form_for_model, form_for_instance
+>>> from django.core.files.uploadedfile import SimpleUploadedFile
+
+# FileModel with unicode filename and data #########################
+>>> f = FileForm(data={}, files={'file1': SimpleUploadedFile('我隻氣墊船裝滿晒鱔.txt', 'मेरी मँडराने वाली नाव सर्पमीनों से भरी ह')}, auto_id=False)
+>>> f.is_valid()
+True
+>>> f.cleaned_data
+{'file1': <SimpleUploadedFile: 我隻氣墊船裝滿晒鱔.txt (text/plain)>}
+>>> m = FileModel.objects.create(file=f.cleaned_data['file1'])
# Boundary conditions on a PostitiveIntegerField #########################
>>> BoundaryForm = form_for_model(BoundaryModel)