Exemplo n.º 1
0
    def test_get_daily_average(self):
        u = User(username='******',
                 email='*****@*****.**',
                 role="Student")
        newClass = Class("test", "test", 2019, "French", "Class")
        a = Activity()
        a.populate_table()
        db.session.add_all([u, newClass])
        db.session.commit()
        student_class = Student_Class(u.user_id, "test")
        u.current_class = "test"
        db.session.add(student_class)
        db.session.commit()
        score = 50
        activity_id = 2
        activity_result = Activity_Results(activity_id=activity_id,
                                           score=score,
                                           class_id=u.current_class)
        db.session.add(activity_result)
        db.session.commit()
        student_activity = Student_Activity(
            activity_instance_id=activity_result.activity_instance_id,
            student_id=u.user_id)
        db.session.add(student_activity)
        db.session.commit()
        current_time = datetime.datetime.utcnow()
        one_day_ago = current_time - datetime.timedelta(days=1)
        a = Activity_Results()
        students_daily_averages = a.get_average_in_class_for_every_student(
            time=one_day_ago).all()
        for student in students_daily_averages:
            daily_average = Daily_Average(average=student[0],
                                          date=current_time)
            db.session.add(daily_average)
            db.session.commit()
            student_daily_average = Student_Daily_Average(
                user_id=student[2], average_id=daily_average.average_id)
            class_daily_average = Class_Daily_Average(
                class_id=student[1], average_id=daily_average.average_id)
            db.session.add_all([student_daily_average, class_daily_average])
            db.session.commit()

        class_daily_averages = a.get_average_for_class(time=one_day_ago).all()
        for classx in class_daily_averages:
            daily_class_average = Daily_Class_Average(average=classx[0],
                                                      date=current_time)
            db.session.add(daily_class_average)
            db.session.commit()
            class_average = Class_Average(
                class_id=classx[1], average_id=daily_class_average.average_id)
            db.session.add(class_average)
            db.session.commit()
        student_avgs = u.get_daily_average("test")
        class_avgs = newClass.get_class_daily_averages()

        self.assertEqual(len(student_avgs), 2)
        self.assertEqual(len(student_avgs['averages']), 1)
        self.assertEqual(student_avgs['averages'][0], 50)
        self.assertEqual(len(class_avgs), 2)
        self.assertEqual(len(class_avgs['averages']), 1)
        self.assertEqual(class_avgs['averages'][0], 50)