def test_persistent_grades_not_enabled_on_course(self, default_store, num_mongo_queries, num_sql_queries): with self.store.default_store(default_store): self.set_up_course(enable_persistent_grades=False) with check_mongo_calls(num_mongo_queries): with self.assertNumQueries(num_sql_queries): self._apply_recalculate_subsection_grade() with self.assertRaises(PersistentCourseGrade.DoesNotExist): PersistentCourseGrade.read_course_grade(self.user.id, self.course.id) self.assertEqual(len(PersistentSubsectionGrade.bulk_read_grades(self.user.id, self.course.id)), 0)
def test_persistent_grades_not_enabled_on_course(self, default_store, num_mongo_queries, num_sql_queries): with self.store.default_store(default_store): self.set_up_course(enable_persistent_grades=False) with check_mongo_calls(num_mongo_queries): with self.assertNumQueries(num_sql_queries): self._apply_recalculate_subsection_grade() with self.assertRaises(PersistentCourseGrade.DoesNotExist): PersistentCourseGrade.read_course_grade(self.user.id, self.course.id) self.assertEqual(len(PersistentSubsectionGrade.bulk_read_grades(self.user.id, self.course.id)), 0)
def _assert_grades_absent_for_courses(self, course_keys): """ Assert grades for given courses do not exist. """ for course_key in course_keys: with self.assertRaises(PersistentCourseGrade.DoesNotExist): PersistentCourseGrade.read_course_grade(self.user_ids[0], course_key) for subsection_key in self.subsection_keys_by_course[course_key]: with self.assertRaises(PersistentSubsectionGrade.DoesNotExist): PersistentSubsectionGrade.read_grade(self.user_ids[0], subsection_key)
def _assert_grades_absent_for_courses(self, course_keys, db_table=None): """ Assert grades for given courses do not exist. """ for course_key in course_keys: if db_table == "course" or db_table is None: with self.assertRaises(PersistentCourseGrade.DoesNotExist): PersistentCourseGrade.read_course_grade(self.user_ids[0], course_key) if db_table == "subsection" or db_table is None: for subsection_key in self.subsection_keys_by_course[course_key]: with self.assertRaises(PersistentSubsectionGrade.DoesNotExist): PersistentSubsectionGrade.read_grade(self.user_ids[0], subsection_key)
def _assert_grades_absent_for_courses(self, course_keys, db_table=None): """ Assert grades for given courses do not exist. """ for course_key in course_keys: if db_table == "course" or db_table is None: with self.assertRaises(PersistentCourseGrade.DoesNotExist): PersistentCourseGrade.read_course_grade(self.user_ids[0], course_key) if db_table == "subsection" or db_table is None: for subsection_key in self.subsection_keys_by_course[course_key]: with self.assertRaises(PersistentSubsectionGrade.DoesNotExist): PersistentSubsectionGrade.read_grade(self.user_ids[0], subsection_key)
def _assert_grades_exist_for_courses(self, course_keys): """ Assert grades for given courses exist. """ for course_key in course_keys: self.assertIsNotNone(PersistentCourseGrade.read_course_grade(self.user_ids[0], course_key)) for subsection_key in self.subsection_keys_by_course[course_key]: self.assertIsNotNone(PersistentSubsectionGrade.read_grade(self.user_ids[0], subsection_key))
def test_persistent_grades_enabled_on_course(self, default_store, num_mongo_queries, num_sql_queries): with self.store.default_store(default_store): self.set_up_course(enable_persistent_grades=True) with check_mongo_calls(num_mongo_queries): with self.assertNumQueries(num_sql_queries): self._apply_recalculate_subsection_grade() self.assertIsNotNone(PersistentCourseGrade.read_course_grade(self.user.id, self.course.id)) self.assertGreater(len(PersistentSubsectionGrade.bulk_read_grades(self.user.id, self.course.id)), 0)
def test_persistent_grades_enabled_on_course(self, default_store, num_mongo_queries, num_sql_queries): with self.store.default_store(default_store): self.set_up_course(enable_persistent_grades=True) with check_mongo_calls(num_mongo_queries): with self.assertNumQueries(num_sql_queries): self._apply_recalculate_subsection_grade() self.assertIsNotNone(PersistentCourseGrade.read_course_grade(self.user.id, self.course.id)) self.assertGreater(len(PersistentSubsectionGrade.bulk_read_grades(self.user.id, self.course.id)), 0)
def test_create_and_read_grade(self): created_grade = PersistentCourseGrade.update_or_create_course_grade(**self.params) read_grade = PersistentCourseGrade.read_course_grade(self.params["user_id"], self.params["course_id"]) for param in self.params: if param == u'passed': continue # passed/passed_timestamp takes special handling, and is tested separately self.assertEqual(self.params[param], getattr(created_grade, param)) self.assertIsInstance(created_grade.passed_timestamp, datetime) self.assertEqual(created_grade, read_grade)
def _assert_grades_exist_for_courses(self, course_keys, db_table=None): """ Assert grades for given courses exist. """ for course_key in course_keys: if db_table == "course" or db_table is None: self.assertIsNotNone(PersistentCourseGrade.read_course_grade(self.user_ids[0], course_key)) if db_table == "subsection" or db_table is None: for subsection_key in self.subsection_keys_by_course[course_key]: self.assertIsNotNone(PersistentSubsectionGrade.read_grade(self.user_ids[0], subsection_key))
def _assert_grades_exist_for_courses(self, course_keys, db_table=None): """ Assert grades for given courses exist. """ for course_key in course_keys: if db_table == "course" or db_table is None: self.assertIsNotNone(PersistentCourseGrade.read_course_grade(self.user_ids[0], course_key)) if db_table == "subsection" or db_table is None: for subsection_key in self.subsection_keys_by_course[course_key]: self.assertIsNotNone(PersistentSubsectionGrade.read_grade(self.user_ids[0], subsection_key))
def test_grade_does_not_exist(self): with self.assertRaises(PersistentCourseGrade.DoesNotExist): PersistentCourseGrade.read_course_grade(self.params["user_id"], self.params["course_id"])
def test_create_and_read_grade(self): created_grade = PersistentCourseGrade.update_or_create_course_grade(**self.params) read_grade = PersistentCourseGrade.read_course_grade(self.params["user_id"], self.params["course_id"]) for param in self.params: self.assertEqual(self.params[param], getattr(created_grade, param)) self.assertEqual(created_grade, read_grade)