Exemplo n.º 1
0
    def test_invoice_creation(self):
        """ Verify the invoice object is created properly. """
        order = factories.OrderFactory()
        business_client = BusinessClient.objects.create(name='Test client')
        invoice_data = {
            'number':
            'INV-001',
            'type':
            Invoice.PREPAID,
            'payment_date':
            datetime.datetime(2016, 1, 1, tzinfo=pytz.UTC).isoformat(),
            'tax_deducted_source':
            25,
        }

        self.processor_class(self.site).handle_processor_response(
            {}, order, business_client, invoice_data)
        invoice = Invoice.objects.latest()
        self.assertEqual(invoice.order, order)
        self.assertEqual(invoice.business_client, business_client)
        serialized_invoice = InvoiceSerializer(invoice).data
        for data in invoice_data:
            if data == 'payment_date':
                self.assertEqual(invoice.payment_date.isoformat(),
                                 invoice_data[data])
            else:
                self.assertEqual(serialized_invoice[data], invoice_data[data])
Exemplo n.º 2
0
 def setUp(self):
     super(InvoiceTests, self).setUp()
     self.basket = factories.create_basket(empty=True)
     self.basket.owner = factories.UserFactory()
     self.basket.order = factories.OrderFactory()
     self.basket.save()
     self.invoice = Invoice.objects.create(order=self.basket.order, state='Paid')
Exemplo n.º 3
0
 def use_voucher(self, voucher, user):
     """
     Mark voucher as used by provided user
     """
     order = factories.OrderFactory()
     order_line = factories.OrderLineFactory(product=self.verified_seat)
     order.lines.add(order_line)
     voucher.record_usage(order, user)
     voucher.offers.first().record_usage(discount={'freq': 1, 'discount': 1})
Exemplo n.º 4
0
 def test_voucher_used_error_msg(self):
     """ Verify correct error message is returned when voucher has been used (Single use). """
     self.mock_access_token_response()
     self.mock_account_api(self.request, self.user.username, data={'is_active': True})
     voucher, product = prepare_voucher(code=COUPON_CODE)
     self.basket.add_product(product)
     order = factories.OrderFactory()
     VoucherApplication.objects.create(voucher=voucher, user=self.user, order=order)
     self.assert_form_valid_message(
         "Coupon code '{code}' is not available. This coupon has already been used".format(code=COUPON_CODE)
     )
Exemplo n.º 5
0
    def test_handle_processor_response(self):
        """ Verify the processor creates the appropriate PaymentEvent and Source objects. """

        order = factories.OrderFactory()

        source, payment_event = self.processor_class().handle_processor_response({}, order)

        # Validate PaymentEvent
        self.assertEqual(payment_event.event_type.name, PaymentEventTypeName.PAID)

        # Validate PaymentSource
        self.assertEqual(source.source_type.name, self.processor.NAME)
Exemplo n.º 6
0
    def test_handle_processor_response(self):
        """ Verify the processor creates the appropriate PaymentEvent, Source and Invoice objects. """

        order = factories.OrderFactory()
        business_client = BusinessClient.objects.create(name='Test client')
        source, payment_event = self.processor_class(self.site).handle_processor_response({}, order, business_client)

        # Validate PaymentEvent
        self.assertEqual(payment_event.event_type.name, PaymentEventTypeName.PAID)
        self.assertTrue(Invoice.objects.get(order=order, business_client=business_client))

        # Validate PaymentSource
        self.assertEqual(source.source_type.name, self.processor.NAME)
Exemplo n.º 7
0
 def setUp(self):
     super(PopulateInvoiceOrdersCommandTests, self).setUp()
     self.order = factories.OrderFactory()
     self.basket = factories.BasketFactory()
     self.basket.owner = factories.UserFactory()
     self.basket.save()