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

test_middleware.py 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839
  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. self.assertTrue(hasattr(self.request.basket, 'strategy'))
  19. def test_strategy_is_attached_to_request(self):
  20. self.assertTrue(hasattr(self.request, 'strategy'))
  21. def test_get_cookie_basket_handles_invalid_signatures(self):
  22. request_factory = RequestFactory()
  23. request_factory.cookies['oscar_open_basket'] = '1:NOTAVALIDHASH'
  24. request = request_factory.get('/')
  25. request.cookies_to_delete = []
  26. cookie_basket = self.middleware.get_cookie_basket("oscar_open_basket", request, None)
  27. self.assertEqual(None, cookie_basket)
  28. self.assertIn("oscar_open_basket", request.cookies_to_delete)