示例#1
0
 def setUp(self):
     self.permission = AllowReadOnlyIfReviewedAndListed()
     self.request_factory = RequestFactory()
     self.unsafe_methods = ('patch', 'post', 'put', 'delete')
     self.safe_methods = ('get', 'options', 'head')
 def setUp(self):
     self.permission = AllowReadOnlyIfReviewedAndListed()
     self.request_factory = RequestFactory()
     self.unsafe_methods = ('patch', 'post', 'put', 'delete')
     self.safe_methods = ('get', 'options', 'head')
示例#3
0
class TestAllowReadOnlyIfReviewedAndListed(TestCase):
    def setUp(self):
        self.permission = AllowReadOnlyIfReviewedAndListed()
        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_reviewed(self):
        obj = Mock()
        obj.is_reviewed.return_value = True
        obj.is_listed = True
        obj.disabled_by_user = False

        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_reviewed_but_disabled_by_user(self):
        obj = Mock()
        obj.is_reviewed.return_value = True
        obj.is_listed = False
        obj.disabled_by_user = 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_reviewed(self):
        obj = Mock()
        obj.is_reviewed.return_value = False
        obj.is_listed = True
        obj.disabled_by_user = 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(self):
        obj = Mock()
        obj.is_reviewed.return_value = True
        obj.is_listed = False
        obj.disabled_by_user = 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_reviewed(self):
        obj = Mock()
        obj.is_reviewed.return_value = False
        obj.is_listed = False
        obj.disabled_by_user = False

        for verb in self.unsafe_methods + self.safe_methods:
            assert not self.permission.has_object_permission(
                self.request(verb), myview, obj)
class TestAllowReadOnlyIfReviewedAndListed(TestCase):
    def setUp(self):
        self.permission = AllowReadOnlyIfReviewedAndListed()
        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_reviewed(self):
        obj = Mock()
        obj.is_reviewed.return_value = True
        obj.is_listed = True
        obj.disabled_by_user = False

        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_reviewed_but_disabled_by_user(self):
        obj = Mock()
        obj.is_reviewed.return_value = True
        obj.is_listed = False
        obj.disabled_by_user = 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_reviewed(self):
        obj = Mock()
        obj.is_reviewed.return_value = False
        obj.is_listed = True
        obj.disabled_by_user = 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(self):
        obj = Mock()
        obj.is_reviewed.return_value = True
        obj.is_listed = False
        obj.disabled_by_user = 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_reviewed(self):
        obj = Mock()
        obj.is_reviewed.return_value = False
        obj.is_listed = False
        obj.disabled_by_user = False

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