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.

manager_tests.py 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import datetime
  2. from django.test import TestCase
  3. from oscar.test import factories
  4. from oscar.apps.offer import models
  5. class TestActiveOfferManager(TestCase):
  6. def test_includes_offers_in_date_range(self):
  7. # Create offer that is available but with the wrong status
  8. now = datetime.datetime.now()
  9. start = now - datetime.timedelta(days=1)
  10. end = now + datetime.timedelta(days=1)
  11. factories.create_offer(start=start, end=end)
  12. filtered_offers = models.ConditionalOffer.active.all()
  13. self.assertEqual(1, len(filtered_offers))
  14. def test_filters_out_expired_offers(self):
  15. # Create offer that is available but with the wrong status
  16. now = datetime.datetime.now()
  17. start = now - datetime.timedelta(days=3)
  18. end = now - datetime.timedelta(days=1)
  19. factories.create_offer(start=start, end=end)
  20. filtered_offers = models.ConditionalOffer.active.all()
  21. self.assertEqual(0, len(filtered_offers))
  22. def test_filters_out_offers_yet_to_start(self):
  23. # Create offer that is available but with the wrong status
  24. now = datetime.datetime.now()
  25. start = now + datetime.timedelta(days=1)
  26. end = now + datetime.timedelta(days=3)
  27. factories.create_offer(start=start, end=end)
  28. filtered_offers = models.ConditionalOffer.active.all()
  29. self.assertEqual(0, len(filtered_offers))
  30. def test_filters_out_suspended_offers(self):
  31. # Create offer that is available but with the wrong status
  32. factories.create_offer(
  33. status=models.ConditionalOffer.SUSPENDED)
  34. filtered_offers = models.ConditionalOffer.active.all()
  35. self.assertEqual(0, len(filtered_offers))