Exemple #1
0
    def test_only_students_courses(self):
        """Only courses from the student are included."""
        user = self.make_user()
        enrollment = EnrollmentFactory(
            grade_level__school_year__school=user.school)
        course = CourseFactory(grade_levels=[enrollment.grade_level])
        grade = GradeFactory(
            score=50,
            student=enrollment.student,
            graded_work__course_task__course=course,
        )
        grade_2 = GradeFactory(
            score=100,
            student=enrollment.student,
            graded_work__course_task__course=course,
        )
        GradeFactory(graded_work__course_task__course__grade_levels=[
            enrollment.grade_level
        ])

        with self.login(user):
            self.get_check_200("reports:progress", pk=enrollment.id)

        assert self.get_context("courses") == [{
            "course":
            grade.graded_work.course_task.course,
            "grades": [grade, grade_2],
            "course_average":
            75,
        }]
Exemple #2
0
    def test_multiple_averages(self):
        """The average for each course is calculated."""
        user = self.make_user()
        enrollment = EnrollmentFactory(
            grade_level__school_year__school=user.school)
        GradeFactory(
            score=50,
            student=enrollment.student,
            graded_work__course_task__course__grade_levels=[
                enrollment.grade_level
            ],
        )
        GradeFactory(
            score=100,
            student=enrollment.student,
            graded_work__course_task__course__grade_levels=[
                enrollment.grade_level
            ],
        )
        GradeFactory(graded_work__course_task__course__grade_levels=[
            enrollment.grade_level
        ])

        with self.login(user):
            self.get_check_200("reports:progress", pk=enrollment.id)

        assert self.get_context("courses")[0]["course_average"] == 50
        assert self.get_context("courses")[1]["course_average"] == 100
Exemple #3
0
    def test_course_tasks_context(self):
        """All the task details of an enrolled student are in the context."""
        user = self.make_user()
        grade_level = GradeLevelFactory(school_year__school=user.school)
        course = CourseFactory(grade_levels=[grade_level])
        task = CourseTaskFactory(course=course)
        enrollment = EnrollmentFactory(grade_level=grade_level)
        work = CourseworkFactory(student=enrollment.student, course_task=task)
        grade = GradeFactory(student=enrollment.student, graded_work__course_task=task)
        url = self.reverse("courses:detail", pk=course.id) + "?completed_tasks=1"

        with self.login(user):
            self.get_check_200(url)

        assert self.get_context("task_details") == [
            {
                "number": 1,
                "task": task,
                "complete": True,
                "student_details": [
                    {
                        "student": enrollment.student,
                        "assigned": True,
                        "coursework": work,
                        "grade": grade,
                        "planned_date": None,
                    }
                ],
            }
        ]
    def test_fetch_graded_work(self):
        user = self.make_user()
        enrollment = EnrollmentFactory(
            student__school=user.school,
            grade_level__school_year__school=user.school)
        student = enrollment.student
        grade_level = enrollment.grade_level
        course = CourseFactory(grade_levels=[grade_level])
        graded_work_1 = GradedWorkFactory(course_task__course=course)
        CourseworkFactory(student=student,
                          course_task=graded_work_1.course_task)
        GradeFactory(student=student, graded_work=graded_work_1)
        graded_work_2 = GradedWorkFactory(course_task__course=course)
        CourseworkFactory(student=student,
                          course_task=graded_work_2.course_task)

        with self.login(user):
            self.get("students:grade")

        assert self.get_context("work_to_grade") == [{
            "student":
            student,
            "graded_work": [graded_work_2]
        }]
        assert self.get_context("has_work_to_grade")
Exemple #5
0
    def test_course_filter(self):
        """The report can filter to an individual course."""
        user = self.make_user()
        enrollment = EnrollmentFactory(
            grade_level__school_year__school=user.school)
        student = enrollment.student
        course_1 = CourseFactory(grade_levels=[enrollment.grade_level])
        course_2 = CourseFactory(grade_levels=[enrollment.grade_level])
        GradeFactory(student=student,
                     graded_work__course_task__course=course_1)
        GradeFactory(student=student,
                     graded_work__course_task__course=course_2)
        url = self.reverse("reports:progress", pk=enrollment.id)
        url += f"?course={course_1.id}"

        with self.login(user):
            self.get_check_200(url)

        assert len(self.get_context("courses")) == 1
    def test_only_students_grades(self):
        """Only grades from the student are included."""
        user = self.make_user()
        enrollment = EnrollmentFactory(grade_level__school_year__school=user.school)
        grade = GradeFactory(
            student=enrollment.student,
            graded_work__course_task__course__grade_levels=[enrollment.grade_level],
        )
        GradeFactory(
            graded_work__course_task__course__grade_levels=[enrollment.grade_level]
        )

        with self.login(user):
            self.get_check_200(
                "reports:progress",
                uuid=enrollment.grade_level.school_year.uuid,
                student_uuid=enrollment.student.uuid,
            )

        assert list(self.get_context("grades")) == [grade]
Exemple #7
0
    def test_get(self):
        user = self.make_user()
        grade_level = GradeLevelFactory(school_year__school=user.school)
        course = CourseFactory(grade_levels=[grade_level])
        task = CourseTaskFactory(course=course)
        GradeFactory(graded_work__course_task=task)
        CourseworkFactory(course_task=task)
        CourseResourceFactory(course=course)

        with self.login(user):
            self.get_check_200("courses:delete", pk=course.id)

        assert self.get_context("tasks_count") == 1
        assert self.get_context("grades_count") == 1
        assert self.get_context("coursework_count") == 1
        assert self.get_context("course_resources_count") == 1
Exemple #8
0
    def test_fetch_graded_work(self):
        user = self.make_user()
        student = StudentFactory(school=user.school)
        grade_level = GradeLevelFactory(school_year__school=user.school)
        course = CourseFactory(grade_levels=[grade_level])
        graded_work_1 = GradedWorkFactory(course_task__course=course)
        CourseworkFactory(student=student, course_task=graded_work_1.course_task)
        GradeFactory(student=student, graded_work=graded_work_1)
        graded_work_2 = GradedWorkFactory(course_task__course=course)
        CourseworkFactory(student=student, course_task=graded_work_2.course_task)

        with self.login(user):
            self.get("students:grade")

        self.assertContext(
            "work_to_grade", [{"student": student, "graded_work": [graded_work_2]}]
        )
Exemple #9
0
    def test_no_grade_when_already_graded(self):
        today = timezone.now().date()
        user = self.make_user()
        school = user.school
        student = StudentFactory(school=school)
        grade_level = GradeLevelFactory(school_year__school=school)
        grade = GradeFactory(
            student=student,
            graded_work__course_task__course__grade_levels=[grade_level],
        )
        data = {
            "completed_date": "{:%Y-%m-%d}".format(today),
            f"task-{student.id}-{grade.graded_work.course_task.id}": "on",
        }

        with self.login(user):
            response = self.post("core:daily", data=data)

        self.response_302(response)
        assert response.get("Location") == self.reverse("core:daily")
Exemple #10
0
    def test_save_update(self):
        """The form updates a grade."""
        user = self.make_user()
        student = StudentFactory(school=user.school)
        grade_level = GradeLevelFactory(school_year__school=user.school)
        EnrollmentFactory(student=student, grade_level=grade_level)
        course = CourseFactory(grade_levels=[grade_level])
        graded_work = GradedWorkFactory(course_task__course=course)
        GradeFactory(student=student, graded_work=graded_work)
        data = {
            "student": str(student.id),
            "graded_work": str(graded_work.id),
            "score": "100",
        }
        form = GradeForm(data=data)
        form.is_valid()

        form.save()

        assert (Grade.objects.filter(student=student,
                                     graded_work=graded_work).count() == 1)
Exemple #11
0
    def test_only_students_coursework(self):
        """Only coursework from the student is included.

        Coursework is added to the grades to display the completed dates.
        It is possible for a user to add a grade without the student finishing the task
        so the coursework can be None.
        """
        user = self.make_user()
        enrollment = EnrollmentFactory(
            grade_level__school_year__school=user.school)
        grade = GradeFactory(
            student=enrollment.student,
            graded_work__course_task__course__grade_levels=[
                enrollment.grade_level
            ],
        )
        CourseworkFactory(course_task=grade.graded_work.course_task)

        with self.login(user):
            self.get_check_200("reports:progress", pk=enrollment.id)

        assert self.get_context("courses")[0]["grades"][0].coursework is None
    def test_factory(self):
        grade = GradeFactory()

        assert grade is not None
Exemple #13
0
    def test_has_uuid(self):
        grade_uuid = uuid.uuid4()
        grade = GradeFactory(uuid=grade_uuid)

        self.assertEqual(grade.uuid, grade_uuid)
    def test_has_uuid(self):
        grade_uuid = uuid.uuid4()
        grade = GradeFactory(uuid=grade_uuid)

        assert grade.uuid == grade_uuid
Exemple #15
0
    def test_has_score(self):
        score = 99
        grade = GradeFactory(score=score)

        self.assertEqual(grade.score, score)
    def test_has_student(self):
        student = StudentFactory()
        grade = GradeFactory(student=student)

        assert grade.student == student
Exemple #17
0
    def test_has_student(self):
        student = StudentFactory()
        grade = GradeFactory(student=student)

        self.assertEqual(grade.student, student)
    def test_has_graded_work(self):
        graded_work = GradedWorkFactory()
        grade = GradeFactory(graded_work=graded_work)

        assert grade.graded_work == graded_work
Exemple #19
0
    def test_has_graded_work(self):
        graded_work = GradedWorkFactory()
        grade = GradeFactory(graded_work=graded_work)

        self.assertEqual(grade.graded_work, graded_work)
    def test_has_score(self):
        score = 99
        grade = GradeFactory(score=score)

        assert grade.score == score
Exemple #21
0
    def test_factory(self):
        grade = GradeFactory()

        self.assertIsNotNone(grade)