Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

view_tests.py 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. from django.contrib.messages import get_messages
  2. from django.test import RequestFactory, TestCase
  3. from oscar.apps.basket import views
  4. from oscar.test.factories import BasketFactory, VoucherFactory
  5. from oscar.test.utils import RequestFactory
  6. class TestVoucherAddView(TestCase):
  7. def test_get(self):
  8. request = RequestFactory().get('/')
  9. view = views.VoucherAddView.as_view()
  10. response = view(request)
  11. assert response.status_code == 302
  12. def test_post_valid(self):
  13. basket = BasketFactory()
  14. voucher = VoucherFactory()
  15. assert voucher.is_active()
  16. data = {
  17. 'code': voucher.code
  18. }
  19. request = RequestFactory().post('/', data=data, basket=basket)
  20. view = views.VoucherAddView.as_view()
  21. response = view(request)
  22. assert response.status_code == 302
  23. voucher = voucher.__class__.objects.get(pk=voucher.pk)
  24. assert voucher.num_basket_additions == 1, (
  25. [unicode(m.message) for m in get_messages(request)])
  26. class TestVoucherRemoveView(TestCase):
  27. def test_post_valid(self):
  28. basket = BasketFactory()
  29. voucher = VoucherFactory()
  30. basket.vouchers.add(voucher)
  31. data = {
  32. 'code': voucher.code
  33. }
  34. request = RequestFactory().post('/', data=data, basket=basket)
  35. view = views.VoucherRemoveView.as_view()
  36. response = view(request, pk=voucher.pk)
  37. assert response.status_code == 302
  38. voucher = voucher.__class__.objects.get(pk=voucher.pk)
  39. assert voucher.num_basket_additions == -1