Beispiel #1
0
class TestAllowReadOnlyIfPublicAndListed(TestCase):
    def setUp(self):
        self.permission = AllowReadOnlyIfPublicAndListed()
        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 = AnonymousUser()
        return request

    def test_has_permission(self):
        for verb in self.safe_methods:
            assert self.permission.has_permission(self.request(verb), myview)
        for verb in self.unsafe_methods:
            assert not self.permission.has_permission(self.request(verb),
                                                      myview)

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

        for verb in self.safe_methods:
            assert self.permission.has_object_permission(
                self.request(verb), myview, obj)

        for verb in self.unsafe_methods:
            assert not self.permission.has_object_permission(
                self.request(verb), myview, obj)

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

        for verb in self.unsafe_methods + self.safe_methods:
            assert not self.permission.has_object_permission(
                self.request(verb), myview, obj)

    def test_has_object_permission_not_listed(self):
        obj = Mock()
        obj.is_public.return_value = True
        obj.is_listed = False

        for verb in self.unsafe_methods + self.safe_methods:
            assert not self.permission.has_object_permission(
                self.request(verb), myview, obj)

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

        for verb in self.unsafe_methods + self.safe_methods:
            assert not self.permission.has_object_permission(
                self.request(verb), myview, obj)
class TestAllowReadOnlyIfPublicAndListed(TestCase):
    def setUp(self):
        self.permission = AllowReadOnlyIfPublicAndListed()
        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 = AnonymousUser()
        return request

    def test_has_permission(self):
        for verb in self.safe_methods:
            assert self.permission.has_permission(self.request(verb), myview)
        for verb in self.unsafe_methods:
            assert not self.permission.has_permission(self.request(verb), myview)

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

        for verb in self.safe_methods:
            assert self.permission.has_object_permission(self.request(verb), myview, obj)

        for verb in self.unsafe_methods:
            assert not self.permission.has_object_permission(self.request(verb), myview, obj)

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

        for verb in self.unsafe_methods + self.safe_methods:
            assert not self.permission.has_object_permission(self.request(verb), myview, obj)

    def test_has_object_permission_not_listed(self):
        obj = Mock()
        obj.is_public.return_value = True
        obj.is_listed = False

        for verb in self.unsafe_methods + self.safe_methods:
            assert not self.permission.has_object_permission(self.request(verb), myview, obj)

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

        for verb in self.unsafe_methods + self.safe_methods:
            assert not self.permission.has_object_permission(self.request(verb), myview, obj)
 def setUp(self):
     self.permission = AllowReadOnlyIfPublicAndListed()
     self.request_factory = RequestFactory()
     self.unsafe_methods = ("patch", "post", "put", "delete")
     self.safe_methods = ("get", "options", "head")
Beispiel #4
0
 def setUp(self):
     self.permission = AllowReadOnlyIfPublicAndListed()
     self.request_factory = RequestFactory()
     self.unsafe_methods = ('patch', 'post', 'put', 'delete')
     self.safe_methods = ('get', 'options', 'head')