diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-07-19 18:47:59 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-07-19 18:47:59 +0000 |
| commit | 344383284cf1a51fa646bc8926014f78ba512a56 (patch) | |
| tree | dd4bedffa4cfc6f463028d53700fa702a03e74e3 /tests/regressiontests/forms | |
| parent | a1037869716796a1075a964112aa380d86ed485f (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.py | 3 | ||||
| -rw-r--r-- | tests/regressiontests/forms/forms.py | 4 | ||||
| -rw-r--r-- | tests/regressiontests/forms/models.py | 19 |
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) |
