Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

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