Changeset e5c6e0 in indico


Ignore:
Timestamp:
09/30/09 15:52:38 (4 years ago)
Author:
Pedro Ferreira <jose.pedro.ferreira@…>
Branches:
master, burotel, hello-world-walkthrough, ipv6, new-webex, prov-dual-interface, v0.97-series, v0.98-series, v0.98.2, v0.98.3, v0.98b1, v0.98b2, v0.99, 051b2622c51afb171a1dedb46a0df4fbb0cbd02e, d9941f8582b36b24821a11ea5ba16fda6a457fb1
Children:
df9ebc
Parents:
570909
git-author:
Pedro Ferreira <jose.pedro.ferreira@…> (09/23/09 14:23:53)
git-committer:
Pedro Ferreira <jose.pedro.ferreira@…> (09/30/09 15:52:38)
Message:

[FIXED] Couple of timetable issues

To make new tests pass.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • indico/MaKaC/schedule.py

    r570909 re5c6e0  
    146146            entry.getSchedule().removeEntry(entry) 
    147147 
     148        owner = self.getOwner() 
     149 
    148150        # If user has entered start date use these dates 
    149151        # if the entry has not a pre-defined start date we try to find a place 
     
    153155            if sDate is None: 
    154156                if check==2: 
    155                     owner = self.getOwner() 
    156157                    newEndDate = self.getEndDate() + entry.getDuration() 
    157158 
     
    160161                                    owner, 
    161162                                    newEndDate.astimezone(timezone(owner.getConference().getTimezone())), 
    162                                     self.getAdjustedEndDate() 
     163                                    owner.getAdjustedEndDate() 
    163164                                    )) 
    164165 
     
    175176                    raise TimingError( _("Cannot schedule this entry because its start date (%s) is before its parents (%s)")%(entry.getStartDate(),self.getStartDate('UTC')),_("Add Entry")) 
    176177                elif check == 2: 
    177                     autoOps += self.getOwner().setStartDate(entry.getStartDate(),check) 
     178                    autoOps.append((owner, 
     179                                    "OWNER_START_DATE_EXTENDED", 
     180                                    owner, 
     181                                    entry.getAdjustedStartDate(), 
     182                                    owner.getAdjustedStartDate() 
     183                                    )) 
     184                    autoOps += owner.setStartDate(entry.getStartDate(),check) 
    178185            elif entry.getEndDate()>self.getEndDate('UTC'): 
    179186                if check==1: 
    180187                    raise TimingError( _("Cannot schedule this entry because its end date (%s) is after its parents (%s)")%(entry.getEndDate(),self.getEndDate('UTC')),_("Add Entry")) 
    181188                elif check == 2: 
    182                     autoOps += self.getOwner().setEndDate(entry.getEndDate(),check) 
     189                    autoOps.append((owner, 
     190                                    "OWNER_END_DATE_EXTENDED", 
     191                                    owner, 
     192                                    entry.getAdjustedEndDate(), 
     193                                    owner.getAdjustedEndDate() 
     194                                    )) 
     195                    autoOps += owner.setEndDate(entry.getEndDate(),check) 
    183196        #we make sure the entry end date does not go outside the schedule 
    184197        #   boundaries 
     
    729742 
    730743        autoOps = [] 
     744        owner = self.getOwner() 
    731745 
    732746        if (entry is None) or self.hasEntry(entry): 
     
    745759                      _("Slot")) 
    746760            elif check == 2: 
     761                autoOps.append((owner, 
     762                                "OWNER_START_DATE_EXTENDED", 
     763                                owner, 
     764                                entry.getAdjustedStartDate(), 
     765                                owner.getAdjustedStartDate() 
     766                                )) 
    747767                autoOps += self.getOwner().setStartDate(entry.getStartDate(),check,0) 
    748768        if entry.getEndDate()!=None and entry.getEndDate() > self.getOwner().getEndDate(): 
     
    753773                     "Slot") 
    754774            elif check == 2: 
     775                autoOps.append((owner, 
     776                                "OWNER_END_DATE_EXTENDED", 
     777                                owner, 
     778                                entry.getAdjustedEndDate(), 
     779                                owner.getAdjustedEndDate() 
     780                                )) 
    755781                autoOps += self.getOwner().setEndDate(entry.getEndDate(),check) 
    756782        self._setEntryDuration(entry) 
  • tests/testSchedule.py

    r570909 re5c6e0  
    301301        self._slot2_eDate = datetime(2009, 9, 21, 19, 0, 0, tzinfo=timezone("UTC")) 
    302302 
     303        self._slot2_laterDate = datetime(2009, 9, 21, 20, 0, 0, tzinfo=timezone("UTC")) 
     304 
    303305        self._session1 = Session() 
    304306        self._session1.setValues({ 
     
    326328        session.addContribution(contrib) 
    327329 
    328         contrib.setDuration(duration,0) 
    329         contrib.setStartDate(sDate) 
    330  
    331         return contrib 
     330        autoOps = contrib.setDuration(duration,0) 
     331        autoOps += contrib.setStartDate(sDate) 
     332 
     333        return contrib, autoOps 
    332334 
    333335    def _expandNewTest(self, sDate, duration, expSDate, expEDate): 
     
    336338        schedule = ConferenceSchedule(self._conf) 
    337339 
    338         contrib = self._addContribToSession(self._session1, sDate, duration) 
     340        contrib, autoOps = self._addContribToSession(self._session1, sDate, duration) 
    339341 
    340342        # scheduling 
    341         autoOps = self._slot2.getSchedule().addEntry(contrib.getSchEntry()) 
     343        autoOps += self._slot2.getSchedule().addEntry(contrib.getSchEntry()) 
    342344 
    343345        self.assert_(self._slot2.getAdjustedStartDate() == expSDate) 
     
    351353        schedule = ConferenceSchedule(self._conf) 
    352354 
    353         contrib = self._addContribToSession(self._session1, sDate, sDuration) 
     355        contrib, autoOps = self._addContribToSession(self._session1, sDate, sDuration) 
    354356 
    355357        # scheduling 
     
    367369    def testNewContentExpandsSlotDown(self): 
    368370        """ A slot grows down due to new overflowing content """ 
    369         return self._expandNewTest(datetime(2009, 9, 21, 18, 0, 0, tzinfo=timezone("UTC")), 
     371        return self._expandNewTest(self._slot2_sDate, 
    370372                                   2, 
    371373                                   self._slot2_sDate, 
    372                                    datetime(2009, 9, 21, 20, 0, 0, tzinfo=timezone("UTC"))) 
     374                                   self._slot2_laterDate) 
    373375 
    374376    def testNotifyNewContentExpandsSlotDown(self): 
    375377        """ When a slot grows down (new content), proper notification is triggered  """ 
    376378 
    377         self.assert_(self.testNewContentExpandsSlotDown() == []) 
     379        ops = self.testNewContentExpandsSlotDown() 
     380 
     381        self.assert_(len(ops) == 2) 
     382 
     383        op1 = ops[0] 
     384        op2 = ops[1] 
     385 
     386        self.assert_(type(op1[0]) == SessionSlot) 
     387        self.assert_(op1[1] == 'OWNER_END_DATE_EXTENDED') 
     388        self.assert_(type(op1[2]) == SessionSlot) 
     389        self.assert_(op1[3] == self._slot2_laterDate) 
     390        self.assert_(op1[4] == self._slot2_eDate) 
     391 
     392        self.assert_(type(op2[0]) == SessionSlot) 
     393        self.assert_(op2[1] == 'OWNER_END_DATE_EXTENDED') 
     394        self.assert_(type(op2[2]) == Session) 
     395        self.assert_(op2[3] == self._slot2_laterDate) 
     396        self.assert_(op2[4] == self._slot2_eDate) 
    378397 
    379398    def testNewContentExpandsSlotUp(self): 
    380399        """ A slot grows up due to new "underflowing" content """ 
    381         self._expandNewTest(datetime(2009, 9, 21, 17, 0, 0, tzinfo=timezone("UTC")), 
    382                          2, 
    383                          datetime(2009, 9, 21, 17, 0, 0, tzinfo=timezone("UTC")), 
    384                          self._slot2_eDate) 
     400        return self._expandNewTest(self._slot1_sDate, 
     401                                   2, 
     402                                   self._slot1_sDate, 
     403                                   self._slot2_eDate) 
     404 
     405    def testNotifyNewContentExpandsSlotUp(self): 
     406        """ When a slot grows up (new content), proper notification is triggered  """ 
     407 
     408#        import rpdb2; rpdb2.start_embedded_debugger_interactive_password() 
     409 
     410        ops = self.testNewContentExpandsSlotUp() 
     411 
     412        self.assert_(len(ops) == 2) 
     413 
     414        op1 = ops[0] 
     415        op2 = ops[1] 
     416 
     417        self.assert_(type(op1[0]) == SessionSlot) 
     418        self.assert_(op1[1] == 'OWNER_START_DATE_EXTENDED') 
     419        self.assert_(type(op1[2]) == SessionSlot) 
     420        self.assert_(op1[3] == self._slot1_sDate) 
     421        self.assert_(op1[4] == self._slot2_sDate) 
     422 
     423        # in an ideal world, this one should not be shown 
     424        self.assert_(type(op2[0]) == SessionSlot) 
     425        self.assert_(op2[1] == 'OWNER_END_DATE_EXTENDED') 
     426        self.assert_(type(op2[2]) == SessionSlot) 
     427        self.assert_(op2[3] == self._slot2_eDate) 
     428        self.assert_(op2[4] == self._slot2_sDate) 
    385429 
    386430    def testNewContentExpandsSlotBoth(self): 
    387431        """ A slot grows up due to new content that both "underflows" and overflows """ 
    388432        self._expandNewTest(datetime(2009, 9, 21, 17, 0, 0, tzinfo=timezone("UTC")), 
    389                          3, 
    390                          datetime(2009, 9, 21, 17, 0, 0, tzinfo=timezone("UTC")), 
    391                          datetime(2009, 9, 21, 20, 0, 0, tzinfo=timezone("UTC"))) 
     433                            3, 
     434                            self._slot1_sDate, 
     435                            self._slot2_laterDate) 
    392436 
    393437    def testNewCrossingDoesNotCorruptSessionTime(self): 
     
    399443        earlyDate = datetime(2009, 9, 21, 16, 0, 0, tzinfo=timezone("UTC")) 
    400444 
    401         contrib = self._addContribToSession(self._session1, earlyDate, 1) 
     445        contrib, autoOps = self._addContribToSession(self._session1, earlyDate, 1) 
    402446 
    403447        # scheduling 
     
    435479 
    436480        schedule = ConferenceSchedule(self._conf) 
    437         contrib = self._addContribToSession(self._session1, self._slot2_sDate, 1) 
     481        contrib, autoOps = self._addContribToSession(self._session1, self._slot2_sDate, 1) 
    438482 
    439483        # scheduling 
Note: See TracChangeset for help on using the changeset viewer.