Exemple #1
0
 def test_get_completed_courses_in_class(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()
     level = Student_Class_Level(user_id=u.user_id,
                                 class_id=u.current_class,
                                 level=1)
     db.session.add(level)
     db.session.commit()
     u.freeze_stats()
     completed_course = u.get_completed_courses_in_class(u.current_class)  #
     self.assertEqual(len(completed_course), 1)
Exemple #2
0
 def test_get_doodles(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()
     doodle = Doodles(foreign_answer="test",
                      foreign_guess="test",
                      location="location")
     db.session.add(doodle)
     db.session.commit()
     student_doodle = Student_Doodles(user_id=u.user_id,
                                      doodle_id=doodle.doodle_id)
     class_doodle = Class_Doodles(class_id=u.current_class,
                                  doodle_id=doodle.doodle_id)
     db.session.add_all([student_doodle, class_doodle])
     db.session.commit()
     doodles = u.get_doodles().all()
     self.assertTrue(len(doodles) == 1)
Exemple #3
0
 def test_get_activity_scores_in_class(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()
     activities = newClass.get_activity_scores_in_class().all()
     students = newClass.get_all_students_in_class().all()
     language = newClass.get_language()
     games_class = newClass.get_games_played_by_class(students)
     self.assertEqual(len(games_class), 2)
     self.assertEqual("French", language)
     self.assertEqual(len(activities), 1)
     self.assertEqual(activities[0], activity_result)
Exemple #4
0
 def test_get_all_students_in_class(self):
     u = User(username='******', email='*****@*****.**', role="Teacher")
     newClass = Class("test", "test", 2019, "French", "Practice")
     db.session.add_all([u, newClass])
     db.session.commit()
     student_class = Student_Class(u.user_id, newClass.class_id)
     db.session.add(student_class)
     db.session.commit()
     students_in_class = newClass.get_all_students_in_class().all()
     self.assertEqual(len(students_in_class), 1)
     self.assertEqual(students_in_class[0], u)
Exemple #5
0
 def test_get_user_practice_areas(self):
     u = User(username='******', email='*****@*****.**', role="Teacher")
     newClass = Class("test", "test", 2019, "French", "Practice")
     db.session.add_all([u, newClass])
     db.session.commit()
     student_class = Student_Class(u.user_id, newClass.class_id)
     db.session.add(student_class)
     db.session.commit()
     teacher_practice_areas = u.get_user_practice_areas().all()
     u = User(username='******',
              email='*****@*****.**',
              role="Student")
     newClass = Class("test1", "test", 2019, "French", "Practice")
     db.session.add_all([u, newClass])
     db.session.commit()
     student_class = Student_Class(u.user_id, "test1")
     u.current_class = "test"
     db.session.add(student_class)
     db.session.commit()
     student_practice_areas = u.get_user_practice_areas().all()
     self.assertGreater(len(student_practice_areas), 0)
     self.assertGreater(len(teacher_practice_areas), 0)
     self.assertEqual(student_practice_areas[0].class_id, "test1")
     self.assertEqual(teacher_practice_areas[0].class_id, "test")
Exemple #6
0
def joinClass():
    form = JoinClassForm()
    if form.validate_on_submit():
        #print(type(form.class_id.data))
        student_class = Student_Class(current_user.user_id, form.class_id.data)
        student_class_level = Student_Class_Level(user_id=current_user.user_id,
                                                  class_id=form.class_id.data,
                                                  level=1)  ##new
        current_user.current_class = form.class_id.data
        db.session.add(student_class)
        db.session.add(student_class_level)
        db.session.commit()
        updateVocabForStudentInClass(current_user.current_class)  #new
        flash('You have successfully joined a class.')
        return redirect(
            url_for('user_management.user', username=current_user.username))
    return render_template('joinclass.html', title='Join a Class', form=form)
Exemple #7
0
 def test_get_student_activities_and_stats(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()
     activities = u.get_activities("test").all()
     avg_score = u.get_student_overall_average_score(activities)
     ranked_activities, pieData = u.rank_activities_for_student(activities)
     highest, lowest, barData = u.get_high_low_average_activities(
         activities)
     studentsInClass = newClass.get_all_students_in_class().all()
     students_with_averages, class_average = newClass.get_students_with_average(
         studentsInClass)
     rank = newClass.get_student_rank_in_class(students_with_averages, u)
     self.assertEqual(avg_score, 50)
     self.assertEqual(len(ranked_activities), 1)
     self.assertEqual(highest, lowest)
     self.assertEqual(len(studentsInClass), 1)
     self.assertEqual(class_average, 50)
     self.assertEqual(rank[0], 1)
     self.assertEqual(rank[1], 1)
     self.assertEqual(len(rank[2]), 1)
     self.assertEqual(len(activities), 1)
Exemple #8
0
def createPracticeArea():
    form = CreateClassForm()
    if form.validate_on_submit():
        print(type(form.class_id.data), type(form.name.data),
              type(form.year.data))
        newClass = Class(form.class_id.data, form.name.data, form.year.data,
                         form.language.data, "Practice")
        db.session.add(newClass)
        db.session.commit()
        current_user.current_class = newClass.class_id
        student_class = Student_Class(current_user.user_id, newClass.class_id)
        db.session.add(student_class)
        db.session.commit()
        flash('You have successfully created a practice area.')
        return redirect(url_for('main.index', username=current_user.username))
    elif request.method == 'GET':
        form.class_id.data = current_user.username + "-PracticeArea"
        form.name.data = current_user.username + "'s " + "Practice Area"
    return render_template('createclass.html',
                           title='Create a Practice Area',
                           form=form)
Exemple #9
0
 def test_class_stats(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()
     studentsInClass = newClass.get_all_students_in_class().all()
     students_with_averages, class_average = newClass.get_students_with_average(
         studentsInClass)
     activities = newClass.get_activity_scores_in_class().all()
     highest_activity, lowest_activity, barData = newClass.get_activity_averages_in_class(
         activities)
     filename, averages = newClass.get_class_distribution_chart(
         students_with_averages)
     self.assertEqual(class_average, 50)
     self.assertEqual(highest_activity[0], "Numbers")
     self.assertEqual(lowest_activity[0], "Numbers")
     self.assertEqual(highest_activity[1], 50)
     self.assertEqual(lowest_activity[1], 50)
     self.assertEqual(len(averages), 1)
     self.assertEqual(averages[0], 50)
Exemple #10
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)