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_offer_views.py 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import pytest
  2. from oscar.apps.dashboard.offers import views as offer_views
  3. from oscar.apps.dashboard.ranges import views as range_views
  4. from oscar.core.loading import get_model
  5. from oscar.test.factories import catalogue, offer
  6. Range = get_model('offer', 'Range')
  7. ConditionalOffer = get_model('offer', 'ConditionalOffer')
  8. @pytest.fixture
  9. def many_ranges():
  10. for i in range(0, 30):
  11. offer.RangeFactory()
  12. return Range.objects.all()
  13. @pytest.fixture
  14. def many_offers():
  15. for i in range(0, 30):
  16. offer.ConditionalOfferFactory(
  17. name='Test offer %d' % i
  18. )
  19. @pytest.fixture
  20. def range_with_products():
  21. productrange = offer.RangeFactory()
  22. for i in range(0, 30):
  23. product = catalogue.ProductFactory()
  24. productrange.add_product(product)
  25. return productrange
  26. @pytest.mark.django_db
  27. class TestDashboardOffers:
  28. def test_range_list_view(self, rf, many_ranges):
  29. request = rf.get('/')
  30. view = range_views.RangeListView.as_view()
  31. response = view(request)
  32. # if these are missing the pagination is broken
  33. assert response.context_data['paginator']
  34. assert response.context_data['page_obj']
  35. assert response.status_code == 200
  36. def test_offer_list_view(self, rf, many_offers):
  37. request = rf.get('/')
  38. view = offer_views.OfferListView.as_view()
  39. response = view(request)
  40. # if these are missing the pagination is broken
  41. assert response.context_data['paginator']
  42. assert response.context_data['page_obj']
  43. assert response.status_code == 200
  44. def test_range_product_list_view(self, rf, range_with_products):
  45. view = range_views.RangeProductListView.as_view()
  46. pk = range_with_products.pk
  47. request = rf.get('/')
  48. response = view(request, pk=pk)
  49. # if these are missing the pagination is broken
  50. assert response.context_data['paginator']
  51. assert response.context_data['page_obj']
  52. assert response.status_code == 200