def test_can_search_by_group_name(self): with session.begin(): group = data_setup.create_group() other_group = data_setup.create_group( group_name=data_setup.unique_name(u'aardvark%s')) b = self.browser b.get(get_server_base() + 'groups/') b.find_element_by_class_name('search-query').send_keys( 'group_name:"%s"' % group.group_name) b.find_element_by_class_name('grid-filter').submit() check_group_search_results(b, present=[group], absent=[other_group])
def test_can_search_normal_groups_by_member_username(self): with session.begin(): group = data_setup.create_group( group_name=data_setup.unique_name(u'aardvark%s')) member = data_setup.create_user() group.add_member(member) other_group = data_setup.create_group( group_name=data_setup.unique_name(u'aardvark%s')) b = self.browser b.get(get_server_base() + 'groups/') b.find_element_by_class_name('search-query').send_keys( 'member.user_name:%s' % member.user_name) b.find_element_by_class_name('grid-filter').submit() check_group_search_results(b, present=[group], absent=[other_group])
def test_can_search_inverted_groups_by_member_username(self): with session.begin(): member = data_setup.create_user() group = data_setup.create_group( group_name=data_setup.unique_name(u'aardvark%s')) inverted_group = data_setup.create_group( group_name=data_setup.unique_name(u'aardvark%s'), membership_type=GroupMembershipType.inverted) b = self.browser b.get(get_server_base() + 'groups/') b.find_element_by_class_name('search-query').send_keys( 'member.user_name:%s' % member.user_name) b.find_element_by_class_name('grid-filter').submit() check_group_search_results(b, present=[inverted_group], absent=[group])
def test_can_search_by_owner_username(self): with session.begin(): group = data_setup.create_group() owner = data_setup.create_user() group.add_member(owner, is_owner=True) # User is a member but *not* an owner of the other group. This is # to prove we really are filtering by ownership, not just # membership. other_group = data_setup.create_group( group_name=data_setup.unique_name(u'aardvark%s')) other_group.add_member(owner, is_owner=False) b = self.browser b.get(get_server_base() + 'groups/') b.find_element_by_class_name('search-query').send_keys( 'owner.user_name:%s' % owner.user_name) b.find_element_by_class_name('grid-filter').submit() check_group_search_results(b, present=[group], absent=[other_group])
def test_remove_self_admin_group(self): with session.begin(): user = data_setup.create_admin(password='******') b = self.browser login(b, user=user.user_name, password='******') # admin should be in groups/mine b.get(get_server_base() + 'groups/mine') b.find_element_by_link_text('admin').click() # remove self b.find_element_by_xpath('//td[preceding-sibling::td[2]/text()="%s"]' % user.user_name)\ .find_element_by_link_text('Remove').click() self.assertEquals( b.find_element_by_class_name('flash').text, '%s Removed' % user.user_name) # admin should not be in groups/mine b.get(get_server_base() + 'groups/mine') check_group_search_results(b, absent=[Group.by_name(u'admin')]) logout(b) # login as admin login(b) group = Group.by_name('admin') group_users = group.users # remove all other users from 'admin' b.get(get_server_base() + 'groups/edit?group_id=1') for usr in group_users: if usr.user_id != 1: b.find_element_by_xpath('//td[preceding-sibling::td[2]/text()="%s"]' % usr.user_name)\ .find_element_by_link_text('Remove').click() self.assertEquals( b.find_element_by_class_name('flash').text, '%s Removed' % usr.user_name) # attempt to remove admin user b.find_element_by_xpath( '//a[@href="removeUser?group_id=1&id=1"]').click() self.assert_('Cannot remove member' in b.find_element_by_class_name( 'flash').text)
def test_remove_self_admin_group(self): with session.begin(): user = data_setup.create_admin(password='******') b = self.browser login(b, user=user.user_name, password='******') # admin should be in groups/mine b.get(get_server_base() + 'groups/mine') b.find_element_by_link_text('admin').click() # remove self b.find_element_by_xpath('//td[preceding-sibling::td[2]/text()="%s"]' % user.user_name)\ .find_element_by_link_text('Remove').click() self.assertEquals( b.find_element_by_class_name('flash').text, '%s Removed' % user.user_name) # admin should not be in groups/mine b.get(get_server_base() + 'groups/mine') check_group_search_results(b, absent=[Group.by_name(u'admin')]) logout(b) # login as admin login(b) group = Group.by_name('admin') group_users = group.users # remove all other users from 'admin' b.get(get_server_base() + 'groups/edit?group_id=1') for usr in group_users: if usr.user_id != 1: b.find_element_by_xpath('//td[preceding-sibling::td[2]/text()="%s"]' % usr.user_name)\ .find_element_by_link_text('Remove').click() self.assertEquals( b.find_element_by_class_name('flash').text, '%s Removed' % usr.user_name) # attempt to remove admin user b.find_element_by_xpath('//a[@href="removeUser?group_id=1&id=1"]').click() self.assert_('Cannot remove member' in b.find_element_by_class_name('flash').text)