Ejemplo n.º 1
0
class TestTotalCalculation(TestCase):
    def setUp(self):
        self.order = factories.create_order()
        self.handler = EventHandler()
        basket = factories.create_basket(empty=True)
        add_product(basket, D('10.00'), 5)
        self.order = factories.create_order(basket=basket)
        self.settled = models.PaymentEventType.objects.create(name='Settled')

    def test_normal_payment_sequence(self):
        # First payment event
        lines, line_quantities = self.order.lines.all(), [2]
        total = self.handler.calculate_payment_event_subtotal(
            self.settled, lines, line_quantities)
        self.assertEqual(2 * D('10.00'), total)
        self.handler.create_payment_event(self.order, self.settled, total,
                                          lines, line_quantities)

        # Second payment
        line_quantities = [3]
        total = self.handler.calculate_payment_event_subtotal(
            self.settled, lines, line_quantities)
        self.assertEqual(3 * D('10.00'), total)

    def test_invalid_payment_sequence(self):
        lines, line_quantities = self.order.lines.all(), [2]
        total = self.handler.calculate_payment_event_subtotal(
            self.settled, lines, line_quantities)
        self.assertEqual(2 * D('10.00'), total)
        self.handler.create_payment_event(self.order, self.settled, total,
                                          lines, line_quantities)

        with self.assertRaises(exceptions.InvalidPaymentEvent):
            self.handler.calculate_payment_event_subtotal(
                self.settled, self.order.lines.all(), [4])
class TestTotalCalculation(TestCase):

    def setUp(self):
        self.order = factories.create_order()
        self.handler = EventHandler()
        basket = factories.create_basket(empty=True)
        add_product(basket, D('10.00'), 5)
        self.order = factories.create_order(basket=basket)
        self.settled = models.PaymentEventType.objects.create(
            name='Settled')

    def test_normal_payment_sequence(self):
        # First payment event
        lines, line_quantities = self.order.lines.all(), [2]
        total = self.handler.calculate_payment_event_subtotal(
            self.settled, lines, line_quantities)
        self.assertEquals(2 * D('10.00'), total)
        self.handler.create_payment_event(
            self.order, self.settled, total, lines, line_quantities)

        # Second payment
        line_quantities = [3]
        total = self.handler.calculate_payment_event_subtotal(
            self.settled, lines, line_quantities)
        self.assertEquals(3 * D('10.00'), total)

    def test_invalid_payment_sequence(self):
        lines, line_quantities = self.order.lines.all(), [2]
        total = self.handler.calculate_payment_event_subtotal(
            self.settled, lines, line_quantities)
        self.assertEquals(2 * D('10.00'), total)
        self.handler.create_payment_event(
            self.order, self.settled, total, lines, line_quantities)

        with self.assertRaises(exceptions.InvalidPaymentEvent):
            self.handler.calculate_payment_event_subtotal(
                self.settled, self.order.lines.all(), [4])