Projet

Général

Profil

0001-api-add-regies-data-source-view-69321.patch

Emmanuel Cazenave, 28 septembre 2022 15:35

Télécharger (2,56 ko)

Voir les différences:

Subject: [PATCH] api: add regies data source view (#69321)

 lingo/api/urls.py           |  5 +++++
 lingo/api/views.py          | 18 ++++++++++++++++++
 tests/api/test_invoicing.py | 24 ++++++++++++++++++++++++
 3 files changed, 47 insertions(+)
 create mode 100644 tests/api/test_invoicing.py
lingo/api/urls.py
29 29
        views.pricing_compute,
30 30
        name='api-pricing-compute',
31 31
    ),
32
    url(
33
        r'^regies/$',
34
        views.invoicing_regies,
35
        name='api-invoicing-regies',
36
    ),
32 37
]
lingo/api/views.py
22 22
from lingo.agendas.models import Agenda
23 23
from lingo.api import serializers
24 24
from lingo.api.utils import APIErrorBadRequest, Response
25
from lingo.invoicing.models import Regie
25 26

  
26 27

  
27 28
class AgendaCheckTypeList(APIView):
......
55 56

  
56 57

  
57 58
pricing_compute = PricingCompute.as_view()
59

  
60

  
61
class InvoicingRegies(APIView):
62
    permission_classes = (permissions.IsAuthenticated,)
63

  
64
    def get(self, request, format=None):
65
        return Response(
66
            {
67
                'data': [
68
                    {'id': regie.slug, 'text': regie.label, 'slug': regie.slug}
69
                    for regie in Regie.objects.order_by('label')
70
                ]
71
            }
72
        )
73

  
74

  
75
invoicing_regies = InvoicingRegies.as_view()
tests/api/test_invoicing.py
1
import pytest
2

  
3
from lingo.invoicing.models import Regie
4

  
5
pytestmark = pytest.mark.django_db
6

  
7

  
8
def test_regies_empty(app, user):
9
    app.authorization = ('Basic', ('john.doe', 'password'))
10
    resp = app.get('/api/regies/')
11
    data = resp.json
12
    assert data['data'] == []
13

  
14

  
15
def test_regies(app, user):
16
    app.authorization = ('Basic', ('john.doe', 'password'))
17
    Regie.objects.create(label='Bar')
18
    Regie.objects.create(label='Foo')
19
    resp = app.get('/api/regies/')
20
    data = resp.json
21
    assert data['data'] == [
22
        {'id': 'bar', 'text': 'Bar', 'slug': 'bar'},
23
        {'id': 'foo', 'text': 'Foo', 'slug': 'foo'},
24
    ]
0
-