Skip to content

Commit de0910a

Browse files
committed
refactored some tests from PR django-json-api#310
2 parents b4428d9 + 4b0dcc5 commit de0910a

17 files changed

+139
-159
lines changed

docs/usage.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ from rest_framework_json_api.relations import ResourceRelatedField
307307
from myapp.models import Order, LineItem, Customer
308308

309309

310-
class OrderSerializer(serializers.ModelSerializer):
310+
class OrderSerializer(serializers.HyperlinkedModelSerializer):
311311
class Meta:
312312
model = Order
313313

@@ -371,7 +371,7 @@ class LineItemViewSet(viewsets.ModelViewSet):
371371
# unnested '/lineitems' route, the queryset should include all LineItems
372372
if 'order_pk' in self.kwargs:
373373
order_pk = self.kwargs['order_pk']
374-
queryset = queryset.filter(order__pk=order_pk])
374+
queryset = queryset.filter(order__pk=order_pk)
375375

376376
return queryset
377377
```

example/serializers.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,11 @@ def __init__(self, *args, **kwargs):
4444
source='comment_set', many=True, read_only=True)
4545
# many related from serializer
4646
suggested = relations.SerializerMethodResourceRelatedField(
47-
source='get_suggested', model=Entry, many=True, read_only=True)
47+
source='get_suggested', model=Entry, many=True, read_only=True,
48+
related_link_view_name='entry-suggested',
49+
related_link_url_kwarg='entry_pk',
50+
self_link_view_name='entry-relationships',
51+
)
4852
# single related from serializer
4953
featured = relations.SerializerMethodResourceRelatedField(
5054
source='get_featured', model=Entry, read_only=True)

example/tests/integration/test_meta.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from django.core.urlresolvers import reverse
33

44
import pytest
5-
from example.tests.utils import dump_json, redump_json
5+
from example.tests.utils import load_json
66

77
pytestmark = pytest.mark.django_db
88

@@ -36,10 +36,9 @@ def test_top_level_meta_for_list_view(blog, client):
3636
}
3737

3838
response = client.get(reverse("blog-list"))
39-
content_dump = redump_json(response.content)
40-
expected_dump = dump_json(expected)
39+
parsed_content = load_json(response.content)
4140

42-
assert content_dump == expected_dump
41+
assert expected == parsed_content
4342

4443

4544
def test_top_level_meta_for_detail_view(blog, client):
@@ -64,7 +63,6 @@ def test_top_level_meta_for_detail_view(blog, client):
6463
}
6564

6665
response = client.get(reverse("blog-detail", kwargs={'pk': blog.pk}))
67-
content_dump = redump_json(response.content)
68-
expected_dump = dump_json(expected)
66+
parsed_content = load_json(response.content)
6967

70-
assert content_dump == expected_dump
68+
assert expected == parsed_content

example/tests/integration/test_non_paginated_responses.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from example.views import EntryViewSet
77
from rest_framework_json_api.pagination import PageNumberPagination
88

9-
from example.tests.utils import dump_json, redump_json
9+
from example.tests.utils import load_json
1010

1111
pytestmark = pytest.mark.django_db
1212

@@ -43,7 +43,11 @@ def test_multiple_entries_no_pagination(multiple_entries, rf):
4343
"data": [{"type": "comments", "id": "1"}]
4444
},
4545
"suggested": {
46-
"data": [{"type": "entries", "id": "2"}]
46+
"data": [{"type": "entries", "id": "2"}],
47+
"links": {
48+
"related": "http://testserver/entries/1/suggested/",
49+
"self": "http://testserver/entries/1/relationships/suggested"
50+
}
4751
}
4852
}
4953
},
@@ -74,7 +78,11 @@ def test_multiple_entries_no_pagination(multiple_entries, rf):
7478
"data": [{"type": "comments", "id": "2"}]
7579
},
7680
"suggested": {
77-
"data": [{"type": "entries", "id": "1"}]
81+
"data": [{"type": "entries", "id": "1"}],
82+
"links": {
83+
"related": "http://testserver/entries/2/suggested/",
84+
"self": "http://testserver/entries/2/relationships/suggested"
85+
}
7886
}
7987
}
8088
},
@@ -93,7 +101,6 @@ class NonPaginatedEntryViewSet(EntryViewSet):
93101
response = view(request)
94102
response.render()
95103

96-
content_dump = redump_json(response.content)
97-
expected_dump = dump_json(expected)
104+
parsed_content = load_json(response.content)
98105

99-
assert content_dump == expected_dump
106+
assert expected == parsed_content

example/tests/integration/test_pagination.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from django.core.urlresolvers import reverse
22

33
import pytest
4-
from example.tests.utils import dump_json, redump_json
4+
from example.tests.utils import load_json
55

66
pytestmark = pytest.mark.django_db
77

@@ -37,7 +37,11 @@ def test_pagination_with_single_entry(single_entry, client):
3737
"data": [{"type": "comments", "id": "1"}]
3838
},
3939
"suggested": {
40-
"data": []
40+
"data": [],
41+
"links": {
42+
"related": "http://testserver/entries/1/suggested/",
43+
"self": "http://testserver/entries/1/relationships/suggested"
44+
}
4145
}
4246
}
4347
}],
@@ -59,7 +63,6 @@ def test_pagination_with_single_entry(single_entry, client):
5963
}
6064

6165
response = client.get(reverse("entry-list"))
62-
content_dump = redump_json(response.content)
63-
expected_dump = dump_json(expected)
66+
parsed_content = load_json(response.content)
6467

65-
assert content_dump == expected_dump
68+
assert expected == parsed_content

example/tests/test_format_keys.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
from django.contrib.auth import get_user_model
22
from django.core.urlresolvers import reverse
3-
from django.conf import settings
43
from django.utils import encoding
54

65
from example.tests import TestBase
7-
from example.tests.utils import dump_json, redump_json
6+
from example.tests.utils import load_json
87

98

109
class FormatKeysSetTests(TestBase):
@@ -53,7 +52,6 @@ def test_camelization(self):
5352
}
5453
}
5554

56-
content_dump = redump_json(response.content)
57-
expected_dump = dump_json(expected)
55+
parsed_content = load_json(response.content)
5856

59-
assert expected_dump == content_dump
57+
assert expected == parsed_content

example/tests/test_generic_validation.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from rest_framework.serializers import ValidationError
77

88
from example.tests import TestBase
9-
from example.tests.utils import dump_json, redump_json
9+
from example.tests.utils import load_json
1010

1111

1212
class GenericValidationTest(TestBase):
@@ -34,7 +34,6 @@ def test_generic_validation_error(self):
3434
}]
3535
}
3636

37-
content_dump = redump_json(response.content)
38-
expected_dump = dump_json(expected)
37+
parsed_content = load_json(response.content)
3938

40-
assert expected_dump == content_dump
39+
assert expected == parsed_content

example/tests/test_generic_viewset.py

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from django.conf import settings
55

66
from example.tests import TestBase
7-
from example.tests.utils import dump_json, redump_json
7+
from example.tests.utils import load_json
88

99

1010
class GenericViewSet(TestBase):
@@ -38,10 +38,9 @@ def test_default_rest_framework_behavior(self):
3838
'email': '[email protected]'
3939
}
4040

41-
content_dump = redump_json(response.content)
42-
expected_dump = dump_json(expected)
41+
parsed_content = load_json(response.content)
4342

44-
assert expected_dump == content_dump
43+
assert expected == parsed_content
4544

4645

4746
def test_ember_expected_renderer(self):
@@ -66,10 +65,9 @@ def test_ember_expected_renderer(self):
6665
}
6766
}
6867

69-
content_dump = redump_json(response.content)
70-
expected_dump = dump_json(expected)
68+
parsed_content = load_json(response.content)
7169

72-
assert expected_dump == content_dump
70+
assert expected == parsed_content
7371

7472
def test_default_validation_exceptions(self):
7573
"""
@@ -96,10 +94,9 @@ def test_default_validation_exceptions(self):
9694
response = self.client.post('/identities', {
9795
'email': 'bar', 'first_name': 'alajflajaljalajlfjafljalj'})
9896

99-
content_dump = redump_json(response.content)
100-
expected_dump = dump_json(expected)
97+
parsed_content = load_json(response.content)
10198

102-
assert expected_dump == content_dump
99+
assert expected == parsed_content
103100

104101
def test_custom_validation_exceptions(self):
105102
"""
@@ -124,7 +121,6 @@ def test_custom_validation_exceptions(self):
124121
response = self.client.post('/identities', {
125122
'email': 'bar', 'last_name': 'alajflajaljalajlfjafljalj'})
126123

127-
content_dump = redump_json(response.content)
128-
expected_dump = dump_json(expected)
124+
parsed_content = load_json(response.content)
129125

130-
assert expected_dump == content_dump
126+
assert expected == parsed_content

example/tests/test_model_viewsets.py

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from django.conf import settings
77

88
from example.tests import TestBase
9-
from example.tests.utils import dump_json, redump_json
9+
from example.tests.utils import dump_json, load_json
1010

1111

1212
class ModelViewSetTests(TestBase):
@@ -64,10 +64,9 @@ def test_key_in_list_result(self):
6464
}
6565
}
6666

67-
content_dump = redump_json(response.content)
68-
expected_dump = dump_json(expected)
67+
parsed_content = load_json(response.content)
6968

70-
assert expected_dump == content_dump
69+
assert expected == parsed_content
7170

7271
def test_page_two_in_list_result(self):
7372
"""
@@ -104,10 +103,9 @@ def test_page_two_in_list_result(self):
104103
}
105104
}
106105

107-
content_dump = redump_json(response.content)
108-
expected_dump = dump_json(expected)
106+
parsed_content = load_json(response.content)
109107

110-
assert expected_dump == content_dump
108+
assert expected == parsed_content
111109

112110
def test_page_range_in_list_result(self):
113111
"""
@@ -155,10 +153,9 @@ def test_page_range_in_list_result(self):
155153
}
156154
}
157155

158-
content_dump = redump_json(response.content)
159-
expected_dump = dump_json(expected)
156+
parsed_content = load_json(response.content)
160157

161-
assert expected_dump == content_dump
158+
assert expected == parsed_content
162159

163160
def test_key_in_detail_result(self):
164161
"""
@@ -179,10 +176,9 @@ def test_key_in_detail_result(self):
179176
}
180177
}
181178

182-
content_dump = redump_json(response.content)
183-
expected_dump = dump_json(expected)
179+
parsed_content = load_json(response.content)
184180

185-
assert expected_dump == content_dump
181+
assert expected == parsed_content
186182

187183
def test_patch_requires_id(self):
188184
"""
@@ -224,10 +220,9 @@ def test_key_in_post(self):
224220
content_type='application/vnd.api+json',
225221
data=dump_json(data))
226222

227-
content_dump = redump_json(response.content)
228-
expected_dump = dump_json(data)
223+
parsed_content = load_json(response.content)
229224

230-
assert expected_dump == content_dump
225+
assert data == parsed_content
231226

232227
# is it updated?
233228
self.assertEqual(

example/tests/test_parsers.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<<<<<<< HEAD
12
# import json
23
#
34
# from django.test import TestCase
@@ -35,4 +36,4 @@
3536
# stream = BytesIO(self.string.encode('utf-8'))
3637
# data = parser.parse(stream, None, self.parser_context)
3738
#
38-
# self.assertEqual(data['_meta'], {'random_key': 'random_value'})
39+
# self.assertEqual(data['_meta'], {'random_key': 'random_value'})

0 commit comments

Comments
 (0)