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_voucher_views.py 1.1KB

1234567891011121314151617181920212223242526272829303132333435
  1. import pytest
  2. from oscar.apps.dashboard.vouchers import views
  3. from oscar.core.loading import get_model
  4. from oscar.test.factories import voucher
  5. VoucherSet = get_model('voucher', 'VoucherSet')
  6. @pytest.fixture
  7. def many_voucher_sets():
  8. voucher.VoucherSetFactory.create_batch(30)
  9. return VoucherSet.objects.all()
  10. @pytest.mark.django_db
  11. class TestDashboardVoucherSets:
  12. def test_voucher_set_list_view(self, rf, many_voucher_sets):
  13. view = views.VoucherSetListView.as_view()
  14. request = rf.get('/')
  15. response = view(request)
  16. # if these are missing the pagination is broken
  17. assert response.context_data['paginator']
  18. assert response.context_data['page_obj']
  19. assert response.status_code == 200
  20. def test_voucher_set_detail_view(self, rf):
  21. voucher.VoucherSetFactory(count=10)
  22. vs2 = voucher.VoucherSetFactory(count=15)
  23. request = rf.get('/')
  24. response = views.VoucherSetDetailView.as_view()(request, pk=vs2.pk)
  25. # The view should only list vouchers for vs2
  26. assert len(response.context_data['vouchers']) == 15
  27. assert response.status_code == 200