示例#1
0
    def test_post_group(self, local_site=None):
        """Testing the POST groups/ API"""
        name = 'my-group'
        display_name = 'My Group'
        mailing_list = '*****@*****.**'
        visible = False
        invite_only = True

        self._login_user(admin=True)

        rsp = self.apiPost(get_review_group_list_url(local_site), {
            'name': name,
            'display_name': display_name,
            'mailing_list': mailing_list,
            'visible': visible,
            'invite_only': invite_only,
        },
                           expected_mimetype=review_group_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        group = Group.objects.get(pk=rsp['group']['id'])
        self.assertEqual(group.local_site, local_site)
        self.assertEqual(group.name, name)
        self.assertEqual(group.display_name, display_name)
        self.assertEqual(group.mailing_list, mailing_list)
        self.assertEqual(group.visible, visible)
        self.assertEqual(group.invite_only, invite_only)
示例#2
0
    def setup_basic_get_test(self, user, with_local_site, local_site_name,
                             populate_items):
        if populate_items:
            if with_local_site:
                local_site = LocalSite.objects.get(name=local_site_name)

                items = [
                    self.create_review_group(name='group1',
                                             local_site=local_site),
                ]
                self.create_review_group(name='group2')
            else:
                local_site = LocalSite.objects.get_or_create(
                    name=self.local_site_name
                )[0]

                items = [
                    self.create_review_group(name='group1'),
                ]
                self.create_review_group(name='group2',
                                         local_site=local_site)
        else:
            items = []

        return (get_review_group_list_url(local_site_name),
                review_group_list_mimetype,
                items)
    def test_post(self, local_site=None):
        """Testing the POST groups/ API"""
        name = 'my-group'
        display_name = 'My Group'
        mailing_list = '*****@*****.**'
        visible = False
        invite_only = True

        self._login_user(admin=True)

        rsp = self.apiPost(
            get_review_group_list_url(local_site),
            {
                'name': name,
                'display_name': display_name,
                'mailing_list': mailing_list,
                'visible': visible,
                'invite_only': invite_only,
            },
            expected_mimetype=review_group_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        group = Group.objects.get(pk=rsp['group']['id'])
        self.assertEqual(group.local_site, local_site)
        self.assertEqual(group.name, name)
        self.assertEqual(group.display_name, display_name)
        self.assertEqual(group.mailing_list, mailing_list)
        self.assertEqual(group.visible, visible)
        self.assertEqual(group.invite_only, invite_only)
示例#4
0
    def test_get_with_q(self):
        """Testing the GET groups/?q= API"""
        self.create_review_group(name='docgroup')
        self.create_review_group(name='devgroup')

        rsp = self.apiGet(get_review_group_list_url(), {'q': 'dev'},
                          expected_mimetype=review_group_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['groups']), 1)  # devgroup
示例#5
0
    def test_get_with_q(self):
        """Testing the GET groups/?q= API"""
        self.create_review_group(name='docgroup')
        self.create_review_group(name='devgroup')

        rsp = self.api_get(get_review_group_list_url(), {'q': 'dev'},
                           expected_mimetype=review_group_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['groups']), 1)  # devgroup
示例#6
0
    def test_post_group_with_no_access(self, local_site=None):
        """Testing the POST groups/ API with no access"""
        rsp = self.apiPost(get_review_group_list_url(local_site), {
            'name': 'mygroup',
            'display_name': 'My Group',
            'mailing_list': '*****@*****.**',
        },
                           expected_status=403)

        self.assertEqual(rsp['stat'], 'fail')
    def test_get(self):
        """Testing the GET groups/ API"""
        self.create_review_group(name='group1')
        self.create_review_group(name='group2', with_local_site=True)

        rsp = self.apiGet(get_review_group_list_url(),
                          expected_mimetype=review_group_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['groups']),
                         Group.objects.accessible(self.user).count())
        self.assertEqual(len(rsp['groups']), 1)
示例#8
0
    def test_get_groups(self):
        """Testing the GET groups/ API"""
        self.create_review_group(name='group1')
        self.create_review_group(name='group2', with_local_site=True)

        rsp = self.apiGet(get_review_group_list_url(),
                          expected_mimetype=review_group_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['groups']),
                         Group.objects.accessible(self.user).count())
        self.assertEqual(len(rsp['groups']), 1)
    def test_post_with_no_access(self, local_site=None):
        """Testing the POST groups/ API with no access"""
        rsp = self.apiPost(
            get_review_group_list_url(local_site),
            {
                'name': 'mygroup',
                'display_name': 'My Group',
                'mailing_list': '*****@*****.**',
            },
            expected_status=403)

        self.assertEqual(rsp['stat'], 'fail')
示例#10
0
    def test_post_with_site_admin(self):
        """Testing the POST groups/ API with a local site admin"""
        self._login_user(local_site=True, admin=True)
        local_site = LocalSite.objects.get(name=self.local_site_name)

        rsp = self.apiPost(get_review_group_list_url(local_site), {
            'name': 'mygroup',
            'display_name': 'My Group',
            'mailing_list': '*****@*****.**',
        },
                           expected_mimetype=review_group_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')
示例#11
0
    def test_post_with_conflict(self):
        """Testing the POST groups/ API with Group Already Exists error"""
        self._login_user(admin=True)
        group = self.create_review_group()

        rsp = self.apiPost(get_review_group_list_url(), {
            'name': group.name,
            'display_name': 'My Group',
        },
                           expected_status=409)

        self.assertEqual(rsp['stat'], 'fail')
        self.assertEqual(rsp['err']['code'], GROUP_ALREADY_EXISTS.code)
示例#12
0
    def test_get_with_site(self):
        """Testing the GET groups/ API with a local site"""
        self._login_user(local_site=True)
        local_site = LocalSite.objects.get(name=self.local_site_name)
        self.create_review_group(name='group1', with_local_site=True)
        self.create_review_group(name='group2')

        groups = Group.objects.accessible(self.user, local_site=local_site)

        rsp = self.apiGet(get_review_group_list_url(self.local_site_name),
                          expected_mimetype=review_group_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['groups']), groups.count())
        self.assertEqual(len(rsp['groups']), 1)
示例#13
0
    def test_get_groups_with_site(self):
        """Testing the GET groups/ API with a local site"""
        self._login_user(local_site=True)
        local_site = LocalSite.objects.get(name=self.local_site_name)
        self.create_review_group(name='group1', with_local_site=True)
        self.create_review_group(name='group2')

        groups = Group.objects.accessible(self.user, local_site=local_site)

        rsp = self.apiGet(get_review_group_list_url(self.local_site_name),
                          expected_mimetype=review_group_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['groups']), groups.count())
        self.assertEqual(len(rsp['groups']), 1)
示例#14
0
    def test_post_with_conflict(self):
        """Testing the POST groups/ API with Group Already Exists error"""
        self._login_user(admin=True)
        group = self.create_review_group()

        rsp = self.api_post(
            get_review_group_list_url(),
            {
                'name': group.name,
                'display_name': 'My Group',
            },
            expected_status=409)

        self.assertEqual(rsp['stat'], 'fail')
        self.assertEqual(rsp['err']['code'], GROUP_ALREADY_EXISTS.code)
示例#15
0
    def test_post_with_site_admin(self):
        """Testing the POST groups/ API with a local site admin"""
        self._login_user(local_site=True, admin=True)
        local_site = LocalSite.objects.get(name=self.local_site_name)

        rsp = self.api_post(
            get_review_group_list_url(local_site),
            {
                'name': 'mygroup',
                'display_name': 'My Group',
                'mailing_list': '*****@*****.**',
            },
            expected_mimetype=review_group_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')
示例#16
0
    def setup_basic_post_test(self, user, with_local_site, local_site_name,
                              post_valid_data):
        if post_valid_data:
            post_data = {
                'name': 'my-group',
                'display_name': 'My Group',
                'mailing_list': '*****@*****.**',
                'visible': False,
                'invite_only': True,
            }
        else:
            post_data = {}

        return (get_review_group_list_url(local_site_name),
                review_group_item_mimetype, post_data, [])
示例#17
0
    def setup_basic_post_test(self, user, with_local_site, local_site_name,
                              post_valid_data):
        if post_valid_data:
            post_data = {
                'name': 'my-group',
                'display_name': 'My Group',
                'mailing_list': '*****@*****.**',
                'visible': False,
                'invite_only': True,
            }
        else:
            post_data = {}

        return (get_review_group_list_url(local_site_name),
                review_group_item_mimetype,
                post_data,
                [])
示例#18
0
    def setup_basic_get_test(self, user, with_local_site, local_site_name,
                             populate_items):
        if populate_items:
            if not with_local_site:
                LocalSite.objects.create(name=self.local_site_name)

            items = [
                self.create_review_group(name='group1',
                                         with_local_site=with_local_site)
            ]
            self.create_review_group(name='group2',
                                     with_local_site=not with_local_site)
        else:
            items = []

        return (get_review_group_list_url(local_site_name),
                review_group_list_mimetype,
                items)
示例#19
0
    def test_post_with_defaults(self):
        """Testing the POST groups/ API with field defaults"""
        name = 'my-group'
        display_name = 'My Group'

        self._login_user(admin=True)

        rsp = self.apiPost(get_review_group_list_url(), {
            'name': name,
            'display_name': display_name,
        },
                           expected_mimetype=review_group_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        group = Group.objects.get(pk=rsp['group']['id'])
        self.assertEqual(group.mailing_list, '')
        self.assertEqual(group.visible, True)
        self.assertEqual(group.invite_only, False)
示例#20
0
    def test_post_with_defaults(self):
        """Testing the POST groups/ API with field defaults"""
        name = 'my-group'
        display_name = 'My Group'

        self._login_user(admin=True)

        rsp = self.api_post(
            get_review_group_list_url(),
            {
                'name': name,
                'display_name': display_name,
            },
            expected_mimetype=review_group_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        group = Group.objects.get(pk=rsp['group']['id'])
        self.assertEqual(group.mailing_list, '')
        self.assertEqual(group.visible, True)
        self.assertEqual(group.invite_only, False)
示例#21
0
 def test_get_with_site_no_access(self):
     """Testing the GET groups/ API
     with a local site and Permission Denied error
     """
     self.apiGet(get_review_group_list_url(self.local_site_name),
                 expected_status=403)
示例#22
0
 def test_get_groups_with_site_no_access(self):
     """Testing the GET groups/ API with a local site and Permission Denied error"""
     self.apiGet(get_review_group_list_url(self.local_site_name),
                 expected_status=403)