Esempio n. 1
0
    def testOrderedSlots(self):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()
        sched.add_day("Friday")

        self.assertEquals({}, sched.slots("Friday"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 0), datetime.time(9, 0), "Nine"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 30), datetime.time(9, 30),
                          "Nine thirty"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(8, 30), datetime.time(8, 30),
                          "Eight thirty"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 15), datetime.time(9, 15),
                          "Nine ffiteen"))

        self.assertEquals([
            datetime.time(8, 30),
            datetime.time(9, 0),
            datetime.time(9, 15),
            datetime.time(9, 30)
        ], sched.orderd_slot_keys("Friday"))
Esempio n. 2
0
    def testAssignments(self):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()
        sched.add_day("Friday")
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 0), datetime.time(9, 0), "Nine"))
        self.assertEquals(
            "Empty",
            sched.get_assignment("Friday", "Track1", datetime.time(9, 0)))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(10, 0), datetime.time(10, 30), "Ten"))
        self.assertEquals(
            "Empty",
            sched.get_assignment("Friday", "Track1", datetime.time(10, 0)))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(11, 0), datetime.time(11, 30),
                          "Elevent"))
        self.assertEquals(
            "Empty",
            sched.get_assignment("Friday", "Track1", datetime.time(11, 0)))

        sched.assign_talk("Random talk", "Friday", "Track1",
                          datetime.time(9, 0))
        self.assertEquals(
            "Random talk",
            sched.get_assignment("Friday", "Track1", datetime.time(9, 0)))

        sched.assign_talk("Another talk", "Friday", "Track1",
                          datetime.time(10, 0))
        self.assertEquals(
            "Another talk",
            sched.get_assignment("Friday", "Track1", datetime.time(10, 0)))

        sched.assign_talk("Last talk", "Friday", "Track1",
                          datetime.time(11, 0))
        self.assertEquals(
            "Last talk",
            sched.get_assignment("Friday", "Track1", datetime.time(11, 0)))

        sched.assign_talk(
            "No such slot - accidentally supported but shouldnt happen talk",
            "Friday", "Track1", datetime.time(12, 0))
        self.assertEquals(
            "No such slot - accidentally supported but shouldnt happen talk",
            sched.get_assignment("Friday", "Track1", datetime.time(12, 0)))

        sched.assign_talk("Allan talk", "Friday", "Track1",
                          datetime.time(9, 0))
        self.assertEquals(
            "Allan talk",
            sched.get_assignment("Friday", "Track1", datetime.time(9, 0)))

        self.assertEquals(
            "Empty",
            sched.get_assignment("Friday", "Track1", datetime.time(13, 0)))
Esempio n. 3
0
    def test_schedule_to_excel(self, mock_storage_open, mock_sheet_write,
                               mock_merge):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()

        sched.add_day("Monday")
        sched.add_track("Monday", "Software")
        sched.add_track("Monday", "Hardware")

        sched.add_slot(
            "Monday",
            schedule.Slot(datetime.time(9, 0), datetime.time(9, 30), "Tracks"))
        sched.add_slot(
            "Monday",
            schedule.Slot(datetime.time(10, 0), datetime.time(10, 30),
                          "Plenary"))

        t = talk.mk_talk(None, "Random talk")
        sub = submissionrecord.make_submission(t, self.c.key, "Track1",
                                               "FormatX")
        sched.assign_talk(sub.urlsafe(), "Monday", "Hardware",
                          datetime.time(9, 0))

        self.assertEquals(0, mock_storage_open.call_count)
        url = schedexport.schedule_to_excel(sched)
        self.assertEquals(1, mock_storage_open.call_count)
        self.assertEquals(8, mock_sheet_write.call_count)
        self.assertEquals(1, mock_merge.call_count)

        self.assertEquals(
            "https:///mimas-aotb.appspot.com.storage.googleapis.com/Schedule",
            url[0:63])
        self.assertEquals(".xlsx", url[len(url) - 5:])

        self.assertEquals((0, 2, "Software"),
                          mock_sheet_write.mock_calls[0][1][1:])
        self.assertEquals((0, 3, "Hardware"),
                          mock_sheet_write.mock_calls[1][1][1:])

        self.assertEquals((1, 0, "09:00"),
                          mock_sheet_write.mock_calls[2][1][1:])
        self.assertEquals((1, 1, "09:30"),
                          mock_sheet_write.mock_calls[3][1][1:])
        self.assertEquals((1, 2, "Empty"),
                          mock_sheet_write.mock_calls[4][1][1:])
        self.assertEquals((1, 3, "Random talk"),
                          mock_sheet_write.mock_calls[5][1][1:])

        self.assertEquals((2, 0, "10:00"),
                          mock_sheet_write.mock_calls[6][1][1:])
        self.assertEquals((2, 1, "10:30"),
                          mock_sheet_write.mock_calls[7][1][1:])
        self.assertEquals((2, 2, 2, 3, "Empty"),
                          mock_merge.mock_calls[0][1][1:])
Esempio n. 4
0
    def add_slot(self):
        start = datetime.strptime(self.request.get("newSlotStart"),
                                  "%H:%M").time()
        end = datetime.strptime(self.request.get("newSlotEnd"), "%H:%M").time()

        audience = self.request.get("audiencetype")

        sched = ndb.Key(urlsafe=self.request.get("sched_key")).get()
        sched.add_slot(self.request.get("daysList"),
                       schedule.Slot(start, end, audience))
Esempio n. 5
0
    def testSlots(self):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()
        sched.add_day("Friday")

        self.assertEquals({}, sched.slots("Friday"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 0), datetime.time(9, 30), "Tracks"))
        self.assertEquals(1, len(sched.slots("Friday")))
        self.assertTrue(sched.slots("Friday").has_key(datetime.time(9, 0)))
        first_slot = sched.slots("Friday")[datetime.time(9, 0)]
        self.assertEquals(datetime.time(9, 0), first_slot.start_time)
        self.assertEquals(datetime.time(9, 30), first_slot.end_time)
        self.assertEquals("Tracks", first_slot.slot_type)

        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 30), datetime.time(10, 30),
                          "Plenary"))
        self.assertEquals(2, len(sched.slots("Friday")))
        self.assertTrue(sched.slots("Friday").has_key(datetime.time(9, 30)))
        second_slot = sched.slots("Friday")[datetime.time(9, 30)]
        self.assertEquals(datetime.time(9, 30), second_slot.start_time)
        self.assertEquals(datetime.time(10, 30), second_slot.end_time)
        self.assertEquals("Plenary", second_slot.slot_type)

        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(14, 0), datetime.time(15, 0),
                          "Plenary"))
        self.assertEquals(3, len(sched.slots("Friday")))
        sched.delete_slot_by_start_time("Friday", datetime.time(9, 30))
        self.assertEquals(2, len(sched.slots("Friday")))

        self.assertFalse(sched.slots("Friday").has_key(datetime.time(9, 30)))
        self.assertTrue(sched.slots("Friday").has_key(datetime.time(9, 0)))
        self.assertTrue(sched.slots("Friday").has_key(datetime.time(14, 0)))
Esempio n. 6
0
    def testListAssignedSubmissions(self):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()
        self.assertEquals([], sched.get_assigned_submissions())
        sched.add_day("Friday")
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 0), datetime.time(9, 0), "Nine"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(10, 0), datetime.time(10, 30), "Ten"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(11, 0), datetime.time(11, 30),
                          "Elevent"))

        sched.assign_talk("Talk1", "Friday", "Track1", datetime.time(9, 0))
        sched.assign_talk("Talk2", "Friday", "Track1", datetime.time(10, 0))
        sched.assign_talk("Talk3", "Friday", "Track1", datetime.time(11, 0))

        assigned_talks = sched.get_assigned_submissions()
        assigned_talks.sort()
        self.assertEquals(["Talk1", "Talk2", "Talk3"], assigned_talks)
Esempio n. 7
0
    def testClearAssignments(self):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()
        sched.add_day("Friday")
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 0), datetime.time(9, 0), "Nine"))
        self.assertEquals(
            "Empty",
            sched.get_assignment("Friday", "Track1", datetime.time(9, 0)))

        sched.assign_talk("Random talk", "Friday", "Track1",
                          datetime.time(9, 0))
        self.assertEquals(
            "Random talk",
            sched.get_assignment("Friday", "Track1", datetime.time(9, 0)))

        sched.clear_talk("Friday", "Track1", datetime.time(9, 0))
        self.assertEquals(
            "Empty",
            sched.get_assignment("Friday", "Track1", datetime.time(9, 0)))