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)
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)
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
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
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)
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')
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')
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)
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)
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)
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)
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')
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, [])
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)
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)
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)
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)
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)