class TestCourse(unittest.TestCase): def setUp(self): self.course = Course() self.id_course = self.course.id_course def test_init(self): self.assertEqual(self.course.language, None) self.assertEqual(self.course.level, None) self.assertEqual(self.course.price, None) self.assertEqual(self.course.teachers, []) self.assertEqual(self.course.students, []) self.assertEqual(self.course.address, None) self.assertEqual(self.course.books, []) def test_add_teacher(self): self.course.add_teacher(11) self.assertIn(11, self.course.teachers) def test_add_student(self): self.course.add_student(18) self.assertIn(18, self.course.students) def test_str(self): self.assertEqual(str(self.course), f'id_course: {self.id_course}, ') def tearDown(self): Course.id -= 1
def __init__(self, uid, name, courses_html, course_list): self.uid = uid Teacher.teacher_ids.append(uid) self.name = name # Courses soup = BeautifulSoup(courses_html, 'html.parser') item_names = soup.select('.course-item-right') courses = [] for item in item_names: course_link = item.select('a')[0].attrs['href'] course_id = int(course_link[8:]) course_name = item.select('a')[0].get_text() if course_id not in Course.course_ids: new_course = Course(course_id, course_name) new_course.add_teacher(self) course_list.append(new_course) else: for c in course_list: if c.cid == course_id: c.add_teacher(self) courses.append(course_id) self.courses = courses
def listsubject(): connect = sqlite3.connect('information.db') subjects = connect.execute( 'SELECT course.courseID, course.courseName, course.schoolYear FROM course INNER JOIN courseDetails ON course.courseID=courseDetails.courseID GROUP BY course.courseID;' ) for subject in subjects: course = Course(subject[0], subject[1]) for class_num, classroom, limitation, teacher in connect.execute( 'SELECT courseDetails.class, courseDetails.classroom, courseDetails.limitation, courseDetails.teacher FROM course INNER JOIN courseDetails ON course.courseID=courseDetails.courseID WHERE course.courseID=? GROUP BY courseDetails.class;', (subject[0], )).fetchall(): course.add_class_num(class_num, subject[0], subject[1]) course.add_classroom(subject[0], subject[1], class_num - 1, classroom) course.add_limitation(subject[0], subject[1], class_num - 1, limitation) course.add_teacher(subject[0], subject[1], class_num - 1, teacher) dates_and_times = connect.execute( 'SELECT courseDetails.day, courseDetails.month, courseDetails.year, courseDetails.startHour, courseDetails.startMinute, courseDetails.endHour, courseDetails.endMinute FROM course INNER JOIN courseDetails ON course.courseID=courseDetails.courseID WHERE courseDetails.class=?;', (class_num, )) for date_and_time in dates_and_times: course.add_datetime( subject[0], subject[1], class_num - 1, datetime(date_and_time[2], date_and_time[1], date_and_time[0]), time(date_and_time[3], date_and_time[4]), time(date_and_time[5], date_and_time[6])) course_list.add_course(course.get_course()) connect.commit() connect.close() return jsonify(course_list.get_list())
from datetime import datetime, time import sqlite3 course_list = CourseList() connect = sqlite3.connect('information.db') subjects = connect.execute( 'SELECT course.courseID, course.courseName, course.schoolYear FROM course INNER JOIN courseDetails ON course.courseID=courseDetails.courseID GROUP BY course.courseID;' ) for subject in subjects: course = Course(subject[0], subject[1]) for class_num, classroom, limitation, teacher in connect.execute( 'SELECT courseDetails.class, courseDetails.classroom, courseDetails.limitation, courseDetails.teacher FROM course INNER JOIN courseDetails ON course.courseID=courseDetails.courseID WHERE course.courseID=? GROUP BY courseDetails.class;', (subject[0], )).fetchall(): course.add_class_num(class_num, subject[0], subject[1]) course.add_classroom(subject[0], subject[1], class_num - 1, classroom) course.add_limitation(subject[0], subject[1], class_num - 1, limitation) course.add_teacher(subject[0], subject[1], class_num - 1, teacher) dates_and_times = connect.execute( 'SELECT courseDetails.day, courseDetails.month, courseDetails.year, courseDetails.startHour, courseDetails.startMinute, courseDetails.endHour, courseDetails.endMinute FROM course INNER JOIN courseDetails ON course.courseID=courseDetails.courseID WHERE courseDetails.class=?;', (class_num, )) for date_and_time in dates_and_times: course.add_datetime( subject[0], subject[1], class_num - 1, datetime(date_and_time[2], date_and_time[1], date_and_time[0]), time(date_and_time[3], date_and_time[4]), time(date_and_time[5], date_and_time[6])) course_list.add_course(course.get_course()) print(course_list.get_list()) connect.commit() connect.close()