def test_voucher_offers_listing_for_a_single_course_voucher(self): """ Verify the endpoint returns offers data when a single product is in voucher range. """ course, seat = self.create_course_and_seat() self.mock_dynamic_catalog_single_course_runs_api(course) new_range = RangeFactory(products=[seat, ]) new_range.catalog = Catalog.objects.create(partner=self.partner) new_range.catalog.stock_records.add(StockRecord.objects.get(product=seat)) voucher, __ = prepare_voucher(_range=new_range, benefit_value=10) request = self.prepare_offers_listing_request(voucher.code) response = self.endpointView(request) self.assertEqual(response.status_code, 200) new_range.remove_product(seat) response = self.endpointView(request) self.assertEqual(response.status_code, 404)
def test_voucher_offers_listing_for_a_single_course_voucher(self): """ Verify the endpoint returns offers data when a single product is in voucher range. """ course, seat = self.create_course_and_seat() self.mock_dynamic_catalog_single_course_runs_api(course) new_range = RangeFactory(products=[seat, ]) new_range.catalog = Catalog.objects.create(partner=self.partner) new_range.catalog.stock_records.add(StockRecord.objects.get(product=seat)) voucher, __ = prepare_voucher(_range=new_range, benefit_value=10) request = self.prepare_offers_listing_request(voucher.code) response = self.endpointView(request) self.assertEqual(response.status_code, 200) new_range.remove_product(seat) response = self.endpointView(request) self.assertEqual(response.status_code, 404)
def test_voucher_offers_listing_with_range_catalog(self): """ Verify the endpoint returns offers data when range has a catalog. """ self.mock_dynamic_catalog_course_runs_api() product = ProductFactory(stockrecords__price_excl_tax=100) new_range = RangeFactory(products=[ product, ]) new_range.catalog = Catalog.objects.create(partner=self.partner) new_range.catalog.stock_records.add( StockRecord.objects.get(product=product)) voucher, __ = prepare_voucher(_range=new_range, benefit_value=10) request = self.prepare_offers_listing_request(voucher.code) response = self.endpointView(request) self.assertEqual(response.status_code, 200) # If no product is associated with the voucher range, Bad Request status should be returned new_range.remove_product(product) response = self.endpointView(request) self.assertEqual(response.status_code, 400)