Code

Ticket #19036: big_base64_upload

File big_base64_upload, 970 bytes (added by anonymous, 19 months ago)
Line 
1    def test_big_base64_upload(self):
2        test_string = open('/dev/urandom', 'r').read(524288)
3        payload = "\r\n".join([
4            '--' + client.BOUNDARY,
5            'Content-Disposition: form-data; name="file"; filename="test.txt"',
6            'Content-Type: application/octet-stream',
7            'Content-Transfer-Encoding: base64',
8            '',
9            base64.b64encode(force_bytes(test_string)).decode('ascii'),
10            '--' + client.BOUNDARY + '--',
11            '',
12        ]).encode('utf-8')
13        r = {
14            'CONTENT_LENGTH': len(payload),
15            'CONTENT_TYPE':   client.MULTIPART_CONTENT,
16            'PATH_INFO':      "/file_uploads/echo_content/",
17            'REQUEST_METHOD': 'POST',
18            'wsgi.input':     client.FakePayload(payload),
19        }
20        response = self.client.request(**r)
21        received = json.loads(response.content.decode('utf-8'))
22
23        self.assertEqual(received['file'], test_string)