def test_get_invoice(authenticated_api_client, settings, issued_invoice): invoice = issued_invoice customer = issued_invoice.customer issued_invoice.generate_pdf() with mute_signals(pre_save): [ TransactionFactory.create( state=state, invoice=issued_invoice, payment_method=PaymentMethodFactory(customer=customer)) for state in Transaction.States.as_list() if state not in [ Transaction.States.Canceled, Transaction.States.Refunded, Transaction.States.Failed ] ] url = reverse('invoice-detail', kwargs={'pk': invoice.pk}) response = authenticated_api_client.get(url, format='json') assert response.status_code == status.HTTP_200_OK, response.data # Cast IDs to UUID so the comparison check doesn't fail data = response.data data['transactions'][0]['id'] = UUID(data['transactions'][0]['id']) data['transactions'][1]['id'] = UUID(data['transactions'][1]['id']) data['transactions'][2]['id'] = UUID(data['transactions'][2]['id']) invoice_definition.check_response(invoice, response_data=response.data)
def test_post_invoice_without_invoice_entries(authenticated_api_client, customer, provider): SubscriptionFactory.create() url = reverse('invoice-list') provider_url = build_absolute_test_url( reverse('provider-detail', [provider.pk])) customer_url = build_absolute_test_url( reverse('customer-detail', [customer.pk])) request_data = { 'provider': provider_url, 'customer': customer_url, 'series': None, 'number': None, 'currency': 'RON', 'invoice_entries': [] } response = authenticated_api_client.post(url, data=request_data, format='json') assert response.status_code == status.HTTP_201_CREATED, response.data invoice = Invoice.objects.get(id=response.data['id']) invoice_definition.check_response(invoice, response.data, request_data)
def test_post_invoice_with_invoice_entries_without_transaction_xe_rate( transaction_currency, authenticated_api_client ): customer = CustomerFactory.create() provider = ProviderFactory.create() SubscriptionFactory.create() url = reverse('invoice-list') provider_url = build_absolute_test_url(reverse('provider-detail', [provider.pk])) customer_url = build_absolute_test_url(reverse('customer-detail', [customer.pk])) request_data = { 'provider': provider_url, 'customer': customer_url, 'series': None, 'number': None, 'currency': 'RON', 'transaction_currency': transaction_currency, 'invoice_entries': [{ "description": "Page views", "unit_price": 10.0, "quantity": 20}] } response = authenticated_api_client.post(url, data=request_data, format='json') assert response.status_code == status.HTTP_201_CREATED, response.data invoice = Invoice.objects.get(id=response.data['id']) invoice_definition.check_response(invoice, response.data, request_data) assert response.data['invoice_entries'] # content already checked in previous assert