Ejemplo n.º 1
0
def test_add_single_invoice_entry(authenticated_api_client, invoice):
    url = reverse('invoice-entry-create', kwargs={'document_pk': invoice.pk})
    request_data = {
        "description": "Page views",
        "unit_price": 10.0,
        "quantity": 20
    }
    response = authenticated_api_client.post(url, data=json.dumps(request_data),
                                             content_type='application/json')

    invoice = Invoice.objects.all()[0]
    total = Decimal(200.0) * Decimal(1 + invoice.sales_tax_percent / 100)

    assert response.status_code == status.HTTP_201_CREATED, response.data
    entry = DocumentEntry.objects.get(id=response.data['id'])
    document_entry_definition.check_response(entry, response.data, request_data)

    url = reverse('invoice-detail', kwargs={'pk': invoice.pk})
    response = authenticated_api_client.get(url)

    invoice_entries = response.data['invoice_entries']
    assert invoice_entries == [spec_document_entry(entry)]
Ejemplo n.º 2
0
     'output': lambda invoice: invoice.sales_tax_name,
     'assertions': [
         lambda input, invoice, output: input == output if input else output == 'VAT'
     ]
 },
 'transactions': {
     'read_only': True,
     'output': lambda invoice: [
         spec_transaction(t) for t in invoice.transactions
     ]
 },
 'invoice_entries': {
     'required': False,
     'expected_input_types': list,
     'output': lambda invoice: [
         spec_document_entry(entry) for entry in invoice.entries
     ],
     'assertions': [
         lambda input, invoice, output: (
             len(input) == len(invoice.entries) == len(output) if input else
             len(invoice.entries) == len(output)
         ),
         # TODO
         # lambda input, invoice, output: (
         #     document_entry_definition.check_response(input, invoice.entries, output)
         # )
     ]
 },
 'pdf_url': {
     'read_only': True,
     'output': lambda invoice: (