Ejemplo n.º 1
0
    def _render_tag(self, user, local_site=None):
        """Utility function to render the tag.

        This will render the template for the tag, providing all necessary
        arguments. It will also check the rendered string is of the expected
        type before returning it.

        Args:
            user (django.contrib.auth.models.User):
                The user to pass to the tag.

            local_site (reviewboard.site.models.LocalSite, optional):
                An optional Local Site for the request.

        Returns:
            django.utils.safestring.SafeText:
            The rendered content.
        """
        request = RequestFactory().get('/s/local-site-1/')
        request.user = user

        if local_site is not None:
            request._local_site_name = local_site.name
            request.local_site = local_site

        t = Template('{% load accounts %}'
                     '{% js_user_session_info %}')

        rendered = t.render(Context({
            'request': request,
        }))

        self.assertIsInstance(rendered, SafeText)

        return rendered
Ejemplo n.º 2
0
    def test_dispatch_with_no_local_site(self):
        """Testing CheckLocalSiteAccessViewMixin.dispatch with no LocalSite"""
        class MyView(CheckLocalSiteAccessViewMixin, View):
            def get(view, *args, **kwargs):
                self.assertIsNone(view.local_site)

                return HttpResponse('success')

        view = MyView.as_view()

        request = RequestFactory().request()
        request.resolver_match = ResolverMatch(view, [], {})
        request.local_site = None
        request.user = User.objects.get(username='******')

        response = view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.content, 'success')
Ejemplo n.º 3
0
    def test_dispatch_with_no_local_site(self):
        """Testing CheckLocalSiteAccessViewMixin.dispatch with no LocalSite"""
        class MyView(CheckLocalSiteAccessViewMixin, View):
            def get(view, *args, **kwargs):
                self.assertIsNone(view.local_site)

                return HttpResponse('success')

        view = MyView.as_view()

        request = RequestFactory().request()
        request.resolver_match = ResolverMatch(view, [], {})
        request.local_site = None
        request.user = User.objects.get(username='******')

        response = view(request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.content, 'success')
Ejemplo n.º 4
0
    def test_dispatch_with_local_site_and_anonymous(self):
        """Testing CheckLocalSiteAccessViewMixin.dispatch with LocalSite and
        anonymous user
        """
        class MyView(CheckLocalSiteAccessViewMixin, View):
            def get(view, *args, **kwargs):
                self.assertIsNotNone(view.local_site)
                self.assertEqual(view.local_site.name, 'local-site-1')

                return HttpResponse('success')

        view = MyView.as_view()

        request = RequestFactory().request()
        request.resolver_match = ResolverMatch(view, [], {})
        request.local_site = LocalSite.objects.get(name='local-site-1')
        request.user = AnonymousUser()

        response = view(request, local_site_name='local-site-1')
        self.assertIsInstance(response, HttpResponseRedirect)
Ejemplo n.º 5
0
    def test_dispatch_with_local_site_and_allowed(self):
        """Testing CheckLocalSiteAccessViewMixin.dispatch with LocalSite and
        access allowed
        """
        class MyView(CheckLocalSiteAccessViewMixin, View):
            def get(view, *args, **kwargs):
                self.assertIsNotNone(view.local_site)
                self.assertEqual(view.local_site.name, 'local-site-1')

                return HttpResponse('success')

        request = RequestFactory().request()
        request.local_site = LocalSite.objects.get(name='local-site-1')
        request.user = request.local_site.users.all()[0]

        view = MyView.as_view()
        response = view(request, local_site_name='local-site-1')

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.content, 'success')
Ejemplo n.º 6
0
    def test_dispatch_with_local_site_and_anonymous(self):
        """Testing CheckLocalSiteAccessViewMixin.dispatch with LocalSite and
        anonymous user
        """
        class MyView(CheckLocalSiteAccessViewMixin, View):
            def get(view, *args, **kwargs):
                self.assertIsNotNone(view.local_site)
                self.assertEqual(view.local_site.name, 'local-site-1')

                return HttpResponse('success')

        view = MyView.as_view()

        request = RequestFactory().request()
        request.resolver_match = ResolverMatch(view, [], {})
        request.local_site = LocalSite.objects.get(name='local-site-1')
        request.user = AnonymousUser()

        response = view(request, local_site_name='local-site-1')
        self.assertIsInstance(response, HttpResponseRedirect)
Ejemplo n.º 7
0
    def test_dispatch_with_local_site_and_allowed(self):
        """Testing CheckLocalSiteAccessViewMixin.dispatch with LocalSite and
        access allowed
        """
        class MyView(CheckLocalSiteAccessViewMixin, View):
            def get(view, *args, **kwargs):
                self.assertIsNotNone(view.local_site)
                self.assertEqual(view.local_site.name, 'local-site-1')

                return HttpResponse('success')

        request = RequestFactory().request()
        request.local_site = LocalSite.objects.get(name='local-site-1')
        request.user = request.local_site.users.all()[0]

        view = MyView.as_view()
        response = view(request, local_site_name='local-site-1')

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.content, 'success')
Ejemplo n.º 8
0
    def test_dispatch_with_local_site_and_not_allowed(self):
        """Testing CheckLocalSiteAccessViewMixin.dispatch with LocalSite and
        access not allowed
        """
        class MyView(CheckLocalSiteAccessViewMixin, View):
            def get(view, *args, **kwargs):
                self.assertIsNotNone(view.local_site)
                self.assertEqual(view.local_site.name, 'local-site-1')

                return HttpResponse('success')

        view = MyView.as_view()

        request = RequestFactory().request()
        request.resolver_match = ResolverMatch(view, [], {})
        request.local_site = LocalSite.objects.get(name='local-site-1')
        request.user = User.objects.create(username='******')

        response = view(request, local_site_name='local-site-1')
        self.assertEqual(response.status_code, 403)
Ejemplo n.º 9
0
    def test_dispatch_with_local_site_and_not_allowed(self):
        """Testing CheckLocalSiteAccessViewMixin.dispatch with LocalSite and
        access not allowed
        """
        class MyView(CheckLocalSiteAccessViewMixin, View):
            def get(view, *args, **kwargs):
                self.assertIsNotNone(view.local_site)
                self.assertEqual(view.local_site.name, 'local-site-1')

                return HttpResponse('success')

        view = MyView.as_view()

        request = RequestFactory().request()
        request.resolver_match = ResolverMatch(view, [], {})
        request.local_site = LocalSite.objects.get(name='local-site-1')
        request.user = User.objects.create_user(username='******',
                                                email='*****@*****.**')

        response = view(request, local_site_name='local-site-1')
        self.assertEqual(response.status_code, 403)