Skip to content

Commit fd77738

Browse files
slivercn2ygk
authored andcommitted
Avoid deprecation warnings during tests (#527)
Steps: * Change to non deprecation pagination class per default * filterwarnings per test level where a warning is actually tested * Add some global filterwarnings for warnings which happen during import time. (those can be removed when tests are being restructured) All in all when running tests it should bloat the output with unrelated warning messages anymore.
1 parent e5bea80 commit fd77738

16 files changed

+60
-55
lines changed

example/api/resources/identity.py

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,9 @@
1111

1212

1313
class Identity(mixins.MultipleIDMixin, viewsets.ModelViewSet):
14-
queryset = auth_models.User.objects.all()
14+
queryset = auth_models.User.objects.all().order_by('pk')
1515
serializer_class = IdentitySerializer
1616

17-
@list_route()
18-
def empty_list(self, request):
19-
"""
20-
This is a hack/workaround to return an empty result on a list
21-
endpoint because the delete operation in the test_empty_pluralization
22-
test doesn't prevent the /identities endpoint from still returning
23-
records when called in the same test. Suggestions welcome.
24-
"""
25-
self.queryset = self.queryset.filter(pk=None)
26-
return super(Identity, self).list(request)
27-
2817
# demonstrate sideloading data for use at app boot time
2918
@list_route()
3019
def posts(self, request):

example/settings/dev.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
'PAGE_SIZE': 5,
7373
'EXCEPTION_HANDLER': 'rest_framework_json_api.exceptions.exception_handler',
7474
'DEFAULT_PAGINATION_CLASS':
75-
'rest_framework_json_api.pagination.PageNumberPagination',
75+
'rest_framework_json_api.pagination.JsonApiPageNumberPagination',
7676
'DEFAULT_PARSER_CLASSES': (
7777
'rest_framework_json_api.parsers.JSONParser',
7878
'rest_framework.parsers.FormParser',

example/tests/integration/test_includes.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,8 @@
44
pytestmark = pytest.mark.django_db
55

66

7-
def test_default_included_data_on_list(multiple_entries, client):
8-
return test_included_data_on_list(
9-
multiple_entries=multiple_entries, client=client, query='?page_size=5'
10-
)
11-
12-
13-
def test_included_data_on_list(multiple_entries, client, query='?include=comments&page_size=5'):
14-
response = client.get(reverse("entry-list") + query)
7+
def test_included_data_on_list(multiple_entries, client):
8+
response = client.get(reverse("entry-list"), data={'include': 'comments', 'page[size]': 5})
159
included = response.json().get('included')
1610

1711
assert len(response.json()['data']) == len(multiple_entries), (
@@ -79,7 +73,7 @@ def test_missing_field_not_included(author_bio_factory, author_factory, client):
7973

8074
def test_deep_included_data_on_list(multiple_entries, client):
8175
response = client.get(reverse("entry-list") + '?include=comments,comments.author,'
82-
'comments.author.bio,comments.writer&page_size=5')
76+
'comments.author.bio,comments.writer&page[size]=5')
8377
included = response.json().get('included')
8478

8579
assert len(response.json()['data']) == len(multiple_entries), (
@@ -113,7 +107,7 @@ def test_deep_included_data_on_list(multiple_entries, client):
113107

114108
# Also include entry authors
115109
response = client.get(reverse("entry-list") + '?include=authors,comments,comments.author,'
116-
'comments.author.bio&page_size=5')
110+
'comments.author.bio&page[size]=5')
117111
included = response.json().get('included')
118112

119113
assert len(response.json()['data']) == len(multiple_entries), (

example/tests/integration/test_meta.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ def test_top_level_meta_for_list_view(blog, client):
2828
},
2929
}],
3030
'links': {
31-
'first': 'http://testserver/blogs?page=1',
32-
'last': 'http://testserver/blogs?page=1',
31+
'first': 'http://testserver/blogs?page%5Bnumber%5D=1',
32+
'last': 'http://testserver/blogs?page%5Bnumber%5D=1',
3333
'next': None,
3434
'prev': None
3535
},

example/tests/integration/test_pagination.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@ def test_pagination_with_single_entry(single_entry, client):
8787
}
8888
}],
8989
"links": {
90-
"first": "http://testserver/entries?page=1",
91-
"last": "http://testserver/entries?page=1",
90+
'first': 'http://testserver/entries?page%5Bnumber%5D=1',
91+
'last': 'http://testserver/entries?page%5Bnumber%5D=1',
9292
"next": None,
9393
"prev": None,
9494
},

example/tests/integration/test_polymorphism.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ def test_polymorphism_on_polymorphic_model_w_included_serializers(client):
105105
def test_polymorphic_model_without_any_instance(client):
106106
expected = {
107107
"links": {
108-
"first": "http://testserver/projects?page=1",
109-
"last": "http://testserver/projects?page=1",
108+
'first': 'http://testserver/projects?page%5Bnumber%5D=1',
109+
'last': 'http://testserver/projects?page%5Bnumber%5D=1',
110110
"next": None,
111111
"prev": None
112112
},

example/tests/test_format_keys.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ def test_camelization(self):
3636
}
3737
],
3838
'links': {
39-
'first': 'http://testserver/identities?page=1',
40-
'last': 'http://testserver/identities?page=2',
41-
'next': 'http://testserver/identities?page=2',
39+
'first': 'http://testserver/identities?page%5Bnumber%5D=1',
40+
'last': 'http://testserver/identities?page%5Bnumber%5D=2',
41+
'next': 'http://testserver/identities?page%5Bnumber%5D=2',
4242
'prev': None
4343
},
4444
'meta': {

example/tests/test_model_viewsets.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ def test_key_in_list_result(self):
4343
}
4444
],
4545
'links': {
46-
'first': 'http://testserver/identities?page=1',
47-
'last': 'http://testserver/identities?page=2',
48-
'next': 'http://testserver/identities?page=2',
46+
'first': 'http://testserver/identities?page%5Bnumber%5D=1',
47+
'last': 'http://testserver/identities?page%5Bnumber%5D=2',
48+
'next': 'http://testserver/identities?page%5Bnumber%5D=2',
4949
'prev': None
5050
},
5151
'meta': {
@@ -63,7 +63,7 @@ def test_page_two_in_list_result(self):
6363
"""
6464
Ensure that the second page is reachable and is the correct data.
6565
"""
66-
response = self.client.get(self.list_url, {'page': 2})
66+
response = self.client.get(self.list_url, {'page[number]': 2})
6767
self.assertEqual(response.status_code, 200)
6868

6969
user = get_user_model().objects.all()[1]
@@ -80,10 +80,10 @@ def test_page_two_in_list_result(self):
8080
}
8181
],
8282
'links': {
83-
'first': 'http://testserver/identities?page=1',
84-
'last': 'http://testserver/identities?page=2',
83+
'first': 'http://testserver/identities?page%5Bnumber%5D=1',
84+
'last': 'http://testserver/identities?page%5Bnumber%5D=2',
8585
'next': None,
86-
'prev': 'http://testserver/identities?page=1',
86+
'prev': 'http://testserver/identities?page%5Bnumber%5D=1'
8787
},
8888
'meta': {
8989
'pagination': {
@@ -102,7 +102,7 @@ def test_page_range_in_list_result(self):
102102
tests pluralization as two objects means it converts ``user`` to
103103
``users``.
104104
"""
105-
response = self.client.get(self.list_url, {'page_size': 2})
105+
response = self.client.get(self.list_url, {'page[size]': 2})
106106
self.assertEqual(response.status_code, 200)
107107

108108
users = get_user_model().objects.all()
@@ -128,8 +128,8 @@ def test_page_range_in_list_result(self):
128128
}
129129
],
130130
'links': {
131-
'first': 'http://testserver/identities?page=1&page_size=2',
132-
'last': 'http://testserver/identities?page=1&page_size=2',
131+
'first': 'http://testserver/identities?page%5Bnumber%5D=1&page%5Bsize%5D=2',
132+
'last': 'http://testserver/identities?page%5Bnumber%5D=1&page%5Bsize%5D=2',
133133
'next': None,
134134
'prev': None
135135
},

example/tests/test_multiple_id_mixin.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ def test_single_id_in_query_params(self):
3939
links = json_content.get("links")
4040
meta = json_content.get("meta").get('pagination')
4141

42-
self.assertEquals(expected.get('user'), json_content.get('user'))
43-
self.assertEquals(meta.get('count', 0), 1)
44-
self.assertEquals(links.get("next"), None)
42+
self.assertEqual(expected.get('user'), json_content.get('user'))
43+
self.assertEqual(meta.get('count', 0), 1)
44+
self.assertEqual(links.get("next"), None)
4545
self.assertEqual(meta.get("page"), 1)
4646

4747
def test_multiple_ids_in_query_params(self):
@@ -69,11 +69,11 @@ def test_multiple_ids_in_query_params(self):
6969
links = json_content.get("links")
7070
meta = json_content.get("meta").get('pagination')
7171

72-
self.assertEquals(expected.get('user'), json_content.get('user'))
73-
self.assertEquals(meta.get('count', 0), 2)
72+
self.assertEqual(expected.get('user'), json_content.get('user'))
73+
self.assertEqual(meta.get('count', 0), 2)
7474
self.assertEqual(
7575
sorted(
76-
'http://testserver/identities?ids%5B%5D=2&ids%5B%5D=1&page=2'
76+
'http://testserver/identities?ids%5B%5D=2&ids%5B%5D=1&page%5Bnumber%5D=2'
7777
.split('?')[1].split('&')
7878
),
7979
sorted(

example/tests/test_parsers.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import json
22
from io import BytesIO
33

4+
import pytest
45
from django.test import TestCase, override_settings
56
from rest_framework.exceptions import ParseError
67

@@ -34,6 +35,7 @@ def __init__(self):
3435

3536
self.string = json.dumps(data)
3637

38+
@pytest.mark.filterwarnings("ignore:`format_keys` function and `JSON_API_FORMAT_KEYS`")
3739
@override_settings(JSON_API_FORMAT_KEYS='camelize')
3840
def test_parse_include_metadata_format_keys(self):
3941
parser = JSONParser()

0 commit comments

Comments
 (0)