コード例 #1
0
    def test_get_view_url(self):
        pages = self.get_pages()
        self.get_posts()

        # Test the custom version of get_view_url against the different namespaces
        request = self.get_request(pages[1], 'en', AnonymousUser())
        view_obj_1 = PostListView()
        view_obj_1.request = request
        view_obj_1.args = ()
        view_obj_1.kwargs = {}
        view_obj_1.namespace, view_obj_1.config = get_app_instance(request)
        self.assertEqual(
            view_obj_1.get_view_url(),
            'http://testserver{0}'.format(pages[1].get_absolute_url()))

        request = self.get_request(pages[2], 'en', AnonymousUser())
        view_obj_2 = PostListView()
        view_obj_2.request = request
        view_obj_2.args = ()
        view_obj_2.kwargs = {}
        view_obj_2.namespace, view_obj_2.config = get_app_instance(request)
        self.assertEqual(
            view_obj_2.get_view_url(),
            'http://testserver{0}'.format(pages[2].get_absolute_url()))

        view_obj_2.view_url_name = None
        with self.assertRaises(ImproperlyConfigured):
            view_obj_2.get_view_url()
コード例 #2
0
    def test_get_view_url(self):
        posts = self.get_posts()
        pages = self.get_pages()

        # Test the custom version of get_view_url against the different namespaces
        request = self.get_request(pages[1], 'en', AnonymousUser())
        view_obj_1 = PostListView()
        view_obj_1.request = request
        view_obj_1.args = ()
        view_obj_1.kwargs = {}
        view_obj_1.namespace, view_obj_1.config = get_app_instance(request)
        self.assertEqual(
            view_obj_1.get_view_url(),
            'http://testserver{0}'.format(pages[1].get_absolute_url())
        )

        request = self.get_request(pages[2], 'en', AnonymousUser())
        view_obj_2 = PostListView()
        view_obj_2.request = request
        view_obj_2.args = ()
        view_obj_2.kwargs = {}
        view_obj_2.namespace, view_obj_2.config = get_app_instance(request)
        self.assertEqual(
            view_obj_2.get_view_url(),
            'http://testserver{0}'.format(pages[2].get_absolute_url())
        )

        view_obj_2.view_url_name = None
        with self.assertRaises(ImproperlyConfigured):
            view_obj_2.get_view_url()
コード例 #3
0
    def test_post_list_view(self):
        pages = self.get_pages()
        posts = self.get_posts()

        request = self.get_request(pages[1], 'en', AnonymousUser())

        with smart_override('en'):
            view_obj = PostListView()
            view_obj.request = request
            view_obj.namespace, view_obj.config = get_app_instance(request)
            self.assertEqual(getattr(request, BLOG_CURRENT_NAMESPACE, None),
                             None)

            self.assertEqual(list(view_obj.get_queryset()), [posts[0]])
            self.assertEqual(getattr(request, BLOG_CURRENT_NAMESPACE),
                             self.app_config_1)

            request = self.get_page_request(pages[1],
                                            self.user,
                                            lang='en',
                                            edit=False)
            view_obj.namespace, view_obj.config = get_app_instance(request)
            view_obj.request = request
            view_obj.kwargs = {}
            qs = view_obj.get_queryset()
            self.assertEqual(qs.count(), 1)
            self.assertEqual(set(qs), set([posts[0]]))

            request = self.get_page_request(pages[1],
                                            self.user,
                                            lang='en',
                                            edit=True)
            view_obj.namespace, view_obj.config = get_app_instance(request)
            view_obj.request = request
            self.assertEqual(set(view_obj.get_queryset()),
                             set([posts[0], posts[1], posts[2]]))

            view_obj.kwargs = {}
            view_obj.args = ()
            view_obj.object_list = view_obj.get_queryset()
            view_obj.paginate_by = 1
            context = view_obj.get_context_data(
                object_list=view_obj.object_list)
            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')
            response = view_obj.render_to_response(context)
            self.assertContains(response,
                                context['post_list'][0].get_absolute_url())
            self.assertEqual(getattr(request, BLOG_CURRENT_NAMESPACE),
                             self.app_config_1)

            posts[1].sites.add(self.site_2)
            self.assertTrue(view_obj.get_queryset().count(), 2)
            self.assertFalse(posts[1] in view_obj.get_queryset())

        with smart_override('it'):
            request = self.get_page_request(pages[1],
                                            self.user,
                                            lang='it',
                                            edit=True)
            view_obj = PostListView()
            view_obj.namespace, view_obj.config = get_app_instance(request)
            view_obj.request = request
            view_obj.args = ()
            view_obj.kwargs = {}
            view_obj.object_list = view_obj.get_queryset()
            context = view_obj.get_context_data(
                object_list=view_obj.object_list)
            self.assertEqual(context['post_list'][0].title, 'Primo post')
            response = view_obj.render_to_response(context)
            self.assertContains(response,
                                context['post_list'][0].get_absolute_url())
            blog_menu = request.toolbar.get_or_create_menu(
                'djangocms_blog', _('Blog'))

            self.assertEqual(len(blog_menu.items), 3)
            self.assertEqual(
                len(
                    blog_menu.find_items(
                        ModalItem,
                        url=reverse('admin:djangocms_blog_post_changelist'))),
                1)
            self.assertEqual(
                len(
                    blog_menu.find_items(
                        ModalItem,
                        url=reverse('admin:djangocms_blog_post_add'))), 1)
            self.assertEqual(
                len(
                    blog_menu.find_items(
                        ModalItem,
                        url=reverse('admin:djangocms_blog_blogconfig_change',
                                    args=(self.app_config_1.pk, )))), 1)
コード例 #4
0
    def test_post_list_view(self):
        posts = self.get_posts()
        pages = self.get_pages()

        request = self.get_request(pages[1], 'en', AnonymousUser())

        with smart_override('en'):
            view_obj = PostListView()
            view_obj.request = request
            view_obj.namespace, view_obj.config = get_app_instance(request)
            self.assertEqual(getattr(request, BLOG_CURRENT_NAMESPACE, None), None)

            self.assertEqual(list(view_obj.get_queryset()), [posts[0]])
            self.assertEqual(getattr(request, BLOG_CURRENT_NAMESPACE), self.app_config_1)

            request = self.get_page_request(pages[1], self.user, lang='en', edit=False)
            view_obj.namespace, view_obj.config = get_app_instance(request)
            view_obj.request = request
            view_obj.kwargs = {}
            qs = view_obj.get_queryset()
            self.assertEqual(qs.count(), 1)
            self.assertEqual(set(qs), set([posts[0]]))

            request = self.get_page_request(pages[1], self.user, lang='en', edit=True)
            view_obj.namespace, view_obj.config = get_app_instance(request)
            view_obj.request = request
            self.assertEqual(set(view_obj.get_queryset()), set([posts[0], posts[1], posts[2]]))

            view_obj.kwargs = {}
            view_obj.args = ()
            view_obj.object_list = view_obj.get_queryset()
            view_obj.paginate_by = 1
            context = view_obj.get_context_data(object_list=view_obj.object_list)
            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')
            response = view_obj.render_to_response(context)
            self.assertContains(response, context['post_list'][0].get_absolute_url())
            self.assertEqual(getattr(request, BLOG_CURRENT_NAMESPACE), self.app_config_1)

            posts[1].sites.add(self.site_2)
            self.assertTrue(view_obj.get_queryset().count(), 2)
            self.assertFalse(posts[1] in view_obj.get_queryset())

        with smart_override('it'):
            request = self.get_page_request(pages[1], self.user, lang='it', edit=True)
            view_obj = PostListView()
            view_obj.namespace, view_obj.config = get_app_instance(request)
            view_obj.request = request
            view_obj.args = ()
            view_obj.kwargs = {}
            view_obj.object_list = view_obj.get_queryset()
            context = view_obj.get_context_data(object_list=view_obj.object_list)
            self.assertEqual(context['post_list'][0].title, 'Primo post')
            response = view_obj.render_to_response(context)
            self.assertContains(response, context['post_list'][0].get_absolute_url())
            blog_menu = request.toolbar.get_or_create_menu('djangocms_blog', _('Blog'))

            self.assertEqual(len(blog_menu.items), 3)
            self.assertEqual(len(blog_menu.find_items(
                ModalItem, url=reverse('admin:djangocms_blog_post_changelist')
            )), 1)
            self.assertEqual(len(blog_menu.find_items(
                ModalItem, url=reverse('admin:djangocms_blog_post_add')
            )), 1)
            self.assertEqual(len(blog_menu.find_items(
                ModalItem, url=reverse(
                    'admin:djangocms_blog_blogconfig_change', args=(self.app_config_1.pk,)
                )
            )), 1)