def add_project(self, id, title=None): project = self.add_check(PROJECT_TYPE, id, IProject, Project) members = ISiteMembers(self.portal) if self.TEST_MEMBER not in members: members.register(self.TEST_MEMBER, send=False) assert self.TEST_MEMBER in members roster = IWorkspaceRoster(project) roster.add(self.TEST_MEMBER) assert self.TEST_MEMBER in roster return project
def add_project(self, id, title=None): project = self.add_check(PROJECT_TYPE, id, IProject, Project) members = ISiteMembers(self.portal) if self.TEST_MEMBER not in members: members.register(self.TEST_MEMBER, send=False) assert self.TEST_MEMBER in members roster = IWorkspaceRoster(project) roster.add(self.TEST_MEMBER) assert self.TEST_MEMBER in roster return project
def test_unassign_contained_secondary(self): """Unassign from workgroup, removed from secondary contained""" project, roster = self._base_fixtures() team = project['team1'] team_roster = IWorkspaceRoster(team) username = '******' self.site_members.register(username, send=False) roster.add(username) team_roster.add(username) team_roster.groups['managers'].add(username) self.assertIn(username, roster) self.assertIn(username, team_roster) self.assertIn(username, team_roster.groups['managers']) roster.unassign(username) self.assertNotIn(username, roster) self.assertNotIn(username, team_roster) self.assertNotIn(username, team_roster.groups['managers'])
def test_unassign_contained_secondary(self): """Unassign from workgroup, removed from secondary contained""" project, roster = self._base_fixtures() team = project['team1'] team_roster = IWorkspaceRoster(team) username = '******' self.site_members.register(username, send=False) roster.add(username) team_roster.add(username) team_roster.groups['managers'].add(username) self.assertIn(username, roster) self.assertIn(username, team_roster) self.assertIn(username, team_roster.groups['managers']) roster.unassign(username) self.assertNotIn(username, roster) self.assertNotIn(username, team_roster) self.assertNotIn(username, team_roster.groups['managers'])
def test_can_purge(self): """Testing IWorkspaceRoster.can_purge()""" project1, roster1 = self._base_fixtures() project2 = self.portal['project2'] roster2 = IWorkspaceRoster(project2) user_oneproject = '*****@*****.**' user_twoprojects = '*****@*****.**' self.site_members.register(user_oneproject, send=False) self.site_members.register(user_twoprojects, send=False) roster1.add(user_oneproject) roster1.add(user_twoprojects) roster2.add(user_twoprojects) self.assertTrue(roster1.can_purge(user_oneproject)) self.assertFalse(roster1.can_purge(user_twoprojects)) # disallowed self.assertFalse(roster2.can_purge(user_twoprojects)) # here too. self.assertFalse(roster2.can_purge(user_oneproject)) # not in here # cannot purge from a team, even with otherwise purgeable user: self.assertFalse( IWorkspaceRoster(project1['team1']).can_purge(user_oneproject))
def test_can_purge(self): """Testing IWorkspaceRoster.can_purge()""" project1, roster1 = self._base_fixtures() project2 = self.portal['project2'] roster2 = IWorkspaceRoster(project2) user_oneproject = '*****@*****.**' user_twoprojects = '*****@*****.**' self.site_members.register(user_oneproject, send=False) self.site_members.register(user_twoprojects, send=False) roster1.add(user_oneproject) roster1.add(user_twoprojects) roster2.add(user_twoprojects) self.assertTrue(roster1.can_purge(user_oneproject)) self.assertFalse(roster1.can_purge(user_twoprojects)) # disallowed self.assertFalse(roster2.can_purge(user_twoprojects)) # here too. self.assertFalse(roster2.can_purge(user_oneproject)) # not in here # cannot purge from a team, even with otherwise purgeable user: self.assertFalse( IWorkspaceRoster(project1['team1']).can_purge(user_oneproject) )
def test_purge_exceptions(self): """Test for expected failure on disallowed purge of user""" project1, roster1 = self._base_fixtures() project2 = self.portal['project2'] roster2 = IWorkspaceRoster(project2) username = '******' self.site_members.register(username, send=False) roster1.add(username) roster2.add(username) # user cannot be purged because of membership elsewhere: self.assertRaises( RuntimeError, roster2.purge_user, username, ) # user not in roster self.assertRaises( RuntimeError, roster2.purge_user, '*****@*****.**', )
def test_purge_exceptions(self): """Test for expected failure on disallowed purge of user""" project1, roster1 = self._base_fixtures() project2 = self.portal['project2'] roster2 = IWorkspaceRoster(project2) username = '******' self.site_members.register(username, send=False) roster1.add(username) roster2.add(username) # user cannot be purged because of membership elsewhere: self.assertRaises( RuntimeError, roster2.purge_user, username, ) # user not in roster self.assertRaises( RuntimeError, roster2.purge_user, '*****@*****.**', )
def test_assign_unassign_recursive(self): """Unassigning user from project removes from contained workspaces""" workspace, roster = self._base_fixtures() username = '******' self.site_members.register(username, send=False) project, project_roster = self._base_fixtures() team = project['team1'] team_roster = IWorkspaceRoster(team) subteam = team['subteam'] subteam_roster = IWorkspaceRoster(subteam) self.assertNotIn(username, project_roster) self.assertNotIn(username, team_roster) self.assertNotIn(username, subteam_roster) # add recursively adds to parent workspaces, walking upward: subteam_roster.add(username) self.assertIn(username, subteam_roster) self.assertIn(username, team_roster) self.assertIn(username, project_roster) # remove recursively removes from contained workspaces: project_roster.unassign(username) self.assertNotIn(username, project_roster) self.assertNotIn(username, team_roster) self.assertNotIn(username, subteam_roster)
def test_assign_unassign_recursive(self): """Unassigning user from project removes from contained workspaces""" workspace, roster = self._base_fixtures() username = '******' self.site_members.register(username, send=False) project, project_roster = self._base_fixtures() team = project['team1'] team_roster = IWorkspaceRoster(team) subteam = team['subteam'] subteam_roster = IWorkspaceRoster(subteam) self.assertNotIn(username, project_roster) self.assertNotIn(username, team_roster) self.assertNotIn(username, subteam_roster) # add recursively adds to parent workspaces, walking upward: subteam_roster.add(username) self.assertIn(username, subteam_roster) self.assertIn(username, team_roster) self.assertIn(username, project_roster) # remove recursively removes from contained workspaces: project_roster.unassign(username) self.assertNotIn(username, project_roster) self.assertNotIn(username, team_roster) self.assertNotIn(username, subteam_roster)