aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/tests/files.py
blob: e155f181f52df42f02d485d3bd34833f24b1238d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from django.test import TestCase
from django import forms
from djangorestframework.compat import RequestFactory
from djangorestframework.resource import Resource
import StringIO

class UploadFilesTests(TestCase):
    """Check uploading of files"""
    def setUp(self):
        self.factory = RequestFactory()

    def test_upload_file(self):


        class FileForm(forms.Form):
            file = forms.FileField

        class MockResource(Resource):
            allowed_methods = anon_allowed_methods = ('POST',)
            form = FileForm

            def post(self, request, auth, content, *args, **kwargs):
                #self.uploaded = content.file
                return {'FILE_NAME': content['file'].name,
                        'FILE_CONTENT': content['file'].read()}
                
        file = StringIO.StringIO('stuff')
        file.name = 'stuff.txt'
        request = self.factory.post('/', {'file': file})
        view = MockResource.as_view()
        response = view(request)
        self.assertEquals(response.content, '{"FILE_CONTENT": "stuff", "FILE_NAME": "stuff.txt"}')