def setUp(self):
        weekly = Rule(frequency="WEEKLY")
        weekly.save()
        daily = Rule(frequency="DAILY")
        daily.save()
        cal = Room(name="MyCal")
        cal.save()

        self.reservation1 = Reservation(
            **{
                'title': 'Weekly Reservation',
                'start': datetime.datetime(2009, 4, 1, 8, 0),
                'end': datetime.datetime(2009, 4, 1, 9, 0),
                'end_recurring_period': datetime.datetime(2009, 10, 5, 0, 0),
                'rule': weekly,
                'room': cal
            })
        self.reservation1.save()
        self.reservation2 = Reservation(
            **{
                'title': 'Recent Reservation',
                'start': datetime.datetime(2008, 1, 5, 9, 0),
                'end': datetime.datetime(2008, 1, 5, 10, 0),
                'end_recurring_period': datetime.datetime(2009, 5, 5, 0, 0),
                'rule': daily,
                'room': cal
            })
        self.reservation2.save()
 def test_get_occurrence(self):
     reservation = Reservation(**self.recurring_data)
     reservation.save()
     occurrence = reservation.get_occurrence(datetime.datetime(2008, 1, 5, 8, 0))
     self.assertEqual(occurrence.start, datetime.datetime(2008,1,5,8))
     occurrence.save()
     occurrence = reservation.get_occurrence(datetime.datetime(2008, 1, 5, 8, 0))
     self.assertTrue(occurrence.pk is not None)
 def test_reservation_get_occurrences_after(self):
     recurring_reservation=Reservation(**self.recurring_data)
     recurring_reservation.save()
     occurrences = recurring_reservation.get_occurrences(start=datetime.datetime(2008, 1, 5),
         end = datetime.datetime(2008, 1, 6))
     occurrence = occurrences[0]
     occurrence2 = recurring_reservation.occurrences_after(datetime.datetime(2008,1,5)).next()
     self.assertEqual(occurrence, occurrence2)
 def setUp(self):
     rule = Rule(frequency="WEEKLY")
     rule.save()
     cal = Room(name="MyCal")
     cal.save()
     data = {
         'title': 'Recent Reservation',
         'start': datetime.datetime(2008, 1, 5, 8, 0),
         'end': datetime.datetime(2008, 1, 5, 9, 0),
         'end_recurring_period': datetime.datetime(2008, 5, 5, 0, 0),
         'rule': rule,
         'room': cal
     }
     self.recurring_reservation = Reservation(**data)
     self.recurring_reservation.save()
 def make_occurrences(self, rule):
     cal = Room.objects.get(name="MyCal")
     recurring_data = {
         'title': 'Recent Reservation',
         'start': datetime.datetime(2010, 1, 1, 8, 0),
         'end': datetime.datetime(2010, 1, 1, 9, 0),
         'end_recurring_period': datetime.datetime(2010, 2, 1, 0, 0),
         'rule': rule,
         'room': cal
     }
     recurring_reservation = Reservation(**recurring_data)
     occurrences = recurring_reservation.get_occurrences(
         start=datetime.datetime(2010, 1, 1, 0, 0),
         end=datetime.datetime(2010, 2, 1, 0, 0))
     return [o.start.day for o in occurrences]
 def setUp(self):
     rule = Rule(frequency="WEEKLY")
     rule.save()
     cal = Room(name="MyCal")
     cal.save()
     data = {
         'title': 'Recent Reservation',
         'start': datetime.datetime(2008, 1, 5, 8, 0),
         'end': datetime.datetime(2008, 1, 5, 9, 0),
         'end_recurring_period': datetime.datetime(2008, 5, 5, 0, 0),
         'rule': rule,
         'room': cal
     }
     recurring_reservation = Reservation(**data)
     recurring_reservation.save()
     self.period = Period(reservations=Reservation.objects.all(),
                          start=datetime.datetime(2008, 1, 4, 7, 0),
                          end=datetime.datetime(2008, 1, 21, 7, 0))
 def test_recurring_reservation_get_occurrences(self):
     recurring_reservation = Reservation(**self.recurring_data)
     occurrences = recurring_reservation.get_occurrences(start=datetime.datetime(2008, 1, 12, 0, 0),
                                 end=datetime.datetime(2008, 1, 20, 0, 0))
     self.assertEquals(["%s to %s" %(o.start, o.end) for o in occurrences],
         ['2008-01-12 08:00:00 to 2008-01-12 09:00:00', '2008-01-19 08:00:00 to 2008-01-19 09:00:00'])