Esempio n. 1
0
 def test_prepend_www_custom_urlconf(self):
     request = self.rf.get('/customurlconf/path/')
     request.urlconf = 'middleware.extra_urls'
     r = CommonMiddleware(get_response_empty).process_request(request)
     self.assertEqual(r.status_code, 301)
     self.assertEqual(r.url, 'http://www.testserver/customurlconf/path/')
Esempio n. 2
0
 def test_etag(self):
     req = HttpRequest()
     res = HttpResponse('content')
     self.assertTrue(CommonMiddleware().process_response(
         req, res).has_header('ETag'))
Esempio n. 3
0
 def test_append_slash_disabled(self):
     """
     Disabling append slash functionality should leave slashless URLs alone.
     """
     request = self.rf.get('/slash')
     self.assertEqual(CommonMiddleware().process_request(request), None)
Esempio n. 4
0
 def test_content_length_header_not_changed(self):
     response = HttpResponse()
     bad_content_length = len(response.content) + 10
     response['Content-Length'] = bad_content_length
     response = CommonMiddleware().process_response(HttpRequest(), response)
     self.assertEqual(int(response['Content-Length']), bad_content_length)
Esempio n. 5
0
 def test_prepend_www_append_slash_slashless_custom_urlconf(self):
     request = self.rf.get('/customurlconf/slash')
     request.urlconf = 'middleware.extra_urls'
     r = CommonMiddleware().process_request(request)
     self.assertEqual(r.status_code, 301)
     self.assertEqual(r.url, 'http://www.testserver/customurlconf/slash/')
Esempio n. 6
0
 def test_no_etag_no_store_cache(self):
     req = HttpRequest()
     res = HttpResponse('content')
     res['Cache-Control'] = 'No-Cache, No-Store, Max-age=0'
     self.assertFalse(CommonMiddleware().process_response(
         req, res).has_header('ETag'))
Esempio n. 7
0
 def test_content_length_header_added(self):
     response = HttpResponse('content')
     self.assertNotIn('Content-Length', response)
     response = CommonMiddleware().process_response(HttpRequest(), response)
     self.assertEqual(int(response['Content-Length']),
                      len(response.content))
Esempio n. 8
0
 def test_deprecation(self):
     with self.assertRaisesMessage(RemovedInDjango40Warning, self.msg):
         CommonMiddleware()
Esempio n. 9
0
 def test_passing_explicit_none(self):
     with self.assertRaisesMessage(RemovedInDjango40Warning, self.msg):
         CommonMiddleware(None)
Esempio n. 10
0
 def test_non_ascii_query_string_does_not_crash(self):
     """Regression test for #15152"""
     request = self.rf.get("/slash")
     request.META["QUERY_STRING"] = "drink=café"
     r = CommonMiddleware(get_response_empty).process_request(request)
     self.assertEqual(r.status_code, 301)
Esempio n. 11
0
 def test_etag_streaming_response(self):
     req = HttpRequest()
     res = StreamingHttpResponse(['content'])
     res['ETag'] = 'tomatoes'
     self.assertEqual(CommonMiddleware().process_response(req, res).get('ETag'), 'tomatoes')
Esempio n. 12
0
 def test_append_slash_disabled(self):
     """
     Disabling append slash functionality should leave slashless URLs alone.
     """
     request = self.rf.get("/slash")
     self.assertEqual(CommonMiddleware(get_response_404)(request).status_code, 404)
Esempio n. 13
0
 def test_prepend_www(self):
     request = self._get_request('path/')
     r = CommonMiddleware().process_request(request)
     self.assertEqual(r.status_code, 301)
     self.assertEqual(r.url, 'http://www.testserver/path/')
Esempio n. 14
0
 def test_prepend_www_append_slash_have_slash(self):
     request = self._get_request('slash/')
     r = CommonMiddleware().process_request(request)
     self.assertEqual(r.status_code, 301)
     self.assertEqual(r.url,
                       'http://www.testserver/middleware/slash/')
Esempio n. 15
0
 def test_append_slash_slashless_unknown(self):
     """
     Tests that APPEND_SLASH doesn't redirect to unknown resources.
     """
     request = self.rf.get('/unknown')
     self.assertEqual(CommonMiddleware().process_request(request), None)
Esempio n. 16
0
 def test_prepend_www_append_slash_slashless(self):
     request = self.rf.get("/slash")
     r = CommonMiddleware(get_response_empty).process_request(request)
     self.assertEqual(r.status_code, 301)
     self.assertEqual(r.url, "http://www.testserver/slash/")
Esempio n. 17
0
 def test_append_slash_disabled(self):
     """
     Tests disabling append slash functionality.
     """
     request = self.rf.get('/slash')
     self.assertEqual(CommonMiddleware().process_request(request), None)
Esempio n. 18
0
 def test_prepend_www_append_slash_slashless_custom_urlconf(self):
     request = self.rf.get("/customurlconf/slash")
     request.urlconf = "middleware.extra_urls"
     r = CommonMiddleware(get_response_empty).process_request(request)
     self.assertEqual(r.status_code, 301)
     self.assertEqual(r.url, "http://www.testserver/customurlconf/slash/")
Esempio n. 19
0
 def test_etag_extended_cache_control(self):
     req = HttpRequest()
     res = HttpResponse('content')
     res['Cache-Control'] = 'my-directive="my-no-store"'
     self.assertTrue(CommonMiddleware().process_response(
         req, res).has_header('ETag'))
Esempio n. 20
0
 def test_disallowed_user_agents(self):
     request = self.rf.get("/slash")
     request.META["HTTP_USER_AGENT"] = "foo"
     with self.assertRaisesMessage(PermissionDenied,
                                   "Forbidden user agent"):
         CommonMiddleware(get_response_empty).process_request(request)
Esempio n. 21
0
 def test_content_length_header_not_added_for_streaming_response(self):
     response = StreamingHttpResponse('content')
     self.assertNotIn('Content-Length', response)
     response = CommonMiddleware().process_response(HttpRequest(), response)
     self.assertNotIn('Content-Length', response)
Esempio n. 22
0
 def test_response_redirect_class(self):
     request = self.rf.get("/slash")
     r = CommonMiddleware(get_response_404)(request)
     self.assertEqual(r.status_code, 301)
     self.assertEqual(r.url, "/slash/")
     self.assertIsInstance(r, HttpResponsePermanentRedirect)
Esempio n. 23
0
 def test_non_ascii_query_string_does_not_crash(self):
     """Regression test for #15152"""
     request = self.rf.get('/slash')
     request.META['QUERY_STRING'] = force_str('drink=café')
     r = CommonMiddleware().process_request(request)
     self.assertEqual(r.status_code, 301)
Esempio n. 24
0
 def test_response_redirect_class(self):
     request = self.rf.get('/slash')
     r = CommonMiddleware().process_request(request)
     self.assertEqual(r.status_code, 301)
     self.assertEqual(r.url, 'http://testserver/slash/')
     self.assertIsInstance(r, HttpResponsePermanentRedirect)
Esempio n. 25
0
 def test_disallowed_user_agents(self):
     request = self.rf.get('/slash')
     request.META['HTTP_USER_AGENT'] = 'foo'
     with self.assertRaisesMessage(PermissionDenied,
                                   'Forbidden user agent'):
         CommonMiddleware().process_request(request)
Esempio n. 26
0
 def test_append_slash_have_slash(self):
     """
     Tests that URLs with slashes go unmolested.
     """
     request = self.rf.get('/slash/')
     self.assertEqual(CommonMiddleware().process_request(request), None)
Esempio n. 27
0
 def test_no_etag_streaming_response(self):
     req = HttpRequest()
     res = StreamingHttpResponse(['content'])
     self.assertFalse(CommonMiddleware().process_response(
         req, res).has_header('ETag'))
Esempio n. 28
0
 def test_append_slash_slashless_resource(self):
     """
     Tests that matches to explicit slashless URLs go unmolested.
     """
     request = self.rf.get('/noslash')
     self.assertEqual(CommonMiddleware().process_request(request), None)
Esempio n. 29
0
 def test_prepend_www_append_slash_slashless(self):
     request = self.rf.get('/slash')
     r = CommonMiddleware().process_request(request)
     self.assertEqual(r.status_code, 301)
     self.assertEqual(r.url, 'http://www.testserver/slash/')
Esempio n. 30
0
 def test_404_error_reporting_ignored_url(self):
     request = self._get_request('foo_url/that/does/not/exist/either')
     request.META['HTTP_REFERER'] = '/another/url/'
     response = self.client.get(request.path)
     CommonMiddleware().process_response(request, response)
     self.assertEqual(len(mail.outbox), 0)