Пример #1
0
    def test_apply_to_class_based_view(self):

        @self.registry.register(allow_anonymous=True)
        def can_do_things(user):
            return user.can_do_things

        @self.registry.require('can_do_things')
        class View(object):

            def dispatch(self, req):
                return getattr(self, req.method.lower())(req)

            def get(self, req):
                pass

        self.assertEqual(View.dispatch.__name__, 'dispatch')

        request = self.request_factory.get('/things')
        request.user = User()

        request.user.can_do_things = True
        view = View()
        view.dispatch(request)

        request.user.can_do_things = False
        self.assertRaises(PermissionDenied, view.dispatch, request)
Пример #2
0
 def setUp(self):
     self.fake_renderer = SEEDJSONRenderer()
     self.fake_response = mock.MagicMock()
     self.fake_view = View()
     self.fake_context = {
         'view': self.fake_view,
         'response': self.fake_response
     }
Пример #3
0
    def test_setup_adds_args_kwargs_request(self):
        request = self.rf.get('/')
        args = ('arg 1', 'arg 2')
        kwargs = {'kwarg_1': 1, 'kwarg_2': 'year'}

        view = View()
        view.setup(request, *args, **kwargs)
        self.assertEqual(request, view.request)
        self.assertEqual(args, view.args)
        self.assertEqual(kwargs, view.kwargs)
Пример #4
0
    def test_setup_adds_args_kwargs_request(self):
        request = self.rf.get("/")
        args = ("arg 1", "arg 2")
        kwargs = {"kwarg_1": 1, "kwarg_2": "year"}

        view = View()
        view.setup(request, *args, **kwargs)
        self.assertEqual(request, view.request)
        self.assertEqual(args, view.args)
        self.assertEqual(kwargs, view.kwargs)
Пример #5
0
    def test_apply_to_class_based_view_with_model(self):

        @self.registry.register(model=Model, allow_anonymous=True)
        def can_do_stuff(user, instance):
            return user.can_do_stuff and instance is not None

        @self.registry.require('can_do_stuff')
        class View(object):

            def dispatch(self, req, model_id, *args, **kwargs):
                return getattr(self, req.method.lower())(req, model_id, *args, **kwargs)

            def get(self, req, model_id):
                return model_id

        request = self.request_factory.get('/stuff/1')
        request.user = User()

        request.user.can_do_stuff = True
        view = View()
        view.dispatch(request, 1)

        request.user.can_do_stuff = False
        self.assertRaises(PermissionDenied, view.dispatch, request, model_id=1)
Пример #6
0
"""{{ cookiecutter.project_name }} views."""
from __future__ import absolute_import

from django.http import HttpResponse
from django.views.generic import TemplateView, View
{%- if cookiecutter.use_rest_framework == 'y' %}
from rest_framework import viewsets
{%- endif %}
{% set views = cookiecutter.views.split(' ') %}

class PingView(View):
    """Test if server is up."""

    def get(self, request):  # pylint: disable=unused-argument
        """Pong response."""
        return HttpResponse('pong')
{%- for view in views %}


class {{ view.capitalize() }}View(TemplateView):
    template_name = "{{ view }}.html"

    def get_context_data(self, **kwargs):
        context = super({{ view.capitalize() }}View, self).get_context_data(**kwargs)

        context.update({})

        return context
{%- endfor %}