Skip to content

Commit 71b6d77

Browse files
committed
Updated existing tests to pytest.
1 parent a04c82d commit 71b6d77

File tree

4 files changed

+64
-24
lines changed

4 files changed

+64
-24
lines changed

example/serializers.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@ class Meta:
2828
fields = ('tag',)
2929

3030

31-
# DRF default serializer to test default DRF functionalities
3231
class TaggedItemDRFSerializer(drf_serilazers.ModelSerializer):
32+
"""
33+
DRF default serializer to test default DRF functionalities
34+
"""
3335
class Meta:
3436
model = TaggedItem
3537
fields = ('tag',)
@@ -58,8 +60,10 @@ class Meta:
5860
meta_fields = ('copyright',)
5961

6062

61-
# DRF default serializer to test default DRF functionalities
62-
class BlogDRFSerializer(serializers.ModelSerializer):
63+
class BlogDRFSerializer(drf_serilazers.ModelSerializer):
64+
"""
65+
DRF default serializer to test default DRF functionalities
66+
"""
6367
copyright = serializers.SerializerMethodField()
6468
tags = TaggedItemSerializer(many=True, read_only=True)
6569

example/tests/conftest.py

+10
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,13 @@ def single_art_project(art_project_factory):
6262
@pytest.fixture
6363
def client():
6464
return APIClient()
65+
66+
67+
@pytest.fixture
68+
def blog():
69+
return BlogFactory()
70+
71+
72+
@pytest.fixture
73+
def entry(blog):
74+
return EntryFactory(blog=blog)

example/tests/unit/test_default_drf_serializers.py

+46-20
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
import pytest
2+
import factory
3+
14
import json
25

36
from django.urls import reverse
47
from rest_framework.serializers import ModelSerializer, SerializerMethodField
58
from rest_framework import viewsets
69

7-
from example.tests.test_views import TestBlogViewSet
810
from rest_framework_json_api.renderers import JSONRenderer
911

1012
from example.models import Comment, Entry
@@ -78,22 +80,46 @@ def test_render_format_keys(settings):
7880
assert result['data']['attributes']['json-field'] == {'json-key': 'JsonValue'}
7981

8082

81-
class TestDRFBlogViewSet(TestBlogViewSet):
82-
83-
def test_get_object_gives_correct_blog(self):
84-
url = reverse('drf-entry-blog', kwargs={'entry_pk': self.entry.id})
85-
resp = self.client.get(url)
86-
expected = {
87-
'data': {
88-
'attributes': {'name': self.blog.name},
89-
'id': '{}'.format(self.blog.id),
90-
'links': {'self': 'http://testserver/blogs/{}'.format(self.blog.id)},
91-
'meta': {'copyright': 2018},
92-
'relationships': {'tags': {'data': []}},
93-
'type': 'blogs'
94-
},
95-
'meta': {'apiDocs': '/docs/api/blogs'}
96-
}
97-
got = resp.json()
98-
print(got)
99-
self.assertEqual(got, expected)
83+
@pytest.mark.django_db
84+
def test_get_object_gives_correct_blog(client, blog, entry):
85+
86+
url = reverse('drf-entry-blog', kwargs={'entry_pk': entry.id})
87+
resp = client.get(url)
88+
expected = {
89+
'data': {
90+
'attributes': {'name': blog.name},
91+
'id': '{}'.format(blog.id),
92+
'links': {'self': 'http://testserver/blogs/{}'.format(blog.id)},
93+
'meta': {'copyright': 2018},
94+
'relationships': {'tags': {'data': []}},
95+
'type': 'blogs'
96+
},
97+
'meta': {'apiDocs': '/docs/api/blogs'}
98+
}
99+
got = resp.json()
100+
assert got == expected
101+
102+
103+
# @pytest.mark.django_db
104+
# def test_get_object_updates_correct_blog(client, blog, entry):
105+
#
106+
# url = reverse('drf-entry-blog', kwargs={'entry_pk': entry.id})
107+
# new_name = blog.name + " update"
108+
# assert not new_name == blog.name
109+
#
110+
# resp = client.patch(url, {"name": new_name})
111+
# print(resp)
112+
#
113+
# expected = {
114+
# 'data': {
115+
# 'attributes': {'name': new_name},
116+
# 'id': '{}'.format(blog.id),
117+
# 'links': {'self': 'http://testserver/blogs/{}'.format(blog.id)},
118+
# 'meta': {'copyright': 2018},
119+
# 'relationships': {'tags': {'data': []}},
120+
# 'type': 'blogs'
121+
# },
122+
# 'meta': {'apiDocs': '/docs/api/blogs'}
123+
# }
124+
# got = resp.json()
125+
# assert got == expected

example/urls_test.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
BlogViewSet.as_view({'get': 'retrieve'}),
5151
name='entry-blog'
5252
),
53-
# url to test default DRF functionalities
53+
# get/patch url to test default DRF functionalities
5454
url(r'^entries/(?P<entry_pk>[^/.]+)/blog',
5555
DRFBlogViewSet.as_view({'get': 'retrieve'}),
5656
name='drf-entry-blog'

0 commit comments

Comments
 (0)