コード例 #1
0
 def test_get_with_no_access(self):
     """Testing the GET <URL> API  without access to invite-only group"""
     group = self.create_review_group(name='priv-group', invite_only=True)
     rsp = self.api_get(get_review_group_user_list_url(group.name),
                        expected_status=403)
     self.assertEqual(rsp['stat'], 'fail')
     self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
コード例 #2
0
 def test_get_with_no_access(self):
     """Testing the GET <URL> API  without access to invite-only group"""
     group = self.create_review_group(name='priv-group', invite_only=True)
     rsp = self.api_get(get_review_group_user_list_url(group.name),
                        expected_status=403)
     self.assertEqual(rsp['stat'], 'fail')
     self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
コード例 #3
0
 def test_get_with_no_access(self):
     """Testing the GET groups/<name>/users/ API
     without access to invite-only group
     """
     group = self.create_review_group(name="priv-group", invite_only=True)
     rsp = self.apiGet(get_review_group_user_list_url(group.name), expected_status=403)
     self.assertEqual(rsp["stat"], "fail")
     self.assertEqual(rsp["err"]["code"], PERMISSION_DENIED.code)
コード例 #4
0
    def test_create_user_with_no_access(self, local_site=None):
        """Testing the POST groups/<name>/users/ API with Permission Denied"""
        group = self.create_review_group()
        user = User.objects.get(pk=1)

        rsp = self.apiPost(get_review_group_user_list_url(
            group.name, local_site), {'username': user.username},
                           expected_status=403)
        self.assertEqual(rsp['stat'], 'fail')
コード例 #5
0
    def test_post_with_no_access(self, local_site=None):
        """Testing the POST groups/<name>/users/ API with Permission Denied"""
        group = self.create_review_group()
        user = User.objects.get(pk=1)

        rsp = self.apiPost(
            get_review_group_user_list_url(group.name, local_site), {"username": user.username}, expected_status=403
        )
        self.assertEqual(rsp["stat"], "fail")
コード例 #6
0
    def setup_basic_post_test(self, user, with_local_site, local_site_name, post_valid_data):
        group = self.create_review_group(with_local_site=with_local_site)

        if post_valid_data:
            post_data = {"username": "******"}
        else:
            post_data = {}

        return (get_review_group_user_list_url(group.name, local_site_name), user_item_mimetype, post_data, [group])
コード例 #7
0
    def test_post_with_no_access(self, local_site=None):
        """Testing the POST <URL> API with Permission Denied"""
        group = self.create_review_group()
        user = User.objects.get(pk=1)

        rsp = self.api_post(
            get_review_group_user_list_url(group.name, local_site),
            {'username': user.username},
            expected_status=403)
        self.assertEqual(rsp['stat'], 'fail')
コード例 #8
0
    def setup_basic_get_test(self, user, with_local_site, local_site_name, populate_items):
        group = self.create_review_group(with_local_site=with_local_site)

        if populate_items:
            items = [User.objects.get(username="******"), User.objects.get(username="******")]
            group.users = items
        else:
            items = []

        return (get_review_group_user_list_url(group.name, local_site_name), user_list_mimetype, items)
コード例 #9
0
    def test_post_with_invalid_user(self):
        """Testing the POST groups/<name>/users/ API with invalid user"""
        self._login_user(admin=True)

        group = self.create_review_group()

        rsp = self.apiPost(get_review_group_user_list_url(group.name), {"username": "******"}, expected_status=400)
        self.assertEqual(rsp["stat"], "fail")
        self.assertEqual(rsp["err"]["code"], INVALID_USER.code)

        self.assertEqual(group.users.count(), 0)
コード例 #10
0
    def test_post_with_self(self):
        """Testing the POST <URL> API with the requesting user"""
        group = self.create_review_group()

        self.assertFalse(self.user.is_superuser)

        rsp = self.api_post(get_review_group_user_list_url(group.name),
                            {'username': self.user.username},
                            expected_mimetype=review_group_user_item_mimetype)
        self.assertEqual(rsp['stat'], 'ok')

        self.assertEqual(group.users.count(), 1)
コード例 #11
0
    def test_get(self, local_site=None):
        """Testing the GET groups/<name>/users/ API"""
        group = self.create_review_group(
            with_local_site=(local_site is not None))
        group.users.add(User.objects.get(username='******'))
        group.users.add(User.objects.get(username='******'))

        rsp = self.apiGet(
            get_review_group_user_list_url(group.name, local_site),
            expected_mimetype=user_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['users']), 2)
コード例 #12
0
    def test_get_users(self, local_site=None):
        """Testing the GET groups/<name>/users/ API"""
        group = self.create_review_group(
            with_local_site=(local_site is not None))
        group.users.add(User.objects.get(username='******'))
        group.users.add(User.objects.get(username='******'))

        rsp = self.apiGet(get_review_group_user_list_url(
            group.name, local_site),
                          expected_mimetype=user_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['users']), 2)
コード例 #13
0
    def test_post_with_self(self):
        """Testing the POST <URL> API with the requesting user"""
        group = self.create_review_group()

        self.assertFalse(self.user.is_superuser)

        rsp = self.api_post(
            get_review_group_user_list_url(group.name),
            {'username': self.user.username},
            expected_mimetype=review_group_user_item_mimetype)
        self.assertEqual(rsp['stat'], 'ok')

        self.assertEqual(group.users.count(), 1)
コード例 #14
0
    def test_create_user_with_invalid_user(self):
        """Testing the POST groups/<name>/users/ API with invalid user"""
        self._login_user(admin=True)

        group = self.create_review_group()

        rsp = self.apiPost(get_review_group_user_list_url(group.name),
                           {'username': '******'},
                           expected_status=400)
        self.assertEqual(rsp['stat'], 'fail')
        self.assertEqual(rsp['err']['code'], INVALID_USER.code)

        self.assertEqual(group.users.count(), 0)
コード例 #15
0
    def test_post_with_self_and_private_group(self):
        """Testing the POST <URL> API with the requesting user and private
        group
        """
        group = self.create_review_group(invite_only=True)
        self.assertFalse(group.is_accessible_by(self.user))

        rsp = self.api_post(get_review_group_user_list_url(group.name),
                            {'username': self.user.username},
                            expected_status=403)
        self.assertEqual(rsp['stat'], 'fail')

        self.assertEqual(group.users.count(), 0)
コード例 #16
0
    def setup_basic_post_test(self, user, with_local_site, local_site_name,
                              post_valid_data):
        group = self.create_review_group(with_local_site=with_local_site)

        if post_valid_data:
            post_data = {
                'username': '******',
            }
        else:
            post_data = {}

        return (get_review_group_user_list_url(group.name, local_site_name),
                review_group_user_item_mimetype, post_data, [group])
コード例 #17
0
    def test_post_with_self_and_private_group(self):
        """Testing the POST groups/<name>/users/ API
        with the requesting user and private group
        """
        group = self.create_review_group(invite_only=True)
        self.assertFalse(group.is_accessible_by(self.user))

        rsp = self.api_post(
            get_review_group_user_list_url(group.name),
            {'username': self.user.username},
            expected_status=403)
        self.assertEqual(rsp['stat'], 'fail')

        self.assertEqual(group.users.count(), 0)
コード例 #18
0
    def test_post_with_invalid_user(self):
        """Testing the POST groups/<name>/users/ API with invalid user"""
        self._login_user(admin=True)

        group = self.create_review_group()

        rsp = self.api_post(
            get_review_group_user_list_url(group.name),
            {'username': '******'},
            expected_status=400)
        self.assertEqual(rsp['stat'], 'fail')
        self.assertEqual(rsp['err']['code'], INVALID_USER.code)

        self.assertEqual(group.users.count(), 0)
コード例 #19
0
    def test_create_user(self, local_site=None):
        """Testing the POST groups/<name>/users/ API"""
        self._login_user(admin=True, local_site=local_site)

        group = self.create_review_group(
            with_local_site=(local_site is not None))
        user = User.objects.get(pk=1)

        rsp = self.apiPost(get_review_group_user_list_url(
            group.name, local_site), {'username': user.username},
                           expected_mimetype=user_item_mimetype)
        self.assertEqual(rsp['stat'], 'ok')

        self.assertEqual(group.users.count(), 1)
        self.assertEqual(group.users.get().username, user.username)
コード例 #20
0
    def setup_basic_get_test(self, user, with_local_site, local_site_name,
                             populate_items):
        group = self.create_review_group(with_local_site=with_local_site)

        if populate_items:
            items = [
                User.objects.get(username='******'),
                User.objects.get(username='******'),
            ]
            group.users = items
        else:
            items = []

        return (get_review_group_user_list_url(group.name, local_site_name),
                review_group_user_list_mimetype, items)
コード例 #21
0
    def test_post(self, local_site=None):
        """Testing the POST groups/<name>/users/ API"""
        self._login_user(admin=True, local_site=local_site)

        group = self.create_review_group(
            with_local_site=(local_site is not None))
        user = User.objects.get(pk=1)

        rsp = self.apiPost(
            get_review_group_user_list_url(group.name, local_site),
            {'username': user.username},
            expected_mimetype=user_item_mimetype)
        self.assertEqual(rsp['stat'], 'ok')

        self.assertEqual(group.users.count(), 1)
        self.assertEqual(group.users.get().username, user.username)
コード例 #22
0
    def test_post_with_self_and_unjoined_site(self):
        """Testing the POST <URL> API with the requesting user on an unjoined
        local site
        """
        self.assertFalse(self.user.is_superuser)

        group = self.create_review_group(with_local_site=True)

        self.assertEqual(group.users.count(), 0)

        rsp = self.api_post(get_review_group_user_list_url(
            group.name, self.local_site_name),
                            {'username': self.user.username},
                            expected_status=403)
        self.assertEqual(rsp['stat'], 'fail')

        self.assertEqual(group.users.count(), 0)
コード例 #23
0
    def test_post_with_self_and_unjoined_site(self):
        """Testing the POST groups/<name>/users/ API
        with the requesting user on an unjoined local site
        """
        self.assertFalse(self.user.is_superuser)

        group = self.create_review_group(with_local_site=True)

        self.assertEqual(group.users.count(), 0)

        rsp = self.api_post(
            get_review_group_user_list_url(group.name, self.local_site_name),
            {'username': self.user.username},
            expected_status=403)
        self.assertEqual(rsp['stat'], 'fail')

        self.assertEqual(group.users.count(), 0)
コード例 #24
0
    def test_get_multiple_groups(self):
        """Testing GET <URL> API with a user in multiple groups"""
        doc = User.objects.get(username='******')

        groups = [
            self.create_review_group('group1'),
            self.create_review_group('group2'),
        ]

        for group in groups:
            group.users.add(doc)

        rsp = self.api_get(get_review_group_user_list_url(groups[0].name),
                           expected_mimetype=review_group_user_list_mimetype)

        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(rsp['total_results'], 1)
        self.compare_item(rsp['users'][0], doc)
コード例 #25
0
    def test_post_with_self_and_site(self):
        """Testing the POST <URL> API with the requesting user on a local site
        """
        self.assertFalse(self.user.is_superuser)

        local_site = self.get_local_site(name=self.local_site_name)
        local_site.users.add(self.user)

        group = self.create_review_group(with_local_site=True)

        self.assertEqual(group.users.count(), 0)

        rsp = self.api_post(
            get_review_group_user_list_url(group.name, self.local_site_name),
            {'username': self.user.username},
            expected_mimetype=review_group_user_item_mimetype)
        self.assertEqual(rsp['stat'], 'ok')

        self.assertEqual(group.users.count(), 1)
コード例 #26
0
    def test_get_multiple_groups(self):
        """Testing GET <URL> API with a user in multiple groups"""
        doc = User.objects.get(username='******')

        groups = [
            self.create_review_group('group1'),
            self.create_review_group('group2'),
        ]

        for group in groups:
            group.users.add(doc)

        rsp = self.api_get(
            get_review_group_user_list_url(groups[0].name),
            expected_mimetype=review_group_user_list_mimetype)

        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(rsp['total_results'], 1)
        self.compare_item(rsp['users'][0], doc)
コード例 #27
0
    def test_post_with_self_and_site(self):
        """Testing the POST <URL> API with the requesting user on a local site
        """
        self.assertFalse(self.user.is_superuser)

        local_site = self.get_local_site(name=self.local_site_name)
        local_site.users.add(self.user)

        group = self.create_review_group(with_local_site=True)

        self.assertEqual(group.users.count(), 0)

        rsp = self.api_post(get_review_group_user_list_url(
            group.name, self.local_site_name),
                            {'username': self.user.username},
                            expected_mimetype=review_group_user_item_mimetype)
        self.assertEqual(rsp['stat'], 'ok')

        self.assertEqual(group.users.count(), 1)
コード例 #28
0
 def setup_http_not_allowed_item_test(self, user):
     return get_review_group_user_list_url('my-group')
コード例 #29
0
 def setup_http_not_allowed_item_test(self, user):
     return get_review_group_user_list_url('my-group')