Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 802b0b6

Browse files
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‎

Lines changed: 124 additions & 0 deletions
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‎

Lines changed: 1 addition & 1 deletion
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)

AltStyle によって変換されたページ (->オリジナル) /