def define_sessions(day, week, session_ids):

    sessions = []
    for session_id in session_ids[week][day]:
        if session_id != 'none':

            session = Session(week, day, session_id)  # create session
            session.assign_student_group(StudentGroup(
                session_id[-4:]))  # assign student group
            sessions.append(session)

    return sessions
Esempio n. 2
0
    def test_scheduling_unalvailable_volunteer(self):

        vol = Volunteer(volunteer_id='v001')
        vol.availability['tuesday']['week2'] = 0  # set as not available

        # create a session
        group = StudentGroup('A')
        sess = Session(week='week2', day='tuesday', session_id='s001')
        sess.assign_student_group(group)

        #schedule volunteer
        sess.schedule_volunteer(vol)

        self.assertEqual(vol.schedule['tuesday']['week2'], [],
                         "volunteer is not scheduled for the session")
        self.assertEqual(
            sess.get_scheduled_volunteers(), [],
            "volunteer is not added to list of scheduled volunteers")
Esempio n. 3
0
    def test_over_scheduling_session(self):

        vols = []

        # create five volunteers
        for i in range(1, 6):
            vols.append(Volunteer(volunteer_id='v00' + str(i)))

        # create a session
        group = StudentGroup('A')
        sess = Session(week='week2', day='thursday', session_id='s001')
        sess.assign_student_group(group)

        # assign all volunteers to the session
        for vol in vols:
            sess.schedule_volunteer(vol)

        self.assertEqual(len(sess.get_scheduled_volunteers()), 4,
                         "only four volunteers scheduled")
Esempio n. 4
0
    def test_simple_scheduling(self):

        vol = Volunteer(volunteer_id='v001')

        group = StudentGroup('A')
        sess = Session(week='week2', day='thursday', session_id='s001')
        sess.assign_student_group(group)

        sess.schedule_volunteer(vol)

        self.assertEqual(
            vol.get_groups_seen(), ['A'],
            'volunteer has correctly updated list of groups seen')
        self.assertEqual(vol.get_schedule()['thursday']['week2'], ['s001'],
                         'volunteer schedule updated correctly')
        self.assertEqual(vol.get_times_scheduled(), 1,
                         'correctly counted times scheduled')
        self.assertEqual(vol.get_schedule()['tuesday']['week2'], [],
                         'Tuesday not updated')
Esempio n. 5
0
    def test_shceduling_previously_seen_volunteer(self):

        vol = Volunteer(volunteer_id='v001')

        group = StudentGroup('A')

        sess1 = Session(week='week2', day='thursday', session_id='s001')
        sess1.assign_student_group(group)
        sess2 = Session(week='week3', day='tuesday', session_id='s002')
        sess2.assign_student_group(group)

        sess1.schedule_volunteer(vol)
        sess2.schedule_volunteer(vol)

        self.assertEqual(
            vol.get_groups_seen(), ['A'],
            'volunteer has correctly updated list of groups seen')
        self.assertEqual(vol.get_schedule()['thursday']['week2'], ['s001'],
                         'first schedule update successful')
        self.assertEqual(vol.get_schedule()['tuesday']['week3'], [],
                         'second schedule update not successful')
Esempio n. 6
0
    def test_over_scheduling_volunteer(self):

        vol = Volunteer(volunteer_id='v001')

        # create 5 sessions on the same day, each session with a different student group
        sessions = []
        for i in range(1, 6):

            group = StudentGroup('A' + str(i))
            sess = Session(week='week2',
                           day='thursday',
                           session_id='s00' + str(i))
            sess.assign_student_group(group)

            sessions.append(sess)

        # schedule the volunteer for all sessions
        for session in sessions:
            session.schedule_volunteer(vol)

        self.assertEqual(len(vol.get_schedule()['thursday']['week2']), 4,
                         "only four of the five sessions are scheduled")