def test_author_entries_view(self): posts = self.get_posts() pages = self.get_pages() with smart_override('en'): request = self.get_page_request(pages[1], self.user, lang='en', edit=True) view_obj = AuthorEntriesView() view_obj.namespace, view_obj.config = get_app_instance(request) view_obj.request = request view_obj.kwargs = {'username': self.user.get_username()} qs = view_obj.get_queryset() self.assertEqual(qs.count(), 3) self.assertEqual(set(qs), set([posts[0], posts[1], posts[2]])) view_obj.paginate_by = 1 view_obj.object_list = qs context = view_obj.get_context_data(object_list=view_obj.object_list) self.assertTrue(context['author']) self.assertEqual(context['author'], self.user) self.assertTrue(context['is_paginated']) self.assertEqual(list(context['post_list']), [posts[0]]) self.assertEqual(context['paginator'].count, 3) self.assertEqual(context['post_list'][0].title, 'First post') request = self.get_page_request(pages[1], self.user, edit=False) view_obj.request = request qs = view_obj.get_queryset() self.assertEqual(qs.count(), 1)
def test_author_entries_view(self): page1, page2 = self.get_pages() post1, post2 = self.get_posts() request = self.get_page_request(page1, self.user, r'/en/blog/', edit=True) activate('en') view_obj = AuthorEntriesView() view_obj.request = request view_obj.kwargs = {'username': self.user.get_username()} qs = view_obj.get_queryset() self.assertEqual(qs.count(), 2) self.assertEqual(set(qs), set([post1, post2])) view_obj.paginate_by = 1 view_obj.object_list = qs context = view_obj.get_context_data(object_list=view_obj.object_list) self.assertTrue(context['author']) self.assertEqual(context['author'], self.user) self.assertTrue(context['is_paginated']) self.assertEqual(list(context['post_list']), [post2]) self.assertEqual(context['paginator'].count, 2) self.assertEqual(context['post_list'][0].title, 'Second post')
def test_non_existing_author_should_raise_404(self): pages = self.get_pages() with smart_override('en'): request = self.get_request(pages[1], 'en', AnonymousUser()) view_obj = AuthorEntriesView() view_obj.request = request view_obj.namespace, view_obj.config = get_app_instance(request) with self.assertRaises(Http404): view_obj.kwargs = {'username': '******'} view_obj.get_context_data()
def test_author_entries_view(self): page1, page2 = self.get_pages() post1, post2 = self.get_posts() request = self.get_page_request(page1, self.user, r'/en/blog/', edit=False) activate('en') view_obj = AuthorEntriesView() view_obj.request = request view_obj.kwargs = {'username': self.user.get_username()} qs = view_obj.get_queryset() self.assertEqual(qs.count(), 2) self.assertEqual(set(qs), set([post1, post2])) view_obj.paginate_by = 1 view_obj.object_list = qs context = view_obj.get_context_data(object_list=view_obj.object_list) self.assertTrue(context['author']) self.assertEqual(context['author'], self.user) self.assertTrue(context['is_paginated']) self.assertEqual(list(context['post_list']), [post2]) self.assertEqual(context['paginator'].count, 2) self.assertEqual(context['post_list'][0].title, 'Second post')
def test_author_entries_view(self): pages = self.get_pages() posts = self.get_posts() with smart_override('en'): request = self.get_page_request(pages[1], self.user, lang='en', edit=True) view_obj = AuthorEntriesView() view_obj.namespace, view_obj.config = get_app_instance(request) view_obj.request = request view_obj.kwargs = {'username': self.user.get_username()} qs = view_obj.get_queryset() self.assertEqual(qs.count(), 3) self.assertEqual(set(qs), set([posts[0], posts[1], posts[2]])) view_obj.paginate_by = 1 view_obj.object_list = qs context = view_obj.get_context_data( object_list=view_obj.object_list) self.assertTrue(context['author']) self.assertEqual(context['author'], self.user) self.assertTrue(context['is_paginated']) self.assertEqual(list(context['post_list']), [posts[0]]) self.assertEqual(context['paginator'].count, 3) self.assertEqual(context['post_list'][0].title, 'First post') request = self.get_page_request(pages[1], self.user, edit=False) view_obj.request = request qs = view_obj.get_queryset() self.assertEqual(qs.count(), 1)
def get_urls(): urls = get_setting("PERMALINK_URLS") details = [] for urlconf in urls.values(): details.append( path(urlconf, PostDetailView.as_view(), name="post-detail"), ) return details detail_urls = get_urls() urlpatterns = [ path("latests/", PostListView.as_view(), name="posts-latest"), path("feed/", LatestEntriesFeed(), name="posts-latest-feed"), path("feed/fb/", FBInstantArticles(), name="posts-latest-feed-fb"), path("<int:year>/", PostArchiveView.as_view(), name="posts-archive"), path("<int:year>/<int:month>/", PostArchiveView.as_view(), name="posts-archive"), path("author/<str:username>/", AuthorEntriesView.as_view(), name="posts-author"), path("category/<str:category>/", CategoryEntriesView.as_view(), name="posts-category"), path("tag/<slug:tag>/", TaggedListView.as_view(), name="posts-tagged"), path("tag/<slug:tag>/feed/", TagFeed(), name="posts-tagged-feed"), ] + detail_urls
def test_author_entries_view(self): pages = self.get_pages() posts = self.get_posts() with smart_override("en"): request = self.get_page_request(pages[1], self.user, lang="en", edit=True) view_obj = AuthorEntriesView() view_obj.namespace, view_obj.config = get_app_instance(request) view_obj.request = request view_obj.kwargs = {"username": self.user.get_username()} qs = view_obj.get_queryset() self.assertEqual(qs.count(), 3) self.assertEqual(set(qs), {posts[0], posts[1], posts[2]}) view_obj.paginate_by = 1 view_obj.object_list = qs context = view_obj.get_context_data(object_list=view_obj.object_list) self.assertTrue(context["author"]) self.assertEqual(context["author"], self.user) self.assertTrue(context["is_paginated"]) self.assertEqual(list(context["post_list"]), [posts[0]]) self.assertEqual(context["paginator"].count, 3) self.assertEqual(context["post_list"][0].title, "First post") request = self.get_page_request(pages[1], self.user, edit=False) view_obj.request = request qs = view_obj.get_queryset() self.assertEqual(qs.count(), 1)
details = [] for urlconf in urls.values(): details.append( url(urlconf, PostDetailView.as_view(), name='post-detail'), ) return details detail_urls = get_urls() urlpatterns = [ url(r'^latests/$', PostListView.as_view(), name='posts-latest'), url(r'^feed/$', LatestEntriesFeed(), name='posts-latest-feed'), url(r'^feed/fb/$', FBInstantArticles(), name='posts-latest-feed-fb'), url(r'^(?P<year>\d{4})/$', PostArchiveView.as_view(), name='posts-archive'), url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/$', PostArchiveView.as_view(), name='posts-archive'), url(r'^author/(?P<username>[\w\.@+-]+)/$', AuthorEntriesView.as_view(), name='posts-author'), url(r'^category/(?P<category>[\w\.@+-]+)/$', CategoryEntriesView.as_view(), name='posts-category'), url(r'^tag/(?P<tag>[-\w]+)/$', TaggedListView.as_view(), name='posts-tagged'), url(r'^tag/(?P<tag>[-\w]+)/feed/$', TagFeed(), name='posts-tagged-feed'), ] + detail_urls