Example #1
0
 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'])
Example #4
0
 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))
Example #6
0
 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,
         '*****@*****.**',
     )
Example #8
0
 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)
Example #10
0
 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)