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_reports.py 1.2KB

1234567891011121314151617181920212223242526
  1. from django.test import TestCase
  2. from oscar.apps.offer.reports import OfferReportGenerator
  3. from oscar.test.factories import (
  4. ConditionalOfferFactory, OrderDiscountFactory, create_order)
  5. class OfferReportGeneratorTestCase(TestCase):
  6. def test_generator_queryset_and_annotation(self):
  7. offer = ConditionalOfferFactory(pk=2)
  8. OrderDiscountFactory(offer_id=offer.pk, offer_name=offer.name, amount=2, order=create_order())
  9. OrderDiscountFactory(offer_id=offer.pk, offer_name=offer.name, amount=3, order=create_order())
  10. # Discount on a deleted offer
  11. OrderDiscountFactory(offer_id=1, offer_name="Deleted offer", amount=4, order=create_order())
  12. queryset = OfferReportGenerator().generate()
  13. self.assertEqual(queryset.count(), 2)
  14. self.assertEqual(queryset[0]["offer_id"], 2)
  15. self.assertEqual(queryset[0]["display_offer_name"], offer.name)
  16. self.assertEqual(queryset[0]["total_discount"], 5)
  17. self.assertEqual(queryset[0]["offer"], offer.pk)
  18. self.assertEqual(queryset[1]["offer_id"], 1)
  19. self.assertEqual(queryset[1]["display_offer_name"], "Deleted offer")
  20. self.assertEqual(queryset[1]["total_discount"], 4)
  21. self.assertEqual(queryset[1]["offer"], None)