0001-api-add-regies-data-source-view-69321.patch
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 |
- |