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)