예제 #1
0
    def test_remove_students_from_course(self):
        set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)

        res = self.app.put('/api/v1/course/1',
                           data=dict(remove_student_ids="1"),
                           headers=self.token)
        self.assertEqual(204, res.status_code)
예제 #2
0
 def test_delete_teacher(self):
     set_test_database_data('teachers', DataTeacher.TEST_TEACHER_1_INS)
     res = self.app.delete('/api/v1/teacher/1',
                           data=dict(first_name='Jon',
                                     last_name='Doe',
                                     email='*****@*****.**'),
                           headers=self.token)
     self.assertEqual(204, res.status_code)
예제 #3
0
 def test_delete_student(self):
     set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
     res = self.app.delete('/api/v1/student/1',
                           data=dict(first_name='Jon',
                                     last_name='Doe',
                                     email='*****@*****.**'),
                           headers=self.token)
     self.assertEqual(204, res.status_code)
예제 #4
0
    def test_create_a_new_grade_for_non_existent_student(self):
        set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)

        with self.assertRaises(EntityNotFound) as err:
            res = self.app.post('/api/v1/grade/student/999/course/1/100', headers=self.token)
        self.assertIn('EntityNotFound', err.exception.__repr__())
        self.assertIn('999', err.exception.__repr__())
예제 #5
0
 def test_delete_non_exist_student(self):
     set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
     with self.assertRaises(EntityNotFound) as err:
         res = self.app.delete('/api/v1/student/9999',
                               data=dict(first_name='Jon',
                                         last_name='Doe',
                                         email='*****@*****.**'),
                               headers=self.token)
     self.assertIn('EntityNotFound', err.exception.__repr__())
예제 #6
0
 def test_create_teacher_bad_email_address(self):
     set_test_database_data('teachers', DataTeacher.TEST_TEACHER_1_INS)
     with self.assertRaises(BadRequestError) as err:
         res = self.app.post('/api/v1/teacher',
                             data=dict(first_name='Jon',
                                       last_name='Doe',
                                       email='1212'),
                             headers=self.token)
     self.assertIn('BadRequestError', err.exception.__repr__())
예제 #7
0
    def test_update_non_exist_course(self):
        set_test_database_data('students', DataStudent.TEST_STUDENT_3_INS)

        with self.assertRaises(EntityNotFound) as err:
            res = self.app.put('/api/v1/course/999',
                               data=dict(student_ids="3"),
                               headers=self.token)
        self.assertIn('EntityNotFound', err.exception.__repr__())
        self.assertIn('999', err.exception.__repr__())
예제 #8
0
 def test_delete_non_exist_teacher(self):
     set_test_database_data('teachers', DataTeacher.TEST_TEACHER_1_INS)
     with self.assertRaises(EntityNotFound) as err:
         res = self.app.delete('/api/v1/teacher/9999',
                               data=dict(first_name='Jon',
                                         last_name='Doe',
                                         email='*****@*****.**'),
                               headers=self.token)
     self.assertIn('EntityNotFound', err.exception.__repr__())
예제 #9
0
 def test_create_student_bad_email_address(self):
     set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
     with self.assertRaises(BadRequestError) as err:
         res = self.app.post('/api/v1/student',
                             data=dict(first_name='Jon',
                                       last_name='Doe',
                                       email='1212'),
                             headers=self.token)
     self.assertIn('BadRequestError', err.exception.__repr__())
예제 #10
0
    def test_get_a_grade_for_a_student_in_a_course(self):
        set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)
        set_test_database_data('grades', DataGrade.TEST_GRADE_1_STUDENT_1)
        set_test_database_data('grades', DataGrade.TEST_GRADE_2_STUDENT_1)
        set_test_database_data('grades', DataGrade.TEST_GRADE_3_STUDENT_1)

        res = self.app.get('/api/v1/grade/student/1/course/2', headers=self.token)
        data = json.loads(res.data.decode('utf-8'))
        self.assertEqual(200, res.status_code)
        self.assertEqual(1, len(data))
예제 #11
0
    def test_get_all_grades_for_one_course(self):
        set_test_database_data('grades', DataGrade.TEST_GRADE_1_STUDENT_1)
        set_test_database_data('grades', DataGrade.TEST_GRADE_2_STUDENT_1)
        set_test_database_data('grades', DataGrade.TEST_GRADE_3_STUDENT_1)
        set_test_database_data('grades', DataGrade.TEST_GRADE_1_STUDENT_2)
        set_test_database_data('grades', DataGrade.TEST_GRADE_1_STUDENT_3)

        res = self.app.get('/api/v1/grade/course/3', headers=self.token)
        data = json.loads(res.data.decode('utf-8'))
        self.assertEqual(200, res.status_code)
        self.assertEqual(3, len(data))
예제 #12
0
    def test_add_students_to_course(self):
        set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
        set_test_database_data('students', DataStudent.TEST_STUDENT_2_INS)
        set_test_database_data('students', DataStudent.TEST_STUDENT_3_INS)
        set_test_database_data('teachers', DataTeacher.TEST_TEACHER_1_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)

        res = self.app.put('/api/v1/course/1',
                           data=dict(student_ids="3"),
                           headers=self.token)
        self.assertEqual(204, res.status_code)
예제 #13
0
    def test_create_new_course_teacher_not_exist(self):
        set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
        set_test_database_data('students', DataStudent.TEST_STUDENT_2_INS)

        with self.assertRaises(EntityNotFound) as err:
            res = self.app.post('/api/v1/course',
                                data=dict(name='Super Course',
                                          teacher_id='1',
                                          student_ids="1, 2"),
                                headers=self.token)
        self.assertIn('EntityNotFound', err.exception.__repr__())
예제 #14
0
    def test_get_a_grade_for_a_non_existent_course(self):
        set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)
        set_test_database_data('grades', DataGrade.TEST_GRADE_1_STUDENT_1)
        set_test_database_data('grades', DataGrade.TEST_GRADE_2_STUDENT_1)
        set_test_database_data('grades', DataGrade.TEST_GRADE_3_STUDENT_1)

        with self.assertRaises(EntityNotFound) as err:
            res = self.app.get('/api/v1/grade/course/999', headers=self.token)
        self.assertIn('EntityNotFound', err.exception.__repr__())
        self.assertIn('999', err.exception.__repr__())
        self.assertIn('course_entity_id', err.exception.__repr__())
        self.assertNotIn('student_entity_id', err.exception.__repr__())
예제 #15
0
    def test_add_non_existent_students_to_course(self):
        set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
        set_test_database_data('students', DataStudent.TEST_STUDENT_2_INS)
        set_test_database_data('teachers', DataTeacher.TEST_TEACHER_1_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)

        with self.assertRaises(EntityNotFound) as err:
            res = self.app.put('/api/v1/course/1',
                               data=dict(student_ids="3"),
                               headers=self.token)
        self.assertIn('EntityNotFound', err.exception.__repr__())
        self.assertIn('[3]', err.exception.__repr__())
예제 #16
0
    def test_update_a_grade(self):
        set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)
        set_test_database_data('grades', DataGrade.TEST_GRADE_1_STUDENT_1)

        res = self.app.put('/api/v1/grade/student/1/course/1/100', headers=self.token)
        self.assertEqual(204, res.status_code)
예제 #17
0
    def test_create_an_existing_grade(self):
        set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)
        set_test_database_data('grades', DataGrade.TEST_GRADE_1_STUDENT_1)

        with self.assertRaises(EntityAlreadyExistsError) as err:
            res = self.app.post('/api/v1/grade/student/1/course/1/100', headers=self.token)
        self.assertIn('EntityAlreadyExistsError', err.exception.__repr__())
예제 #18
0
    def test_create_new_course(self):
        set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
        set_test_database_data('students', DataStudent.TEST_STUDENT_2_INS)
        set_test_database_data('teachers', DataTeacher.TEST_TEACHER_1_INS)

        res = self.app.post('/api/v1/course',
                            data=dict(name='Super Course',
                                      teacher_id='1',
                                      student_ids="1, 2"),
                            headers=self.token)
        data = json.loads(res.data.decode('utf-8'))
        self.assertEqual(201, res.status_code)
        self.assertDictEqual(data, DataCourse.TEST_COURSE_1)
예제 #19
0
 def test_get_teacher(self):
     set_test_database_data('teachers', DataTeacher.TEST_TEACHER_1_INS)
     res = self.app.get('/api/v1/teacher/1', headers=self.token)
     data = json.loads(res.data.decode('utf-8'))
     self.assertEqual(200, res.status_code)
     self.assertDictEqual(data[0], DataTeacher.TEST_TEACHER_1)
예제 #20
0
 def setUpClass(cls):
     super().setUpClass()
     set_test_database_data('users', DataApi.API_TOKEN)
예제 #21
0
    def test_delete_a_grade(self):
        set_test_database_data('grades', DataGrade.TEST_GRADE_1_STUDENT_1)

        res = self.app.delete('/api/v1/grade/student/1/course/1', headers=self.token)
        self.assertEqual(204, res.status_code)
예제 #22
0
    def test_delete_course(self):
        set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)

        res = self.app.delete('/api/v1/course/1', headers=self.token)
        self.assertEqual(204, res.status_code)
예제 #23
0
    def test_calculated_max_students(self):
        set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
        set_test_database_data('students', DataStudent.TEST_STUDENT_2_INS)
        set_test_database_data('students', DataStudent.TEST_STUDENT_3_INS)
        set_test_database_data('teachers', DataTeacher.TEST_TEACHER_1_INS)
        set_test_database_data('teachers', DataTeacher.TEST_TEACHER_2_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_2_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_3_INS)

        res = self.app.get('api/v1/teacher/max_students', headers=self.token)
        self.assertEqual(200, res.status_code)
        data = json.loads(res.data.decode('utf-8'))
        self.assertEqual(data['name'], DataCourse.TEST_COURSE_3_INS['name'])
예제 #24
0
    def test_calculated_highest_avg(self):
        set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
        set_test_database_data('students', DataStudent.TEST_STUDENT_2_INS)
        set_test_database_data('students', DataStudent.TEST_STUDENT_3_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_2_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_3_INS)
        set_test_database_data('grades', DataGrade.TEST_GRADE_1_STUDENT_1)
        set_test_database_data('grades', DataGrade.TEST_GRADE_2_STUDENT_1)
        set_test_database_data('grades', DataGrade.TEST_GRADE_3_STUDENT_1)
        set_test_database_data('grades', DataGrade.TEST_GRADE_1_STUDENT_2)
        set_test_database_data('grades', DataGrade.TEST_GRADE_2_STUDENT_2)

        res = self.app.get('api/v1/student/highest_avg', headers=self.token)
        self.assertEqual(200, res.status_code)
        data = json.loads(res.data.decode('utf-8'))
        self.assertDictEqual(data, DataStudent.TEST_STUDENT_SMARTEST)
예제 #25
0
 def test_update_student_without_id(self):
     set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
     res = self.app.put('/api/v1/student',
                        data=dict(first_name='Jon', email='*****@*****.**'),
                        headers=self.token)
     self.assertEqual(501, res.status_code)
예제 #26
0
 def test_get_course(self):
     set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)
     res = self.app.get('/api/v1/course/1', headers=self.token)
     data = json.loads(res.data.decode('utf-8'))
     self.assertEqual(200, res.status_code)
     self.assertDictEqual(data[0], DataCourse.TEST_COURSE_1)
예제 #27
0
    def test_create_a_new_grade(self):
        set_test_database_data('students', DataStudent.TEST_STUDENT_1_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)

        res = self.app.post('/api/v1/grade/student/1/course/1/100', headers=self.token)
        self.assertEqual(201, res.status_code)
예제 #28
0
 def test_get_non_existent_teacher(self):
     set_test_database_data('teachers', DataTeacher.TEST_TEACHER_1_INS)
     with self.assertRaises(EntityNotFound) as err:
         res = self.app.get('/api/v1/teacher/9999', headers=self.token)
     self.assertIn('EntityNotFound', err.exception.__repr__())
예제 #29
0
 def test_update_teacher_without_id(self):
     set_test_database_data('teachers', DataTeacher.TEST_TEACHER_1_INS)
     res = self.app.put('/api/v1/teacher',
                        data=dict(first_name='Jon', email='*****@*****.**'),
                        headers=self.token)
     self.assertEqual(501, res.status_code)
예제 #30
0
    def test_calculated_easiest_class(self):
        set_test_database_data('courses', DataCourse.TEST_COURSE_1_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_2_INS)
        set_test_database_data('courses', DataCourse.TEST_COURSE_3_INS)
        set_test_database_data('grades', DataGrade.TEST_GRADE_1_STUDENT_1)
        set_test_database_data('grades', DataGrade.TEST_GRADE_2_STUDENT_1)
        set_test_database_data('grades', DataGrade.TEST_GRADE_3_STUDENT_1)
        set_test_database_data('grades', DataGrade.TEST_GRADE_1_STUDENT_2)
        set_test_database_data('grades', DataGrade.TEST_GRADE_2_STUDENT_2)

        res = self.app.get('api/v1/course/easiest', headers=self.token)
        self.assertEqual(200, res.status_code)
        data = json.loads(res.data.decode('utf-8'))
        self.assertDictEqual(data, DataCourse.TEST_COURSE_EASIEST)