class TestBasicManagement(unittest.TestCase): """Tests the basic contribution management functions """ def setUp( self ): a = Avatar() a.setId("creator") self._conf = Conference( a ) self._conf.setDates(datetime(2000,1,1,tzinfo=timezone('UTC')),datetime(2020,1,1,tzinfo=timezone('UTC'))) def testDates(self): session1=Session() #self._conf.setStartDate(datetime(2004,1,1,8,0,tzinfo=timezone('UTC'))) #self._conf.setEndDate(datetime(2005,1,1,8,0,tzinfo=timezone('UTC'))) session1.setStartDate(datetime(2004,2,15,tzinfo=timezone('UTC'))) self.assertRaises(MaKaCError,session1.setEndDate,datetime(2004,2,14,tzinfo=timezone('UTC'))) session1.setEndDate(datetime(2004,2,16,tzinfo=timezone('UTC'))) self.assert_(session1.getStartDate()==datetime(2004,2,15,tzinfo=timezone('UTC'))) self.assert_(session1.getEndDate()==datetime(2004,2,16,tzinfo=timezone('UTC'))) session1.setDates(datetime(2004,2,10,tzinfo=timezone('UTC')),datetime(2004,2,11,tzinfo=timezone('UTC'))) self.assert_(session1.getStartDate()==datetime(2004,2,10,tzinfo=timezone('UTC'))) self.assert_(session1.getEndDate()==datetime(2004,2,11,tzinfo=timezone('UTC'))) session1.setDates(datetime(2004,2,15,tzinfo=timezone('UTC')),datetime(2004,2,16,tzinfo=timezone('UTC'))) self.assert_(session1.getStartDate()==datetime(2004,2,15,tzinfo=timezone('UTC'))) self.assert_(session1.getEndDate()==datetime(2004,2,16,tzinfo=timezone('UTC'))) session1.setDates(datetime(2004,2,14,tzinfo=timezone('UTC')),datetime(2004,2,17,tzinfo=timezone('UTC'))) self.assert_(session1.getStartDate()==datetime(2004,2,14,tzinfo=timezone('UTC'))) self.assert_(session1.getEndDate()==datetime(2004,2,17,tzinfo=timezone('UTC'))) def testBasicAddAndRemove( self ): session1,session2=Session(),Session() self._conf.addSession(session1) self.assert_(self._conf.getSessionById(session1.getId())==session1) self.assert_(session1 in self._conf.getSessionList()) session1.delete() self.assert_(session1 not in self._conf.getSessionList()) self.assert_(self._conf.getSessionById(session1.getId())==None) def testDateModification(self): self._conf.setDates(datetime(2004,1,1,tzinfo=timezone('UTC')),datetime(2004,1,5,tzinfo=timezone('UTC'))) ##checks that a session cannot be added if its dates are outside the ## schedule boundaries #s1=Session() #s1.setDates(datetime(2003,12,31,tzinfo=timezone('UTC')),datetime(2004,1,31,tzinfo=timezone('UTC'))) #self.assertRaises(MaKaCError,self._conf.addSession,s1) #s1.setDates(datetime(2004,1,1,11,0,tzinfo=timezone('UTC')),datetime(2004,1,31,tzinfo=timezone('UTC'))) #self.assertRaises(MaKaCError,self._conf.addSession,s1) #s1.setDates(datetime(2004,1,1,11,0,tzinfo=timezone('UTC')),datetime(2004,1,4,tzinfo=timezone('UTC'))) #self._conf.addSession(s1) #self._conf.removeSession(s1) #self._conf.getSchedule().setDates(datetime(2004,1,2,tzinfo=timezone('UTC')),datetime(2004,1,7,tzinfo=timezone('UTC'))) #s1=Session() #s1.setDates(datetime(2003,12,31,tzinfo=timezone('UTC')),datetime(2004,1,31,tzinfo=timezone('UTC'))) #self.assertRaises(MaKaCError,self._conf.addSession,s1) #s1.setDates(datetime(2004,1,1,11,0,tzinfo=timezone('UTC')),datetime(2004,1,31,tzinfo=timezone('UTC'))) #self.assertRaises(MaKaCError,self._conf.addSession,s1) #s1.setDates(datetime(2004,1,1,11,0,tzinfo=timezone('UTC')),datetime(2004,1,4,tzinfo=timezone('UTC'))) #self.assertRaises(MaKaCError,self._conf.addSession,s1) #s1.setDates(datetime(2004,1,2,11,0,tzinfo=timezone('UTC')),datetime(2004,1,6,tzinfo=timezone('UTC'))) #self._conf.addSession(s1) ##checks that when modifying the session dates to ones which are outside ## the conference schedule scope is not allowed #s1.setDates(datetime(2004,1,3,tzinfo=timezone('UTC')),datetime(2004,1,5,tzinfo=timezone('UTC'))) #self.assertRaises(MaKaCError,s1.setDates,datetime(2004,1,3,tzinfo=timezone('UTC')),datetime(2004,1,8,tzinfo=timezone('UTC'))) #self.assertRaises(MaKaCError,s1.setDates,datetime(2005,1,1,11,0,tzinfo=timezone('UTC')),datetime(2004,1,6,tzinfo=timezone('UTC'))) #self.assertRaises(MaKaCError,s1.setDates,datetime(2005,1,1,11,0,tzinfo=timezone('UTC')),datetime(2004,1,8,tzinfo=timezone('UTC'))) def testContributionInclusion(self): session1,session2=Session(),Session() self._conf.addSession(session1) self._conf.addSession(session2) contrib1=Contribution() session1.addContribution(contrib1) self.assert_(self._conf.hasContribution(contrib1)) self.assert_(session1.hasContribution(contrib1)) self.assert_(not session2.hasContribution(contrib1)) session1.removeContribution(contrib1) session2.addContribution(contrib1) self.assert_(self._conf.hasContribution(contrib1)) self.assert_(not session1.hasContribution(contrib1)) self.assert_(session2.hasContribution(contrib1)) session2.removeContribution(contrib1) self.assert_(self._conf.hasContribution(contrib1)) self.assert_(not session1.hasContribution(contrib1)) self.assert_(not session2.hasContribution(contrib1)) def testCoordination(self): session1,session2,session3=Session(),Session(),Session() self._conf.addSession(session1) self._conf.addSession(session2) c1,c2=Avatar(),Avatar() c1.setId("1") c2.setId("2") session1.addCoordinator(c1) self.assert_(c1 in session1.getCoordinatorList()) self.assert_(len(session1.getCoordinatorList())==1) self.assert_(session1.isCoordinator(c1)) self.assert_(not session1.isCoordinator(c2)) self.assert_(not session1.isCoordinator(None)) self.assert_(session1 in self._conf.getCoordinatedSessions(c1)) self.assert_(len(self._conf.getCoordinatedSessions(c1))==1) self.assert_(len(self._conf.getCoordinatedSessions(c2))==0) self._conf.addSessionCoordinator(session1,c1) self.assert_(c1 in session1.getCoordinatorList()) self.assert_(len(session1.getCoordinatorList())==1) self.assert_(session1.isCoordinator(c1)) self.assert_(not session1.isCoordinator(c2)) self.assert_(not session1.isCoordinator(None)) self.assert_(session1 in self._conf.getCoordinatedSessions(c1)) self.assert_(len(self._conf.getCoordinatedSessions(c1))==1) self.assert_(len(self._conf.getCoordinatedSessions(c2))==0) self._conf.addSessionCoordinator(session2,c2) self.assert_(c2 in session2.getCoordinatorList()) self.assert_(not session1.isCoordinator(c2)) self.assert_(session2 in self._conf.getCoordinatedSessions(c2)) self.assert_(len(self._conf.getCoordinatedSessions(c1))==1) self.assert_(len(self._conf.getCoordinatedSessions(c2))==1) self._conf.addSession(session3) session3.addCoordinator(c2) self.assert_(c2 in session3.getCoordinatorList()) self.assert_(not session1.isCoordinator(c2)) self.assert_(session3 in self._conf.getCoordinatedSessions(c2)) self.assert_(session2 in self._conf.getCoordinatedSessions(c2)) self.assert_(len(self._conf.getCoordinatedSessions(c1))==1) self.assert_(len(self._conf.getCoordinatedSessions(c2))==2) self._conf.removeSession(session1) self.assert_(session1 not in self._conf.getCoordinatedSessions(c1)) self.assert_(len(self._conf.getCoordinatedSessions(c1))==0) self.assert_(len(self._conf.getCoordinatedSessions(c2))==2) session2.removeCoordinator(c2) self.assert_(c2 not in session2.getCoordinatorList()) self.assert_(c2 in session3.getCoordinatorList()) self.assert_(session3 in self._conf.getCoordinatedSessions(c2)) self.assert_(session2 not in self._conf.getCoordinatedSessions(c2)) self.assert_(len(self._conf.getCoordinatedSessions(c1))==0) self.assert_(len(self._conf.getCoordinatedSessions(c2))==1)