diff options
| author | Michael Elovskikh | 2013-05-03 01:39:08 +0600 |
|---|---|---|
| committer | Michael Elovskikh | 2013-05-03 01:39:08 +0600 |
| commit | 318fdaabe560c99de4983e0a3cdcb79756baaf01 (patch) | |
| tree | b3e48adf2ace2405eaeff0d5c51685facc41568d /rest_framework/tests/parsers.py | |
| parent | 0c85768435e67133ff219aaddb4ea3bf122bd360 (diff) | |
| download | django-rest-framework-318fdaabe560c99de4983e0a3cdcb79756baaf01.tar.bz2 | |
Tests for FileUploadParser
Diffstat (limited to 'rest_framework/tests/parsers.py')
| -rw-r--r-- | rest_framework/tests/parsers.py | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/rest_framework/tests/parsers.py b/rest_framework/tests/parsers.py index 539c5b44..b18ecbf2 100644 --- a/rest_framework/tests/parsers.py +++ b/rest_framework/tests/parsers.py @@ -1,10 +1,11 @@ from __future__ import unicode_literals from rest_framework.compat import StringIO from django import forms +from django.core.files.uploadhandler import MemoryFileUploadHandler from django.test import TestCase from django.utils import unittest from rest_framework.compat import etree -from rest_framework.parsers import FormParser +from rest_framework.parsers import FormParser, FileUploadParser from rest_framework.parsers import XMLParser import datetime @@ -82,3 +83,27 @@ class TestXMLParser(TestCase): parser = XMLParser() data = parser.parse(self._complex_data_input) self.assertEqual(data, self._complex_data) + + +class TestFileUploadParser(TestCase): + def setUp(self): + class MockRequest(object): + pass + from io import BytesIO + self.stream = BytesIO( + "Test text file".encode('utf-8') + ) + request = MockRequest() + request.upload_handlers = (MemoryFileUploadHandler(),) + request.META = { + 'HTTP_CONTENT_DISPOSITION': 'Content-Disposition: inline; filename=file.txt'.encode('utf-8'), + 'HTTP_CONTENT_LENGTH': 14, + } + self.parser_context = {'request': request} + + def test_parse(self): + """ Make sure the `QueryDict` works OK """ + parser = FileUploadParser() + data_and_files = parser.parse(self.stream, parser_context=self.parser_context) + file_obj = data_and_files.files['file'] + self.assertEqual(file_obj._size, 14) |
