def setUp(self): self.products = [create_product(Decimal('5.00')), create_product(Decimal('10.00'))] self.range = models.Range.objects.create(name="Some products") for product in self.products: self.range.included_products.add(product) self.range.included_products.add(product) self.basket = Basket.objects.create() self.condition = models.CoverageCondition(range=self.range, type="Coverage", value=2)
def setUp(self): self.products = [factories.create_product(), factories.create_product()] self.range = models.Range.objects.create(name="Some products") for product in self.products: self.range.add_product(product) self.range.add_product(product) self.basket = factories.create_basket(empty=True) self.condition = models.CoverageCondition( range=self.range, type="Coverage", value=2) self.offer = mock.Mock()
def setUp(self): self.products = [ factories.create_product(), factories.create_product() ] self.range = models.Range.objects.create(name="Some products") for product in self.products: self.range.included_products.add(product) self.range.included_products.add(product) self.basket = factories.create_basket(empty=True) self.condition = models.CoverageCondition(range=self.range, type="Coverage", value=2) self.offer = mock.Mock() self.offer.applies_to_tax_exclusive_prices = False
def test_consumed_items_checks_affected_items(self): # Create new offer range = models.Range.objects.create(name="All products", includes_all_products=True) cond = models.CoverageCondition(range=range, type="Coverage", value=2) # Get 4 distinct products in the basket self.products.extend( [factories.create_product(), factories.create_product()]) for product in self.products: add_product(self.basket, product=product) self.assertTrue(cond.is_satisfied(self.offer, self.basket)) cond.consume_items(self.offer, self.basket, []) self.assertEqual(2, self.basket.num_items_without_discount) self.assertTrue(cond.is_satisfied(self.offer, self.basket)) cond.consume_items(self.offer, self.basket, []) self.assertEqual(0, self.basket.num_items_without_discount)
def coverage_condition(range_some): return models.CoverageCondition(range=range_some, type="Coverage", value=2)