Ejemplo n.º 1
0
    def setUp(self):
        self.permission = AllowReadOnlyIfPublic()
        self.anonymous = AnonymousUser()
        self.request_factory = RequestFactory()

        self.unsafe_methods = ('patch', 'post', 'put', 'delete')
        self.safe_methods = ('get', 'options', 'head')
Ejemplo n.º 2
0
    def setUp(self):
        self.permission = AllowReadOnlyIfPublic()
        self.anonymous = AnonymousUser()
        self.request_factory = RequestFactory()

        self.unsafe_methods = ('patch', 'post', 'put', 'delete')
        self.safe_methods = ('get', 'options', 'head')
Ejemplo n.º 3
0
class TestAllowReadOnlyIfPublic(TestCase):
    def setUp(self):
        self.permission = AllowReadOnlyIfPublic()
        self.anonymous = AnonymousUser()
        self.request_factory = RequestFactory()

        # 'patch' is missing because it's absent from RequestFactory in
        # django < 1.5. Usually we don't special case 'put' vs 'patch' in
        # permissions code though, so it's fine.
        self.unsafe_methods = ('post', 'put', 'delete')
        self.safe_methods = ('get', 'options', 'head')

    def _request(self, verb):
        request = getattr(self.request_factory, verb)('/')
        request.user = self.anonymous
        return request

    def test_has_permission(self):
        for verb in self.safe_methods:
            eq_(self.permission.has_permission(self._request(verb), 'myview'),
                True)
        for verb in self.unsafe_methods:
            eq_(self.permission.has_permission(self._request(verb), 'myview'),
                False)

    def test_has_object_permission_public(self):
        obj = Mock()
        obj.is_public.return_value = True

        for verb in self.safe_methods:
            eq_(self.permission.has_object_permission(self._request(verb),
                'myview', obj), True)

        for verb in self.unsafe_methods:
            eq_(self.permission.has_object_permission(self._request(verb),
                'myview', obj), False)

    def test_has_object_permission_not_public(self):
        obj = Mock()
        obj.is_public.return_value = False

        for verb in (self.unsafe_methods + self.safe_methods):
            eq_(self.permission.has_object_permission(self._request(verb),
                'myview', obj), False)
Ejemplo n.º 4
0
class TestAllowReadOnlyIfPublic(TestCase):
    def setUp(self):
        self.permission = AllowReadOnlyIfPublic()
        self.anonymous = AnonymousUser()
        self.request_factory = RequestFactory()

        self.unsafe_methods = ('patch', 'post', 'put', 'delete')
        self.safe_methods = ('get', 'options', 'head')

    def _request(self, verb):
        request = getattr(self.request_factory, verb)('/')
        request.user = self.anonymous
        return request

    def test_has_permission(self):
        for verb in self.safe_methods:
            eq_(self.permission.has_permission(self._request(verb), 'myview'),
                True)
        for verb in self.unsafe_methods:
            eq_(self.permission.has_permission(self._request(verb), 'myview'),
                False)

    def test_has_object_permission_public(self):
        obj = Mock()
        obj.is_public.return_value = True

        for verb in self.safe_methods:
            eq_(
                self.permission.has_object_permission(self._request(verb),
                                                      'myview', obj), True)

        for verb in self.unsafe_methods:
            eq_(
                self.permission.has_object_permission(self._request(verb),
                                                      'myview', obj), False)

    def test_has_object_permission_not_public(self):
        obj = Mock()
        obj.is_public.return_value = False

        for verb in (self.unsafe_methods + self.safe_methods):
            eq_(
                self.permission.has_object_permission(self._request(verb),
                                                      'myview', obj), False)
Ejemplo n.º 5
0
    def setUp(self):
        self.permission = AllowReadOnlyIfPublic()
        self.anonymous = AnonymousUser()
        self.request_factory = RequestFactory()

        # 'patch' is missing because it's absent from RequestFactory in
        # django < 1.5. Usually we don't special case 'put' vs 'patch' in
        # permissions code though, so it's fine.
        self.unsafe_methods = ('post', 'put', 'delete')
        self.safe_methods = ('get', 'options', 'head')
Ejemplo n.º 6
0
class TestAllowReadOnlyIfPublic(TestCase):
    def setUp(self):
        self.permission = AllowReadOnlyIfPublic()
        self.anonymous = AnonymousUser()
        self.request_factory = RequestFactory()

        self.unsafe_methods = ('patch', 'post', 'put', 'delete')
        self.safe_methods = ('get', 'options', 'head')

    def _request(self, verb):
        request = getattr(self.request_factory, verb)('/')
        request.user = self.anonymous
        return request

    def test_has_permission(self):
        for verb in self.safe_methods:
            eq_(self.permission.has_permission(self._request(verb), 'myview'),
                True)
        for verb in self.unsafe_methods:
            eq_(self.permission.has_permission(self._request(verb), 'myview'),
                False)

    def test_has_object_permission_public(self):
        obj = Mock()
        obj.is_public.return_value = True

        for verb in self.safe_methods:
            eq_(self.permission.has_object_permission(self._request(verb),
                'myview', obj), True)

        for verb in self.unsafe_methods:
            eq_(self.permission.has_object_permission(self._request(verb),
                'myview', obj), False)

    def test_has_object_permission_not_public(self):
        obj = Mock()
        obj.is_public.return_value = False

        for verb in (self.unsafe_methods + self.safe_methods):
            eq_(self.permission.has_object_permission(self._request(verb),
                'myview', obj), False)