예제 #1
0
파일: tests.py 프로젝트: daiqingyang/django
 def test_compress_response(self):
     """
     Tests that compression is performed on responses with compressible content.
     """
     r = GZipMiddleware().process_response(self.req, self.resp)
     self.assertEqual(self.decompress(r.content), self.compressible_string)
     self.assertEqual(r.get("Content-Encoding"), "gzip")
     self.assertEqual(r.get("Content-Length"), str(len(r.content)))
예제 #2
0
 def test_streaming_compression(self):
     """
     Tests that iterators as response content return a compressed stream without consuming
     the whole response.content while doing so.
     See #24158.
     """
     self.resp.content = self.iterator_as_content
     r = GZipMiddleware().process_response(self.req, self.resp)
     self.assertEqual(self.decompress(''.join(r.content)), self.compressible_string)
     self.assertEqual(r.get('Content-Encoding'), 'gzip')
     self.assertEqual(r.get('Content-Length'), None)
예제 #3
0
파일: tests.py 프로젝트: matason/django
    def test_compress_response(self):
        """
        ETag is changed after gzip compression is performed.
        """
        request = self.rf.get('/', HTTP_ACCEPT_ENCODING='gzip, deflate')
        response = GZipMiddleware().process_response(request,
            CommonMiddleware().process_response(request, HttpResponse(self.compressible_string)))
        gzip_etag = response.get('ETag')

        request = self.rf.get('/', HTTP_ACCEPT_ENCODING='')
        response = GZipMiddleware().process_response(request,
            CommonMiddleware().process_response(request, HttpResponse(self.compressible_string)))
        nogzip_etag = response.get('ETag')

        self.assertNotEqual(gzip_etag, nogzip_etag)
예제 #4
0
파일: tests.py 프로젝트: daiqingyang/django
 def test_no_compress_compressed_response(self):
     """
     Tests that compression isn't performed on responses that are already compressed.
     """
     self.resp["Content-Encoding"] = "deflate"
     r = GZipMiddleware().process_response(self.req, self.resp)
     self.assertEqual(r.content, self.compressible_string)
     self.assertEqual(r.get("Content-Encoding"), "deflate")
예제 #5
0
파일: tests.py 프로젝트: daiqingyang/django
 def test_no_compress_uncompressible_response(self):
     """
     Tests that compression isn't performed on responses with uncompressible content.
     """
     self.resp.content = self.uncompressible_string
     r = GZipMiddleware().process_response(self.req, self.resp)
     self.assertEqual(r.content, self.uncompressible_string)
     self.assertEqual(r.get("Content-Encoding"), None)
예제 #6
0
파일: tests.py 프로젝트: ravn244/django
 def test_no_compress_short_response(self):
     """
     Tests that compression isn't performed on responses with short content.
     """
     self.resp.content = self.short_string
     r = GZipMiddleware().process_response(self.req, self.resp)
     self.assertEqual(r.content, self.short_string)
     self.assertEqual(r.get('Content-Encoding'), None)
예제 #7
0
파일: tests.py 프로젝트: ravn244/django
 def test_compress_streaming_response_unicode(self):
     """
     Tests that compression is performed on responses with streaming Unicode content.
     """
     r = GZipMiddleware().process_response(self.req, self.stream_resp_unicode)
     self.assertEqual(self.decompress(b''.join(r)), b''.join(x.encode('utf-8') for x in self.sequence_unicode))
     self.assertEqual(r.get('Content-Encoding'), 'gzip')
     self.assertFalse(r.has_header('Content-Length'))
예제 #8
0
 def test_no_compress_compressed_response(self):
     """
     Tests that compression isn't performed on responses that are already compressed.
     """
     self.resp['Content-Encoding'] = 'deflate'
     r = GZipMiddleware().process_response(self.req, self.resp)
     self.assertEqual(r.content, self.compressible_string)
     self.assertEqual(r.get('Content-Encoding'), 'deflate')
예제 #9
0
 def test_no_compress_incompressible_response(self):
     """
     Compression isn't performed on responses with incompressible content.
     """
     self.resp.content = self.incompressible_string
     r = GZipMiddleware().process_response(self.req, self.resp)
     self.assertEqual(r.content, self.incompressible_string)
     self.assertIsNone(r.get('Content-Encoding'))
예제 #10
0
 def test_compress_streaming_response(self):
     """
     Compression is performed on responses with streaming content.
     """
     r = GZipMiddleware().process_response(self.req, self.stream_resp)
     self.assertEqual(self.decompress(b''.join(r)), b''.join(self.sequence))
     self.assertEqual(r.get('Content-Encoding'), 'gzip')
     self.assertFalse(r.has_header('Content-Length'))
예제 #11
0
파일: tests.py 프로젝트: matason/django
 def test_no_compress_incompressible_response(self):
     """
     Compression isn't performed on responses with incompressible content.
     """
     self.resp.content = self.incompressible_string
     r = GZipMiddleware().process_response(self.req, self.resp)
     self.assertEqual(r.content, self.incompressible_string)
     self.assertIsNone(r.get('Content-Encoding'))
예제 #12
0
파일: tests.py 프로젝트: matason/django
 def test_no_compress_compressed_response(self):
     """
     Compression isn't performed on responses that are already compressed.
     """
     self.resp['Content-Encoding'] = 'deflate'
     r = GZipMiddleware().process_response(self.req, self.resp)
     self.assertEqual(r.content, self.compressible_string)
     self.assertEqual(r.get('Content-Encoding'), 'deflate')
예제 #13
0
파일: tests.py 프로젝트: daiqingyang/django
 def test_compress_streaming_response(self):
     """
     Tests that compression is performed on responses with streaming content.
     """
     r = GZipMiddleware().process_response(self.req, self.stream_resp)
     self.assertEqual(self.decompress(b"".join(r)), b"".join(self.sequence))
     self.assertEqual(r.get("Content-Encoding"), "gzip")
     self.assertFalse(r.has_header("Content-Length"))
예제 #14
0
파일: tests.py 프로젝트: matason/django
 def test_compress_streaming_response(self):
     """
     Compression is performed on responses with streaming content.
     """
     r = GZipMiddleware().process_response(self.req, self.stream_resp)
     self.assertEqual(self.decompress(b''.join(r)), b''.join(self.sequence))
     self.assertEqual(r.get('Content-Encoding'), 'gzip')
     self.assertFalse(r.has_header('Content-Length'))
예제 #15
0
    def test_compress_response(self):
        """
        Tests that ETag is changed after gzip compression is performed.
        """
        request = self.rf.get('/', HTTP_ACCEPT_ENCODING='gzip, deflate')
        response = GZipMiddleware().process_response(request,
            CommonMiddleware().process_response(request,
                HttpResponse(self.compressible_string)))
        gzip_etag = response.get('ETag')

        request = self.rf.get('/', HTTP_ACCEPT_ENCODING='')
        response = GZipMiddleware().process_response(request,
            CommonMiddleware().process_response(request,
                HttpResponse(self.compressible_string)))
        nogzip_etag = response.get('ETag')

        self.assertNotEqual(gzip_etag, nogzip_etag)
예제 #16
0
 def test_compress_streaming_response_unicode(self):
     """
     Tests that compression is performed on responses with streaming Unicode content.
     """
     r = GZipMiddleware().process_response(self.req, self.stream_resp_unicode)
     self.assertEqual(self.decompress(b''.join(r)), b''.join(x.encode('utf-8') for x in self.sequence_unicode))
     self.assertEqual(r.get('Content-Encoding'), 'gzip')
     self.assertFalse(r.has_header('Content-Length'))
예제 #17
0
 def test_compress_non_200_response(self):
     """
     Compression is performed on responses with a status other than 200
     (#10762).
     """
     self.resp.status_code = 404
     r = GZipMiddleware(self.get_response)(self.req)
     self.assertEqual(self.decompress(r.content), self.compressible_string)
     self.assertEqual(r.get("Content-Encoding"), "gzip")
예제 #18
0
파일: tests.py 프로젝트: Gautier/django_old
 def test_no_compress_ie_js_requests(self):
     """
     Tests that compression isn't performed on JavaScript requests from Internet Explorer.
     """
     self.req.META['HTTP_USER_AGENT'] = 'Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)'
     self.resp['Content-Type'] = 'application/javascript; charset=UTF-8'
     r = GZipMiddleware().process_response(self.req, self.resp)
     self.assertEqual(r.content, self.compressible_string)
     self.assertEqual(r.get('Content-Encoding'), None)
예제 #19
0
 def test_compress_non_200_response(self):
     """
     Tests that compression is performed on responses with a status other than 200.
     See #10762.
     """
     self.resp.status_code = 404
     r = GZipMiddleware().process_response(self.req, self.resp)
     self.assertEqual(self.decompress(r.content), self.compressible_string)
     self.assertEqual(r.get('Content-Encoding'), 'gzip')
예제 #20
0
파일: tests.py 프로젝트: daiqingyang/django
 def test_compress_non_200_response(self):
     """
     Tests that compression is performed on responses with a status other than 200.
     See #10762.
     """
     self.resp.status_code = 404
     r = GZipMiddleware().process_response(self.req, self.resp)
     self.assertEqual(self.decompress(r.content), self.compressible_string)
     self.assertEqual(r.get("Content-Encoding"), "gzip")
예제 #21
0
파일: tests.py 프로젝트: JiangJie/django
 def test_no_compress_ie_js_requests(self):
     """
     Tests that compression isn't performed on JavaScript requests from Internet Explorer.
     """
     self.req.META['HTTP_USER_AGENT'] = 'Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)'
     self.resp['Content-Type'] = 'application/javascript; charset=UTF-8'
     r = GZipMiddleware().process_response(self.req, self.resp)
     self.assertEqual(r.content, self.compressible_string)
     self.assertEqual(r.get('Content-Encoding'), None)
예제 #22
0
 def test_compress_file_response(self):
     """
     Compression is performed on FileResponse.
     """
     with open(__file__, 'rb') as file1:
         file_resp = FileResponse(file1)
         file_resp['Content-Type'] = 'text/html; charset=UTF-8'
         r = GZipMiddleware().process_response(self.req, file_resp)
         with open(__file__, 'rb') as file2:
             self.assertEqual(self.decompress(b''.join(r)), file2.read())
         self.assertEqual(r.get('Content-Encoding'), 'gzip')
         self.assertIsNot(r.file_to_stream, file1)
예제 #23
0
파일: tests.py 프로젝트: userimack/django
 def test_compress_file_response(self):
     """
     Compression is performed on FileResponse.
     """
     with open(__file__, "rb") as file1:
         file_resp = FileResponse(file1)
         file_resp["Content-Type"] = "text/html; charset=UTF-8"
         r = GZipMiddleware().process_response(self.req, file_resp)
         with open(__file__, "rb") as file2:
             self.assertEqual(self.decompress(b"".join(r)), file2.read())
         self.assertEqual(r.get("Content-Encoding"), "gzip")
         self.assertIsNot(r.file_to_stream, file1)
예제 #24
0
파일: tests.py 프로젝트: troef/django
 def test_compress_file_response(self):
     """
     Compression is performed on FileResponse.
     """
     with open(__file__, 'rb') as file1:
         file_resp = FileResponse(file1)
         file_resp['Content-Type'] = 'text/html; charset=UTF-8'
         r = GZipMiddleware().process_response(self.req, file_resp)
         with open(__file__, 'rb') as file2:
             self.assertEqual(self.decompress(b''.join(r)), file2.read())
         self.assertEqual(r.get('Content-Encoding'), 'gzip')
         self.assertIsNot(r.file_to_stream, file1)
예제 #25
0
    def test_compress_streaming_response(self):
        """
        Compression is performed on responses with streaming content.
        """
        def get_stream_response(request):
            resp = StreamingHttpResponse(self.sequence)
            resp["Content-Type"] = "text/html; charset=UTF-8"
            return resp

        r = GZipMiddleware(get_stream_response)(self.req)
        self.assertEqual(self.decompress(b"".join(r)), b"".join(self.sequence))
        self.assertEqual(r.get("Content-Encoding"), "gzip")
        self.assertFalse(r.has_header("Content-Length"))
예제 #26
0
    def test_compress_streaming_response(self):
        """
        Compression is performed on responses with streaming content.
        """
        def get_stream_response(request):
            resp = StreamingHttpResponse(self.sequence)
            resp['Content-Type'] = 'text/html; charset=UTF-8'
            return resp

        r = GZipMiddleware(get_stream_response)(self.req)
        self.assertEqual(self.decompress(b''.join(r)), b''.join(self.sequence))
        self.assertEqual(r.get('Content-Encoding'), 'gzip')
        self.assertFalse(r.has_header('Content-Length'))
예제 #27
0
    def test_compress_file_response(self):
        """
        Compression is performed on FileResponse.
        """
        with open(__file__, "rb") as file1:

            def get_response(req):
                file_resp = FileResponse(file1)
                file_resp["Content-Type"] = "text/html; charset=UTF-8"
                return file_resp

            r = GZipMiddleware(get_response)(self.req)
            with open(__file__, "rb") as file2:
                self.assertEqual(self.decompress(b"".join(r)), file2.read())
            self.assertEqual(r.get("Content-Encoding"), "gzip")
            self.assertIsNot(r.file_to_stream, file1)