Skip to content

Commit 63de8d4

Browse files
committed
Merge branch 'hotfix/2.4.6'
2 parents 3efdf21 + d3d505c commit 63de8d4

2 files changed

Lines changed: 68 additions & 0 deletions

File tree

api/views/banner.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from rest_framework import viewsets
2+
from rest_framework_json_api.pagination import PageNumberPagination
23

34
from api.serializers import SiteBannerSerializer
45
from share.models import SiteBanner
@@ -7,6 +8,7 @@
78
class SiteBannerViewSet(viewsets.ReadOnlyModelViewSet):
89
"""View showing all active site-wide announcements."""
910
serializer_class = SiteBannerSerializer
11+
pagination_class = PageNumberPagination
1012

1113
def get_queryset(self):
1214
return SiteBanner.objects.filter(active=True)

tests/api/test_sitebanners.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import pytest
2+
3+
from share.models import SiteBanner
4+
from share.util import IDObfuscator
5+
from tests.share.models.factories import ShareUserFactory
6+
7+
8+
@pytest.mark.django_db
9+
class TestSiteBanners:
10+
11+
def test_list(self, client):
12+
resp = client.get('/api/v2/site_banners/')
13+
assert resp.status_code == 200
14+
assert resp.json() == {
15+
'data': [],
16+
'links': {
17+
'first': 'http://testserver/api/v2/site_banners/?page=1',
18+
'last': 'http://testserver/api/v2/site_banners/?page=1',
19+
'next': None,
20+
'prev': None,
21+
},
22+
'meta': {
23+
'pagination': {'count': 0, 'pages': 1, 'page': 1},
24+
}
25+
}
26+
27+
def test_list_with_items(self, client):
28+
user = ShareUserFactory()
29+
banner = SiteBanner.objects.create(
30+
title='Why wasnt I there',
31+
description='I could have saved them',
32+
created_by=user,
33+
last_modified_by=user,
34+
)
35+
resp = client.get('/api/v2/site_banners/')
36+
assert resp.status_code == 200
37+
assert resp.json() == {
38+
'data': [{
39+
'id': IDObfuscator.encode(banner),
40+
'type': 'SiteBanner',
41+
'attributes': {
42+
'color': 'info',
43+
'icon': 'exclamation',
44+
'title': 'Why wasnt I there',
45+
'description': 'I could have saved them',
46+
}
47+
}],
48+
'links': {
49+
'first': 'http://testserver/api/v2/site_banners/?page=1',
50+
'last': 'http://testserver/api/v2/site_banners/?page=1',
51+
'next': None,
52+
'prev': None,
53+
},
54+
'meta': {
55+
'pagination': {'count': 1, 'pages': 1, 'page': 1},
56+
}
57+
}
58+
59+
# def test_get_item(self, client):
60+
# resp = client.get('/api/v2/site_banners/')
61+
# assert resp.status_code == 200
62+
# assert resp.json() == {
63+
# 'data': [],
64+
# 'meta': {
65+
# }
66+
# }

0 commit comments

Comments
 (0)