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_conditionaloffer_delete.py 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. from django.test import TestCase
  2. from oscar.apps.offer import custom, models
  3. from oscar.test import factories
  4. from tests._site.model_tests_app.models import (
  5. BasketOwnerCalledBarry, CustomBenefitModel)
  6. class TestConditionalOfferDelete(TestCase):
  7. def test_benefits_and_conditions_deleted(self):
  8. offer = factories.ConditionalOfferFactory()
  9. benefit_id = offer.benefit.id
  10. condition_id = offer.condition.id
  11. offer.delete()
  12. self.assertFalse(
  13. models.Condition.objects.filter(id=condition_id).exists())
  14. self.assertFalse(
  15. models.Benefit.objects.filter(id=benefit_id).exists())
  16. def test_for_multiple_offers_benefits_and_conditions_not_deleted(self):
  17. condition = factories.ConditionFactory()
  18. condition_id = condition.id
  19. benefit = factories.BenefitFactory()
  20. benefit_id = benefit.id
  21. offer1 = factories.create_offer(
  22. name='First test offer', condition=condition)
  23. offer2 = factories.create_offer(
  24. name='Second test offer', condition=condition, benefit=benefit)
  25. offer3 = factories.create_offer(
  26. name='Third test offer', benefit=benefit)
  27. offer1.delete()
  28. self.assertTrue(
  29. models.Condition.objects.filter(id=condition_id).exists())
  30. offer2.delete()
  31. self.assertFalse(
  32. models.Condition.objects.filter(id=condition_id).exists())
  33. self.assertTrue(
  34. models.Benefit.objects.filter(id=benefit_id).exists())
  35. offer3.delete()
  36. self.assertFalse(
  37. models.Benefit.objects.filter(id=benefit_id).exists())
  38. def test_custom_benefits_and_conditions_not_deleted(self):
  39. condition = custom.create_condition(BasketOwnerCalledBarry)
  40. condition_id = condition.id
  41. benefit = custom.create_benefit(CustomBenefitModel)
  42. benefit_id = benefit.id
  43. offer = factories.create_offer(benefit=benefit, condition=condition)
  44. offer.delete()
  45. self.assertTrue(
  46. models.Condition.objects.filter(id=condition_id).exists())
  47. self.assertTrue(
  48. models.Benefit.objects.filter(id=benefit_id).exists())