def test_filter_appos(self):
        agenda = AgendaController()

        shifts_intervals = ((9, 14), (16, 19), (12, 17))

        for start, end in shifts_intervals:
            agenda.add_shift(start, end)

        appos_intervals = [
            (interval_start, interval_start + 1)
            for start, end in shifts_intervals
            for interval_start in range(start, end, 1)
        ]

        appos = []
        for start, end in appos_intervals:
            appo = agenda.add_appointment(start, end)
            appos.append((appo.key, appo))

        test_array = ((0, 9, []), (9, 19, appos), (19, 99, []))
        for start, end, result in test_array:
            appos_in_interval = list(agenda.get_appointments_iteritems(start, end))

            self.assertEquals([k for k, _ in appos_in_interval].sort(), [k for k, _ in result].sort())

        agenda.destroy()
    def test_all_appointments_in_agenda(self):
        agenda = AgendaController()

        shifts_intervals = ((9, 14), (16, 19), (22, 24))

        for start, end in shifts_intervals:
            agenda.add_shift(start, end)

        appos_intervals = [
            (interval_start, interval_start + 1)
            for start, end in shifts_intervals
            for interval_start in range(start, end, 1)
        ]

        for start, end in appos_intervals:
            agenda.add_appointment(start, end)

        for _, appo in agenda.get_appointments_iteritems():
            interval = (appo.interval.start, appo.interval.end)
            self.assertIn(interval, appos_intervals, "Obtained appointments no it inserted")

        agenda.destroy()