You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_session.py 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from unittest import mock
  2. from django.contrib.sessions.middleware import SessionMiddleware
  3. from django.http import HttpResponse
  4. from django.test import TestCase
  5. from django.test.client import RequestFactory
  6. from oscar.apps.checkout.utils import CheckoutSessionData
  7. class TestCheckoutSession(TestCase):
  8. """
  9. oscar.apps.checkout.utils.CheckoutSessionData
  10. """
  11. @staticmethod
  12. def get_response_for_test(request):
  13. return HttpResponse()
  14. def setUp(self):
  15. request = RequestFactory().get("/")
  16. SessionMiddleware(self.get_response_for_test).process_request(request)
  17. self.session_data = CheckoutSessionData(request)
  18. def test_allows_data_to_be_written_and_read_out(self):
  19. self.session_data._set("namespace", "key", "value")
  20. self.assertEqual("value", self.session_data._get("namespace", "key"))
  21. def test_allows_set_data_can_be_unset(self):
  22. self.session_data._set("namespace", "key", "value")
  23. self.session_data._unset("namespace", "key")
  24. self.assertIsNone(self.session_data._get("namespace", "key"))
  25. def test_stores_guest_email(self):
  26. self.session_data.set_guest_email("a@a.com")
  27. self.assertEqual("a@a.com", self.session_data.get_guest_email())
  28. def test_allows_a_namespace_to_be_flushed(self):
  29. self.session_data._set("ns", "a", 1)
  30. self.session_data._set("ns", "b", 2)
  31. self.session_data._flush_namespace("ns")
  32. self.assertIsNone(self.session_data._get("ns", "a"))
  33. self.assertIsNone(self.session_data._get("ns", "b"))
  34. def test_allows_bill_to_user_address(self):
  35. address = mock.Mock()
  36. address.id = 1
  37. self.session_data.bill_to_user_address(address)
  38. self.assertEqual(1, self.session_data.billing_user_address_id())