Пример #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/')
Пример #2
0
 def test_etag(self):
     req = HttpRequest()
     res = HttpResponse('content')
     self.assertTrue(CommonMiddleware().process_response(
         req, res).has_header('ETag'))
Пример #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)
Пример #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)
Пример #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/')
Пример #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'))
Пример #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))
Пример #8
0
 def test_deprecation(self):
     with self.assertRaisesMessage(RemovedInDjango40Warning, self.msg):
         CommonMiddleware()
Пример #9
0
 def test_passing_explicit_none(self):
     with self.assertRaisesMessage(RemovedInDjango40Warning, self.msg):
         CommonMiddleware(None)
Пример #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)
Пример #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')
Пример #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)
Пример #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/')
Пример #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/')
Пример #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)
Пример #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/")
Пример #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)
Пример #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/")
Пример #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'))
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #27
0
 def test_no_etag_streaming_response(self):
     req = HttpRequest()
     res = StreamingHttpResponse(['content'])
     self.assertFalse(CommonMiddleware().process_response(
         req, res).has_header('ETag'))
Пример #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)
Пример #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/')
Пример #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)