Ejemplo n.º 1
0
 def test_should_return_http_response_forbiden_to_logged_in_users_if_access_is_not_granted(self):
     # Setup
     self.mixin.object = self.forum
     self.mixin.permission_required = ['can_read_forum', ]
     request = self.factory.get('/')
     request.user = self.user
     ForumPermissionHandlerMiddleware().process_request(request)
     # Run & check
     with pytest.raises(PermissionDenied):
         self.mixin.dispatch(request)
Ejemplo n.º 2
0
 def test_should_raise_if_the_permission_required_attribute_is_set_with_an_incorrect_value(self):
     # Setup
     self.mixin.object = self.forum
     self.mixin.permission_required = 10
     request = self.factory.get('/')
     request.user = self.user
     ForumPermissionHandlerMiddleware().process_request(request)
     # Run & check
     with pytest.raises(ImproperlyConfigured):
         self.mixin.check_permissions(request)
        def get_rendered(forums, user):
            request = self.request_factory.get('/')
            request.user = user
            ForumPermissionHandlerMiddleware().process_request(request)
            t = Template(
                self.loadstatement +
                '{% get_unread_forums forums request.user as unread_forums %}')
            c = Context({'forums': forums, 'request': request})
            rendered = t.render(c)

            return c, rendered
Ejemplo n.º 4
0
 def test_should_redirect_anonymous_users_to_login_url_if_access_is_not_granted(self):
     # Setup
     self.mixin.object = self.forum
     self.mixin.permission_required = 'can_read_forum'
     request = self.factory.get('/')
     request.user = AnonymousUser()
     ForumPermissionHandlerMiddleware().process_request(request)
     # Run
     response = self.mixin.dispatch(request)
     # Check
     assert response.status_code == 302  # Moved temporarily
Ejemplo n.º 5
0
    def test_should_return_a_valid_response_if_access_is_granted(self):
        # Setup
        class ForumTestView(PermissionRequiredMixin, DetailView):
            permission_required = ['can_see_forum', ]

            def get_queryset(self):
                return Forum.objects.all()

        forum_view = ForumTestView()
        request = self.factory.get('/')
        request.user = self.user
        ForumPermissionHandlerMiddleware().process_request(request)
        # Run
        response = forum_view.dispatch(request, pk=self.forum.pk)
        # Check
        assert response.status_code == 200
Ejemplo n.º 6
0
    def test_should_consider_controlled_object_prior_to_builtin_objet_or_get_object_attributes(self):
        forum = self.forum

        # Setup
        class UserTestView(PermissionRequiredMixin, DetailView):
            permission_required = ['can_see_forum', ]

            def get_queryset(self):
                return User.objects.all()

            def get_controlled_object(self):
                return forum

        user_view = UserTestView()
        request = self.factory.get('/')
        request.user = self.user
        ForumPermissionHandlerMiddleware().process_request(request)
        # Run
        response = user_view.dispatch(request, pk=self.user.pk)
        # Check
        assert response.status_code == 200
Ejemplo n.º 7
0
 def test_can_render_a_list_of_forums_according_to_their_minimum_tree_level(
         self):
     # Setup
     forums = Forum.objects.all()
     request = self.request_factory.get('/')
     request.user = self.user
     ForumPermissionHandlerMiddleware().process_request(request)
     t = Template(self.loadstatement + '{% forum_list forums %}')
     c = Context({'forums': forums, 'request': request})
     expected_out = render_to_string(
         'machina/forum/forum_list.html', {
             'forums': forums,
             'user': self.user,
             'root_level': 0,
             'root_level_middle': 1,
             'root_level_sub': 2,
         })
     # Run
     rendered = t.render(c)
     # Check
     assert rendered != ''
     assert rendered == expected_out