選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

test_middleware.py 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from django.contrib.auth.models import AnonymousUser
  2. from django.http import HttpResponse
  3. from django.test import TestCase
  4. from django.test.client import RequestFactory
  5. from oscar.apps.basket import middleware
  6. class TestBasketMiddleware(TestCase):
  7. @staticmethod
  8. def get_response_for_test(request):
  9. return HttpResponse()
  10. def setUp(self):
  11. self.middleware = middleware.BasketMiddleware(self.get_response_for_test)
  12. self.request = RequestFactory().get("/")
  13. self.request.user = AnonymousUser()
  14. self.middleware(self.request)
  15. def test_basket_is_attached_to_request(self):
  16. self.assertTrue(hasattr(self.request, "basket"))
  17. def test_strategy_is_attached_to_basket(self):
  18. # pylint: disable=no-member
  19. self.assertTrue(hasattr(self.request.basket, "strategy"))
  20. def test_strategy_is_attached_to_request(self):
  21. self.assertTrue(hasattr(self.request, "strategy"))
  22. def test_get_cookie_basket_handles_invalid_signatures(self):
  23. request_factory = RequestFactory()
  24. request_factory.cookies["oscar_open_basket"] = "1:NOTAVALIDHASH"
  25. request = request_factory.get("/")
  26. request.cookies_to_delete = []
  27. cookie_basket = self.middleware.get_cookie_basket(
  28. "oscar_open_basket", request, None
  29. )
  30. self.assertEqual(None, cookie_basket)
  31. self.assertIn("oscar_open_basket", request.cookies_to_delete)