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

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