您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

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())