def test_can_give_total_time_for_month(self): m = Month(2012, 10) w = Week() w.set_day(4, TimeRange(Time(7), Time(17, 10))) m.add_week(40, w) m.add_week(42, w) self.assertEquals(m.get_total_time(), Hours(20, 20))
def test_can_enter_times_into_first_incomplete_week(self): m = Month(2012, 11) w = Week() w.set_day(0, TimeRange(Time(7), Time(17))) w.set_day(3, TimeRange(Time(8), Time(18))) m.add_week(44, w) self.assertEquals(m.get_day(1), TimeRange(Time(8), Time(18)))
def test_can_return_week(self): m = Month(2012, 10) w = Week() w.set_day(0, TimeRange(Time(7), Time(17))) m.add_week(40, w) self.assertEquals( m.get_week(40).get_day(0), TimeRange(Time(7), Time(17)))
def test_can_give_total_time_for_month(self): m = Month(2012, 10) w = Week() w.set_day(4, TimeRange(Time(7), Time(17, 10))) m.add_week(40, w) m.add_week(42, w) self.assertEquals(m.get_total_time(), Hours(20, 20))
def test_can_enter_times_into_first_incomplete_week(self): m = Month(2012, 11) w = Week() w.set_day(0, TimeRange(Time(7), Time(17))) w.set_day(3, TimeRange(Time(8), Time(18))) m.add_week(44, w) self.assertEquals(m.get_day(1), TimeRange(Time(8), Time(18)))
def test_can_enter_times_from_last_week_in_month(self): m = Month(2012, 10) w = Week() w.set_day(2, TimeRange(Time(7), Time(17))) w.set_day(3, TimeRange(Time(7), Time(17))) m.add_week(44, w) self.assertEquals(m.get_day(31), TimeRange(Time(7), Time(17))) self.assertNotEquals(m.get_day(32), TimeRange(Time(7), Time(17)))
def test_can_return_half_week(self): m = Month(2012, 11) w = Week() w.set_day(2, TimeRange(Time(7), Time(17))) w.set_day(3, TimeRange(Time(8), Time(18))) m.add_week(44, w) self.assertEquals(m.get_week(44).get_day(2), None)
def test_can_return_half_week(self): m = Month(2012, 11) w = Week() w.set_day(2, TimeRange(Time(7), Time(17))) w.set_day(3, TimeRange(Time(8), Time(18))) m.add_week(44, w) self.assertEquals(m.get_week(44).get_day(2), None)
def test_can_enter_times_from_last_week_in_month(self): m = Month(2012, 10) w = Week() w.set_day(2, TimeRange(Time(7), Time(17))) w.set_day(3, TimeRange(Time(7), Time(17))) m.add_week(44, w) self.assertEquals(m.get_day(31), TimeRange(Time(7), Time(17))) self.assertNotEquals(m.get_day(32), TimeRange(Time(7), Time(17)))
def generate_montly_report(self, month_number, hours): m = Month(self.year, month_number) for w in m.get_week_numbers(): if month_number == 12 and w == 1: schedule = self.next_year.get_schedule_for_week(w, hours) else: schedule = self.get_schedule_for_week(w, hours) m.add_week(w, schedule) return m
def test_returns_correctly_annotated_week_for_start_of_month(self): m = Month(2012, 11) w = Week() for i in xrange(7): w.set_day(i, TimeRange(Time(7), Time(17))) m.add_week(44, w) aw = m.get_week(44) self.assertEquals(aw.get_earliest_day_in_month(), 1) self.assertEquals(aw.get_first_valid_day(), 3) self.assertEquals(aw.get_last_valid_day(), 6)
def generate_montly_report(self, month_number, hours): m = Month(self.year, month_number) for w in m.get_week_numbers(): if month_number == 12 and w == 1: schedule = self.next_year.get_schedule_for_week(w, hours) else: schedule = self.get_schedule_for_week(w, hours) m.add_week(w, schedule) return m
def test_returns_correctly_annotated_week_for_start_of_month(self): m = Month(2012, 11) w = Week() for i in xrange(7): w.set_day(i, TimeRange(Time(7), Time(17))) m.add_week(44, w) aw = m.get_week(44) self.assertEquals(aw.get_earliest_day_in_month(), 1) self.assertEquals(aw.get_first_valid_day(), 3) self.assertEquals(aw.get_last_valid_day(), 6)
def test_returns_annotated_weeks(self): m = Month(2012, 10) w = Week() w.set_day(0, TimeRange(Time(7), Time(17))) m.add_week(40, w) self.assertEquals(type(m.get_week(40)), AnnotatedWeek)
def test_can_enter_times_from_second_week(self): m = Month(2012, 10) w = Week() w.set_day(0, TimeRange(Time(7), Time(17))) m.add_week(41, w) self.assertEquals(m.get_day(8), TimeRange(Time(7), Time(17)))
def test_can_return_week(self): m = Month(2012, 10) w = Week() w.set_day(0, TimeRange(Time(7), Time(17))) m.add_week(40, w) self.assertEquals(m.get_week(40).get_day(0), TimeRange(Time(7), Time(17)))
def test_can_add_week_1_of_next_year_to_december(self): m = Month(2012, 12) w = Week() w.set_day(0, TimeRange(Time(7), Time(10))) m.add_week(1, w) self.assertEquals(m.get_day(31), TimeRange(Time(7), Time(10)))
def test_can_add_week_52_of_previous_year_to_january(self): m = Month(2012, 1) w = Week() w.set_day(6, TimeRange(Time(7), Time(10))) m.add_week(52, w) self.assertEquals(m.get_day(1), TimeRange(Time(7), Time(10)))
def test_can_add_week_52_of_previous_year_to_january(self): m = Month(2012, 1) w = Week() w.set_day(6, TimeRange(Time(7), Time(10))) m.add_week(52, w) self.assertEquals(m.get_day(1), TimeRange(Time(7), Time(10)))
def test_can_add_week_1_of_next_year_to_december(self): m = Month(2012, 12) w = Week() w.set_day(0, TimeRange(Time(7), Time(10))) m.add_week(1, w) self.assertEquals(m.get_day(31), TimeRange(Time(7), Time(10)))
def test_returns_annotated_weeks(self): m = Month(2012, 10) w = Week() w.set_day(0, TimeRange(Time(7), Time(17))) m.add_week(40, w) self.assertEquals(type(m.get_week(40)), AnnotatedWeek)
def test_can_enter_times_from_second_week(self): m = Month(2012, 10) w = Week() w.set_day(0, TimeRange(Time(7), Time(17))) m.add_week(41, w) self.assertEquals(m.get_day(8), TimeRange(Time(7), Time(17)))