def test_factory(self): resource = CourseResourceFactory() assert resource.uuid is not None assert resource.title != "" assert resource.details != "" assert resource.course is not None
def test_course_copy_tasks_resources(self): """Copying a course includes the tasks, graded work, and resources.""" user = self.make_user() grade_level = GradeLevelFactory(school_year__school=user.school) course_to_copy = CourseFactory(grade_levels=[grade_level]) CourseTaskFactory(course=course_to_copy) graded_task = CourseTaskFactory(course=course_to_copy) GradedWorkFactory(course_task=graded_task) CourseResourceFactory(course=course_to_copy) data = { "name": "Course name", "wednesday": "on", "friday": "on", "grade_levels": str(grade_level.id), "default_task_duration": 45, } url = self.reverse("courses:create") url += f"?copy_from={course_to_copy.id}" with self.login(user): self.post(url, data=data) assert Course.objects.count() == 2 copied_course = Course.objects.last() assert copied_course.id != course_to_copy.id assert CourseTask.objects.filter(course=copied_course).count() == 2 new_graded_task = CourseTask.objects.filter(course=copied_course).last() assert hasattr(new_graded_task, "graded_work") assert CourseResource.objects.filter(course=copied_course).count() == 1
def test_get_other_user(self): """A user may not edit another user's resource.""" user = self.make_user() resource = CourseResourceFactory() with self.login(user): response = self.get("courses:resource_edit", pk=resource.id) self.response_404(response)
def test_post_other_user(self): """A user may not delete another user's resource.""" user = self.make_user() course = CourseFactory() resource = CourseResourceFactory(course=course) with self.login(user): response = self.post("courses:resource_delete", pk=resource.id) self.response_404(response)
def test_get(self): user = self.make_user() grade_level = GradeLevelFactory(school_year__school=user.school) resource = CourseResourceFactory(course__grade_levels=[grade_level]) with self.login(user): self.get_check_200("courses:resource_edit", pk=resource.id) assert not self.get_context("create") assert self.get_context("course") == resource.course
def test_post(self): user = self.make_user() grade_level = GradeLevelFactory(school_year__school=user.school) course = CourseFactory(grade_levels=[grade_level]) resource = CourseResourceFactory(course=course) with self.login(user): response = self.post("courses:resource_delete", pk=resource.id) assert CourseResource.objects.count() == 0 self.response_302(response) assert response.get("Location") == self.reverse("courses:detail", pk=course.id)
def test_get(self): user = self.make_user() enrollment = EnrollmentFactory( grade_level__school_year__school=user.school) course = CourseFactory(grade_levels=[enrollment.grade_level]) resource = CourseResourceFactory(course=course) with self.login(user): self.get_check_200("reports:resource", pk=enrollment.id) assert self.get_context("grade_level") == enrollment.grade_level assert self.get_context( "school_year") == enrollment.grade_level.school_year assert self.get_context("student") == enrollment.student assert list(self.get_context("resources")) == [resource]
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
def test_post(self): user = self.make_user() grade_level = GradeLevelFactory(school_year__school=user.school) resource = CourseResourceFactory(course__grade_levels=[grade_level]) data = { "course": str(resource.course.id), "title": "Charlotte's Web", "details": "That's some pig.", } with self.login(user): response = self.post("courses:resource_edit", pk=resource.id, data=data) assert CourseResource.objects.count() == 1 resource = CourseResource.objects.get(course=resource.course) assert resource.title == data["title"] assert resource.details == data["details"] self.response_302(response) assert response.get("Location") == self.reverse( "courses:detail", pk=resource.course.id )
def test_unauthenticated_access(self): resource = CourseResourceFactory() self.assertLoginRequired("courses:resource_delete", pk=resource.id)
def test_str(self): resource = CourseResourceFactory() assert str(resource) == resource.title
def test_unauthenticated_access(self): resource = CourseResourceFactory() self.assertLoginRequired("courses:resource_edit", uuid=resource.uuid)