def test_room_is_free(self): lecturer = Lecturer('Benjamin Kommey',4564541,'Mr') course = Course('Embedded Systems','COE 361') section = Section('ED CoE',25,3,'Electrical and Electronics Engineering','Computer Engineering') c_item = CurriculumItem(section,course,lecturer) lecture = Lecture(c_item,60) ttslot = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')) ttslot1 =TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('9:00', '10:00')) ttslot2 = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('10:00', '11:00')) ttslot3 = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('11:00', '12:00')) self.assertTrue(self.timetable.add_lecture(lecture,ttslot)) self.assertTrue(self.timetable.add_lecture(lecture,ttslot1)) self.assertTrue(self.timetable.add_lecture(lecture,ttslot2)) self.assertTrue(self.timetable.add_lecture(lecture,ttslot3)) self.assertFalse(self.timetable.room_is_free(Classroom('LT ', 45, 'PBOO2'),TimeSlot('7:00', '8:00'))) self.assertFalse(self.timetable.room_is_free(Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00'))) self.assertFalse(self.timetable.room_is_free(Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00'))) self.assertFalse(self.timetable.room_is_free(Classroom('LT ', 45, 'PBOO2'),TimeSlot('10:00', '11:00'))) self.assertTrue(self.timetable.room_is_free(Classroom('LT ', 45, 'PBOO2'),TimeSlot('12:00', '13:00'))) self.assertTrue(self.timetable.room_is_free(Classroom('LT ', 45, 'PBOO2'),TimeSlot('13:00', '14:00'))) self.assertTrue(self.timetable.room_is_free(Classroom('LT ', 45, 'PBOO2'),TimeSlot('14:00', '15:00'))) self.assertTrue(self.timetable.room_is_free(Classroom('LT ', 45, 'PBOO2'),TimeSlot('15:00', '16:00')))
def check_duplicate(self): return Lecturer.check_duplicate( self.mydb, self.id_num, self.username, self.name, )
def test_remove_lecture(self): #test for removing a lecture from a slot that exists and is occupied lecturer = Lecturer('Benjamin Kommey',4564541,'Mr') course = Course('Embedded Systems','COE 361') section = Section('ED CoE',25,3,'Electrical and Electronics Engineering','Computer Engineering') c_item = CurriculumItem(section,course,lecturer) lecture = Lecture(c_item,60) print(self.timetable) print('--------TEST - REMOVE-------------------After Adding Lecture-----------------') ttslot = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')) self.assertTrue(self.timetable.add_lecture(lecture,ttslot)) print(self.timetable) self.assertTrue(self.timetable.remove_lecture(ttslot)) print('-----TEST REMOVE-----------------------After removing Lecture---------------') print(self.timetable) #test for removing a lecture from a slot that is empty self.assertFalse(self.timetable.remove_lecture(ttslot)) #test for removing a lecture from a slot that does not exists self.assertFalse(self.timetable.remove_lecture( TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('7:00', '8:00'))))
def test_all_slots(self): lecturer = Lecturer('Benjamin Kommey', 4564541, 'Mr') course = Course('Embedded Systems', 'COE 361') section = Section('ED CoE', 25, 3, 'Electrical and Electronics Engineering', 'Computer Engineering') c_item = CurriculumItem(section, course, lecturer) lecture = Lecture(c_item, 60) ttslot = TimetableSlot('Monday', Classroom('LT ', 45, 'PBOO2'), TimeSlot('8:00', '9:00')) ttslot1 = TimetableSlot('Tuesday', Classroom(' A110', 300, 'Libary'), TimeSlot('9:00', '10:00')) ttslot2 = TimetableSlot('Thursday', Classroom('Room C', 67, 'N1'), TimeSlot('10:00', '11:00')) ttslot3 = TimetableSlot('Friday', Classroom('LT ', 45, 'PBOO2'), TimeSlot('11:00', '12:00')) ttslot4 = TimetableSlot('Monday', Classroom('LT ', 45, 'PBOO2'), TimeSlot('10:00', '11:00')) #print(self.timetable) self.assertTrue(self.timetable.add_lecture('Monday', lecture, ttslot)) self.assertTrue(self.timetable.add_lecture('Tuesday', lecture, ttslot1)) self.assertTrue( self.timetable.add_lecture('Thursday', lecture, ttslot2)) self.assertTrue(self.timetable.add_lecture('Friday', lecture, ttslot3)) print("############ Testing All Slots##############################") slots = self.timetable.all_slots() for slot in slots: print(slot)
def test_swap_lectures(self): pass #Test later, not called in generator at the moment lecturer = Lecturer('Benjamin Kommey', 4564541, 'Mr') course = Course('Embedded Systems', 'COE 361') section = Section('ED CoE', 25, 3, 'Electrical and Electronics Engineering', 'Computer Engineering') c_item = CurriculumItem(section, course, lecturer) lecture = Lecture(c_item, 60) ttslot = TimetableSlot('Monday', Classroom('LT ', 45, 'PBOO2'), TimeSlot('8:00', '9:00')) ttslot1 = TimetableSlot('Tuesday', Classroom(' A110', 300, 'Libary'), TimeSlot('9:00', '10:00')) ttslot2 = TimetableSlot('Thursday', Classroom('Room C', 67, 'N1'), TimeSlot('10:00', '11:00')) ttslot3 = TimetableSlot('Friday', Classroom('LT ', 45, 'PBOO2'), TimeSlot('11:00', '12:00')) self.assertTrue(self.timetable.add_lecture('Monday', lecture, ttslot)) self.assertTrue(self.timetable.add_lecture('Tuesday', lecture, ttslot1)) self.assertTrue( self.timetable.add_lecture('Thursday', lecture, ttslot2)) self.assertTrue(self.timetable.add_lecture('Friday', lecture, ttslot3)) print(self.timetable)
def test_move_lecture(self): #test for moving lecture from a slot that is occupied #first create a new lecture and then add it to a slot lecturer = Lecturer('Benjamin Kommey',4564541,'Mr') course = Course('Embedded Systems','COE 361') section = Section('ED CoE',25,3,'Electrical and Electronics Engineering','Computer Engineering') c_item = CurriculumItem(section,course,lecturer) lecture = Lecture(c_item,60) print(self.timetable) print('---------------------------After Adding Lecture-----------------') ttslot = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')) self.assertTrue(self.timetable.add_lecture(lecture,ttslot)) print(self.timetable) #test for moving lecture from a slot that is not occupied self.assertFalse(self.timetable.move_lecture(TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('10:00', '11:00')), TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('14:00', '15:00')))) print('---------------------After attempting wrong move-------------------') print(self.timetable) #test for moving lecture to a slot that is not occupied self.assertTrue(self.timetable.move_lecture(TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')), TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('10:00', '11:00')) )) print('------------------------------After moving lecture (unoccupied)-------------------------') print(self.timetable) #test for moving lecture to a slot that is occupied with free as True ttslot = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('9:00', '10:00')) self.assertTrue(self.timetable.add_lecture(lecture,ttslot)) self.assertFalse(self.timetable.move_lecture(TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')), TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('10:00', '11:00')) )) print(self.timetable) #test for moving lecture to a slot that is not occupied with free as False #test for moving a lecture back to itself #test for moving from a slot that does not exits self.assertFalse(self.timetable.move_lecture(TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '10:00')), TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('10:00', '11:00')) )) #test for moving to a slot that does not exits self.assertFalse(self.timetable.move_lecture(TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')), TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('10:00', '12:00')) ))
def setUpClass(cls): super().setUpClass() session = Session(DatabaseTest.connection) semester = Semester('WS', 2017) s1 = Student('Max', 'Mustermann', '*****@*****.**') s2 = Student('Maike', 'Musterfrau', '*****@*****.**') l1 = Lecturer('Jack', 'Johnson', '*****@*****.**', 'male') l2 = Lecturer('Jacky', 'Johnsons', '*****@*****.**', 'female') lecture = Lecture(title='Learn this', tutorial=False, lecturer=l2, semester=semester) lecture2 = Lecture(title='Learn this too', tutorial=False, lecturer=l1, semester=semester) lecture.participants = [s1, s2] lecture2.participants = [s1] session.add_all([semester, s1, s2, l1, l2, lecture, lecture2]) TestLecture.lecture = lecture session.commit() session.close()
def test_first_fit(self): lecturer = Lecturer('Benjamin Kommey',4564541,'Mr') course = Course('Embedded Systems','COE 361') section = Section('ED CoE',25,3,'Electrical and Electronics Engineering','Computer Engineering') c_item = CurriculumItem(section,course,lecturer) lecture = Lecture(c_item,60) ttslot = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')) print('----------------First Fit-----------------------------') print(self.timetable.first_fit(lecture))
def test_add_lecture(self): #test for the case of adding a lecture to a slot that is free with free parameter lecturer = Lecturer('Benjamin Kommey',4564541,'Mr') course = Course('Embedded Systems','COE 361') section = Section('ED CoE',25,3,'Electrical and Electronics Engineering','Computer Engineering') c_item = CurriculumItem(section,course,lecturer) lecture = Lecture(c_item,60) print(self.timetable) print('---------------------------After Adding Lecture-----------------') ttslot = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')) self.assertTrue(self.timetable.add_lecture(lecture,ttslot)) print(self.timetable) #test for the case of adding a lecture to a slot that is not free with free parameter lecturer = Lecturer('Selasi Agbemenu',4564541,'Mr') course = Course('Linear Electronics','COE 361') section = Section('ED CoE',25,3,'Electrical and Electronics Engineering','Computer Engineering') c_item = CurriculumItem(section,course,lecturer) lecture = Lecture(c_item,60) print('---------------------------After Adding Lecture to Occupied---------') ttslot = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')) self.assertFalse(self.timetable.add_lecture(lecture,ttslot)) print(self.timetable) #test for adding a lecture to slot that is not in the timetable print('---------------------------After Adding Lecture to Occupied---------') ttslot = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('6:00', '7:00')) self.assertFalse(self.timetable.add_lecture(lecture,ttslot)) print(self.timetable)
def test_timetableslot(self): lecturer = Lecturer('Benjamin Kommey',4564541,'Mr') course = Course('Embedded Systems','COE 361') section = Section('ED CoE',25,3,'Electrical and Electronics Engineering','Computer Engineering') c_item = CurriculumItem(section,course,lecturer) lecture = Lecture(c_item,60) ttslot = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')) self.assertTrue(self.timetable.add_lecture(lecture,ttslot)) self.assertEqual(self.timetable.timetableslot(ttslot.room,ttslot.time_slot),ttslot) ttslot1 = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('9:00', '10:00')) self.assertEqual(self.timetable.timetableslot(ttslot1.room,ttslot1.time_slot),ttslot1)
def test_add_lecture(self): pass lecturer = Lecturer('Benjamin Kommey', 4564541, 'Mr') course = Course('Embedded Systems', 'COE 361') section = Section('ED CoE', 25, 3, 'Electrical and Electronics Engineering', 'Computer Engineering') c_item = CurriculumItem(section, course, lecturer) lecture = Lecture(c_item, 60) ttslot = TimetableSlot('Monday', Classroom('LT ', 45, 'PBOO2'), TimeSlot('8:00', '9:00')) ttslot1 = TimetableSlot('Tuesday', Classroom(' A110', 300, 'Libary'), TimeSlot('9:00', '10:00')) ttslot2 = TimetableSlot('Thursday', Classroom('Room C', 67, 'N1'), TimeSlot('10:00', '11:00')) ttslot3 = TimetableSlot('Friday', Classroom('LT ', 45, 'PBOO2'), TimeSlot('11:00', '12:00')) ttslot4 = TimetableSlot('Monday', Classroom('LT ', 45, 'PBOO2'), TimeSlot('10:00', '11:00')) print(self.timetable) self.assertTrue(self.timetable.add_lecture('Monday', lecture, ttslot)) self.assertTrue( self.timetable.timetableslot('Monday', ttslot1.room, ttslot1.time_slot).is_occupied, True) self.assertTrue(self.timetable.add_lecture('Tuesday', lecture, ttslot1)) self.assertTrue( self.timetable.add_lecture('Thursday', lecture, ttslot2)) self.assertTrue(self.timetable.add_lecture('Friday', lecture, ttslot3)) print( '############################### Add Lecture ############################' ) print(self.timetable) self.timetable.timetable['Monday'].remove_time_table_slot( Classroom('LT ', 45, 'PBOO2'), TimeSlot('9:00', '10:00')) print( '####################################################################' ) print(self.timetable) self.timetable.timetable['Monday'].move_lecture(ttslot, ttslot4) print(self.timetable.timetable) self.assertNotEqual(self.timetable.timetable['Monday'], self.timetable.timetable['Tuesday'])
def result(self): if not self.res: return False else: if self.type_user == 0: if Student.check_legitimation(self.mydb, self.res[2]) == True: return True else: return False else: if Lecturer.check_legitimation(self.mydb, self.res[2]) == True: return True else: return False
def test_occupied_slots(self): #if all slots are empty return an empty lists self.assertEqual([],self.timetable.occupied_slots()) print(self.timetable.occupied_slots()) lecturer = Lecturer('Benjamin Kommey',4564541,'Mr') course = Course('Embedded Systems','COE 361') section = Section('ED CoE',25,3,'Electrical and Electronics Engineering','Computer Engineering') c_item = CurriculumItem(section,course,lecturer) lecture = Lecture(c_item,60) ttslot = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')) ttslot1 =TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('9:00', '10:00')) ttslot2 = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('10:00', '11:00')) ttslot3 = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('11:00', '12:00')) self.assertTrue(self.timetable.add_lecture(lecture,ttslot)) self.assertTrue(self.timetable.add_lecture(lecture,ttslot1)) self.assertTrue(self.timetable.add_lecture(lecture,ttslot2)) self.assertTrue(self.timetable.add_lecture(lecture,ttslot3)) self.assertEqual([ttslot,ttslot1,ttslot2,ttslot3],self.timetable.occupied_slots())
def test_remove_all(self): #test for the case of adding a lecture to a slot that is free with free parameter lecturer = Lecturer('Benjamin Kommey',4564541,'Mr') course = Course('Embedded Systems','COE 361') section = Section('ED CoE',25,3,'Electrical and Electronics Engineering','Computer Engineering') c_item = CurriculumItem(section,course,lecturer) lecture = Lecture(c_item,60) ttslot = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')) ttslot1 =TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('9:00', '10:00')) ttslot2 = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('10:00', '11:00')) ttslot3 = TimetableSlot('Mon', Classroom('LT ', 45, 'PBOO2'),TimeSlot('11:00', '12:00')) self.assertTrue(self.timetable.add_lecture(lecture,ttslot)) self.assertTrue(self.timetable.add_lecture(lecture,ttslot1)) self.assertTrue(self.timetable.add_lecture(lecture,ttslot2)) self.assertTrue(self.timetable.add_lecture(lecture,ttslot3)) print('---------------------------After Adding Lectures-----------------') print(self.timetable) self.assertTrue(self.timetable.remove_all()) print('---------------------------After Removing Lectures-----------------') print(self.timetable)
from datetime import date from student import Student from lecturer import Lecturer student1 = Student('Dani', 'koskas', '1997,6,04', 'Raanana', '0584190758', '*****@*****.**', ['python', 'js'], 2) student2 = Student('Blaise', 'Matudi', '1979,4,12', 'Paris', '008-3402202', '*****@*****.**', ['python', 'cSharp'], 2) lecturer1 = Lecturer("James", 'Bond', '1970,7,09', 'Ariel', '012-000007', 'james.bond&gmail.com', '8000', 'high', '200', ['python']) # Q.2 def check_who_teaches(teacher: Lecturer, s: Student): try: for i in teacher.teaches_courses: for j in s.courses: if i == j: print(f'{teacher.fname} teaches {i}') print(f'{s.fname} studies {i}') except TypeError: print("only recieves a lecturer and a student, please try again") except: print("bad input, try again") check_who_teaches(lecturer1, student1)
def add(self): Lecturer.insert_lecturer(self.mydb, self.username, self.password, self.id_num, self.name)
import datetime # we will use this for date objects from person import Person from student import Student from lecturer import Lecturer from course import Course print('--- defining lecturers ----') lecturer1 = Lecturer('Whoever', 'Ben-Zakkai', datetime.date(1979, 1, 3), 'Some addr', 19, frozenset(), 2020, 150) lecturer2 = Lecturer('Whoever2', 'Ben-Shlomo', datetime.date(1990, 4, 17), 'Some addr2', 20, frozenset(), 2020, 150) print('--- defining students ----') student1 = Student("Muhammad", "Ben-Ami", datetime.date(1990, 1, 11), "Some street 13 at Some City", 15, frozenset(), 2020) student2 = Student("Iris", "York", datetime.date(1982, 4, 16), "Some street 14 at Some City", 16, frozenset(), 2020) # define courses, not attached to lecturers! python = Course("Python", 120, datetime.time(10, 00, 00), "Wednesday", 0) python.lecturer_id = lecturer1.id sforce = Course("Salesforce", 90, datetime.time(16, 00, 00), "Wednesday", 0) sforce.lecturer_id = lecturer2.id javascr1 = Course("JavaScript", 120, datetime.time(11, 30, 00), "Tuesday", 0) javascr1.lecturer_id = lecturer1.id cshp = Course("C#", 120, datetime.time(16, 00, 00), "Tuesday", 0) cshp.lecturer_id = lecturer2.id
] csv.register_dialect('myDialect', delimiter = ',', skipinitialspace=True) lectures = [] rooms = [] with open('/home/kumbong/Desktop/Software Engineering/hex-backend/objects/curriculum.csv', 'r') as csvFile: reader = csv.DictReader(csvFile, dialect='myDialect') count = 0 for row in reader: r = (dict(row)) lecturer = Lecturer(r['Lecturer name'].strip(),r['Lecturer Id'].strip(),r['Lecturer Title'].strip()) course = Course(r['Course name'].strip(),r['Department code'].strip(),r['Course code'].strip(),r['T'].strip(),r['P'].strip(),r['C'].strip(),r['Tutorial'].strip()) section = Section(r['Section department'].strip(),r['Year'].strip(),r['Section code'].strip(),int(r['Class size'].strip())) c_item = CurriculumItem(section,course,lecturer) if count%3: lecture = Lecture(c_item,120) else: lecture = Lecture(c_item,60) lectures.append(lecture) count+=1 csvFile.close() with open('/home/kumbong/Desktop/Software Engineering/hex-backend/objects/rooms.csv', 'r') as csvFile: reader = csv.DictReader(csvFile, dialect='myDialect') for row in reader: r = (dict(row))
def test_move_lecture(self): print( '############################################## Testing Move Lecture ######################' ) print( '##########################################################################################' ) print( '##########################################################################################' ) lecturer = Lecturer('Benjamin Kommey', 4564541, 'Mr') course = Course('Embedded Systems', 'COE 361') section = Section('ED CoE', 25, 3, 'Electrical and Electronics Engineering', 'Computer Engineering') c_item = CurriculumItem(section, course, lecturer) lecture = Lecture(c_item, 60) ttslot = TimetableSlot('Monday', Classroom('LT ', 45, 'PBOO2'), TimeSlot('8:00', '9:00')) ttslot1 = TimetableSlot('Tuesday', Classroom(' A110', 300, 'Libary'), TimeSlot('9:00', '10:00')) ttslot2 = TimetableSlot('Thursday', Classroom('Room C', 67, 'N1'), TimeSlot('10:00', '11:00')) ttslot3 = TimetableSlot('Friday', Classroom('LT ', 45, 'PBOO2'), TimeSlot('11:00', '12:00')) ttslot4 = TimetableSlot('Monday', Classroom('LT ', 45, 'PBOO2'), TimeSlot('9:00', '10:00')) ttslot5 = TimetableSlot('Monday', Classroom('LT ', 45, 'PBOO2'), TimeSlot('16:00', '17:00')) self.assertTrue(self.timetable.add_lecture('Monday', lecture, ttslot)) self.assertTrue(self.timetable.add_lecture('Tuesday', lecture, ttslot1)) self.assertTrue( self.timetable.add_lecture('Thursday', lecture, ttslot2)) self.assertTrue(self.timetable.add_lecture('Friday', lecture, ttslot3)) print( '############################ Before Moving lecture to another slot ##########################' ) print(self.timetable) #moving lecture to another slot (existing and free) on the same day print( '############################ Moving lecture to another slot on same day##########################' ) self.timetable.move_lecture(ttslot.day, ttslot, ttslot4.day, ttslot4) print(self.timetable) # move lecture to another (non existant) slot on the same day print( '############### Move Lecture to another slot (non existant) on the same day ###############' ) self.assertFalse( print( self.timetable.move_lecture(ttslot.day, ttslot, ttslot5.day, ttslot5))) print(self.timetable) # move lecture to another slot (existing and free) on a different day print( '################## move lecture to another slot (existing and free) on a different day ##########' ) #self.assertTrue(self.timetable.move_lecture(ttslot.day,ttslot,'Friday',TimetableSlot('Friday', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')))) print(self.timetable) # move lecture to another slot (non existant ) on a different day print( '################## move lecture to another slot (non existant ) on a different day on a different day ##########' ) self.assertFalse( self.timetable.move_lecture( ttslot.day, ttslot, 'Monday', TimetableSlot('Friday', Classroom('LT ', 45, 'PBOO2'), TimeSlot('18:00', '19:00')))) print(self.timetable) # move lecture to the same slot on the same day print( '################## move lecture to the same slot on the same day ##########' ) self.assertFalse( self.timetable.move_lecture(ttslot.day, ttslot, ttslot.day, ttslot)) print(self.timetable) # Move lecture to the same slot (existing and free) on a different day print( '################## Move lecture to the same slot (existing and free) on a different dayy ##########' ) #self.assertTrue(self.timetable.move_lecture(ttslot.day,ttslot,'Friday',TimetableSlot('Friday', Classroom('LT ', 45, 'PBOO2'),TimeSlot('8:00', '9:00')))) print(self.timetable) # move lecture to another slot (existing and occupied) on the same day # move lecture to another slot (existing and occpied) on the on a different day pass