Explorar el Código

[issue2773] add test for negative line value

master
Paul J Stevens hace 6 años
padre
commit
fa124a8a21
Se han modificado 1 ficheros con 37 adiciones y 0 borrados
  1. 37
    0
      tests/integration/offer/test_absolute_benefit.py

+ 37
- 0
tests/integration/offer/test_absolute_benefit.py Ver fichero

@@ -347,3 +347,40 @@ class TestAnAbsoluteDiscountBenefit(TestCase):
347 347
         )
348 348
         with self.assertRaises(ValidationError):
349 349
             benefit.clean()
350
+
351
+    def test_non_negative_basket_lines_values(self):
352
+        # absolute benefit is larger than the line price
353
+        rng = models.Range.objects.create(
354
+            name="", includes_all_products=True)
355
+        benefit1 = models.Benefit.objects.create(
356
+            type=models.Benefit.FIXED, range=rng, value=D('100')
357
+        )
358
+        benefit2 = models.Benefit.objects.create(
359
+            type=models.Benefit.FIXED, range=rng, value=D('100')
360
+        )
361
+        condition = models.ValueCondition.objects.create(
362
+            range=rng,
363
+            type=models.Condition.VALUE,
364
+            value=D('10'))
365
+        models.ConditionalOffer.objects.create(
366
+            name='offer1',
367
+            benefit=benefit1,
368
+            condition=condition,
369
+            exclusive=False
370
+        )
371
+        models.ConditionalOffer.objects.create(
372
+            name='offer2',
373
+            benefit=benefit2,
374
+            condition=condition,
375
+            exclusive=False
376
+        )
377
+
378
+        basket = factories.create_basket(empty=True)
379
+        add_products(basket, [(D('20'), 1)])
380
+
381
+        Applicator().apply(basket)
382
+        assert len(basket.offer_applications) == 2
383
+        line = basket.all_lines().first()
384
+        assert line.line_price_excl_tax_incl_discounts == D(0)
385
+        assert line.line_price_incl_tax_incl_discounts == D(0)
386
+        assert basket.total_incl_tax == 0

Loading…
Cancelar
Guardar