Skip to content

Commit 802b0b6

Browse files
committed
Added more tests
1 parent 4fc3047 commit 802b0b6

File tree

2 files changed

+125
-1
lines changed

2 files changed

+125
-1
lines changed

example/tests/test_views.py

+124
Original file line numberDiff line numberDiff line change
@@ -280,3 +280,127 @@ def test_no_content_response(self):
280280
response = self.client.delete(url)
281281
assert response.status_code == 204, response.rendered_content.decode()
282282
assert len(response.rendered_content) == 0, response.rendered_content.decode()
283+
284+
285+
class TestBlogViewSet(APITestCase):
286+
287+
def setUp(self):
288+
self.blog = Blog.objects.create(
289+
name='Some Blog',
290+
tagline="It's a blog"
291+
)
292+
self.entry = Entry.objects.create(
293+
blog=self.blog,
294+
headline='headline one',
295+
body_text='body_text two',
296+
)
297+
298+
def test_get_object_gives_correct_blog(self):
299+
url = reverse('entry-blog', kwargs={'entry_pk': self.entry.id})
300+
resp = self.client.get(url)
301+
expected = {
302+
'data': {
303+
'attributes': {'name': self.blog.name},
304+
'id': '{}'.format(self.blog.id),
305+
'links': {'self': 'http://testserver/blogs/{}'.format(self.blog.id)},
306+
'meta': {'copyright': 2018},
307+
'relationships': {'tags': {'data': []}},
308+
'type': 'blogs'
309+
},
310+
'meta': {'apiDocs': '/docs/api/blogs'}
311+
}
312+
got = resp.json()
313+
self.assertEqual(got, expected)
314+
315+
316+
class TestEntryViewSet(APITestCase):
317+
318+
def setUp(self):
319+
self.blog = Blog.objects.create(
320+
name='Some Blog',
321+
tagline="It's a blog"
322+
)
323+
self.first_entry = Entry.objects.create(
324+
blog=self.blog,
325+
headline='headline two',
326+
body_text='body_text two',
327+
)
328+
self.second_entry = Entry.objects.create(
329+
blog=self.blog,
330+
headline='headline two',
331+
body_text='body_text two',
332+
)
333+
self.maxDiff = None
334+
335+
def test_get_object_gives_correct_entry(self):
336+
url = reverse('entry-featured', kwargs={'entry_pk': self.first_entry.id})
337+
resp = self.client.get(url)
338+
expected = {
339+
'data': {
340+
'attributes': {
341+
'bodyText': self.second_entry.body_text,
342+
'headline': self.second_entry.headline,
343+
'modDate': self.second_entry.mod_date,
344+
'pubDate': self.second_entry.pub_date
345+
},
346+
'id': '{}'.format(self.second_entry.id),
347+
'meta': {'bodyFormat': 'text'},
348+
'relationships': {
349+
'authors': {'data': [], 'meta': {'count': 0}},
350+
'blog': {
351+
'data': {
352+
'id': '{}'.format(self.second_entry.blog_id),
353+
'type': 'blogs'
354+
}
355+
},
356+
'blogHyperlinked': {
357+
'links': {
358+
'related': 'http://testserver/entries/{}'
359+
'/blog'.format(self.second_entry.id),
360+
'self': 'http://testserver/entries/{}'
361+
'/relationships/blog_hyperlinked'.format(self.second_entry.id)
362+
}
363+
},
364+
'comments': {
365+
'data': [],
366+
'meta': {'count': 0}
367+
},
368+
'commentsHyperlinked': {
369+
'links': {
370+
'related': 'http://testserver/entries/{}'
371+
'/comments'.format(self.second_entry.id),
372+
'self': 'http://testserver/entries/{}/relationships'
373+
'/comments_hyperlinked'.format(self.second_entry.id)
374+
}
375+
},
376+
'featuredHyperlinked': {
377+
'links': {
378+
'related': 'http://testserver/entries/{}'
379+
'/featured'.format(self.second_entry.id),
380+
'self': 'http://testserver/entries/{}/relationships'
381+
'/featured_hyperlinked'.format(self.second_entry.id)
382+
}
383+
},
384+
'suggested': {
385+
'data': [{'id': '1', 'type': 'entries'}],
386+
'links': {
387+
'related': 'http://testserver/entries/{}'
388+
'/suggested/'.format(self.second_entry.id),
389+
'self': 'http://testserver/entries/{}'
390+
'/relationships/suggested'.format(self.second_entry.id)
391+
}
392+
},
393+
'suggestedHyperlinked': {
394+
'links': {
395+
'related': 'http://testserver/entries/{}'
396+
'/suggested/'.format(self.second_entry.id),
397+
'self': 'http://testserver/entries/{}/relationships'
398+
'/suggested_hyperlinked'.format(self.second_entry.id)
399+
}
400+
},
401+
'tags': {'data': []}},
402+
'type': 'posts'
403+
}
404+
}
405+
got = resp.json()
406+
self.assertEqual(got, expected)

example/views.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ def get_object(self):
7979
# Handle featured
8080
entry_pk = self.kwargs.get('entry_pk', None)
8181
if entry_pk is not None:
82-
return Entry.objects.first()
82+
return Entry.objects.exclude(pk=entry_pk).first()
8383

8484
return super(EntryViewSet, self).get_object()
8585

0 commit comments

Comments
 (0)