def test_course_id_string(self): """ Make sure we can pass a course_id (string) and get back correct results as well """ self.enroll() # set course requirements set_credit_requirements(self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ]) # mark the grade as satisfied self.service.set_credit_requirement_status(self.user.id, str(self.course.id), 'grade', 'grade') credit_state = self.service.get_credit_state(self.user.id, str(self.course.id)) assert credit_state is not None assert credit_state['enrollment_mode'] == 'verified' assert credit_state['profile_fullname'] == 'Foo Bar' assert len(credit_state['credit_requirement_status']) == 1 assert credit_state['credit_requirement_status'][0]['name'] == 'grade' assert credit_state['credit_requirement_status'][0][ 'status'] == 'satisfied'
def test_invalid_user(self): """ Try removing requirement status with a invalid user_id """ # set course requirements set_credit_requirements(self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ]) # mark the grade as satisfied retval = self.service.set_credit_requirement_status( # lint-amnesty, pylint: disable=assignment-from-none self.user.id, self.course.id, 'grade', 'grade') assert retval is None # remove the requirement status with the invalid user id retval = self.service.remove_credit_requirement_status( # lint-amnesty, pylint: disable=assignment-from-none 0, self.course.id, 'grade', 'grade') assert retval is None
def test_set_status_non_verified_enrollment(self, mode): """ Test that we can still try to update a credit status but return quickly if user has non-credit eligible enrollment. """ self.enroll(mode=mode) # set course requirements set_credit_requirements(self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ]) # this should be a no-op self.service.set_credit_requirement_status(self.user.id, self.course.id, 'grade', 'grade') # Verify credit requirement status for user in the course should be None. credit_state = self.service.get_credit_state(self.user.id, self.course.id) assert credit_state is not None assert credit_state['enrollment_mode'] == mode assert len(credit_state['credit_requirement_status']) == 1 assert credit_state['credit_requirement_status'][0]['status'] is None assert credit_state['credit_requirement_status'][0][ 'status_date'] is None
def test_invalid_user(self): """ Try removing requirement status with a invalid user_id """ # set course requirements set_credit_requirements(self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ]) # mark the grade as satisfied retval = self.service.set_credit_requirement_status( self.user.id, self.course.id, 'grade', 'grade') self.assertIsNone(retval) # remove the requirement status with the invalid user id retval = self.service.remove_credit_requirement_status( 0, self.course.id, 'grade', 'grade') self.assertIsNone(retval)
def test_bad_user(self): """ Try setting requirements status with a bad user_id """ # set course requirements set_credit_requirements( self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ] ) # mark the grade as satisfied retval = self.service.set_credit_requirement_status( 0, self.course.id, 'grade', 'grade' ) self.assertIsNone(retval)
def test_remove_credit_requirement_status(self): """ Happy path when deleting the requirement status. """ self.assertTrue(self.service.is_credit_course(self.course.id)) self.enroll() # set course requirements set_credit_requirements( self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ] ) # mark the grade as satisfied self.service.set_credit_requirement_status( self.user.id, self.course.id, 'grade', 'grade' ) # now the status should be "satisfied" when looking at the credit_requirement_status list credit_state = self.service.get_credit_state(self.user.id, self.course.id) self.assertEqual(credit_state['credit_requirement_status'][0]['status'], "satisfied") # remove the requirement status. self.service.remove_credit_requirement_status( self.user.id, self.course.id, 'grade', 'grade' ) # now the status should be None when looking at the credit_requirement_status list credit_state = self.service.get_credit_state(self.user.id, self.course.id) self.assertEqual(credit_state['credit_requirement_status'][0]['status'], None)
def test_remove_credit_requirement_status(self): """ Happy path when deleting the requirement status. """ self.assertTrue(self.service.is_credit_course(self.course.id)) CourseEnrollment.enroll(self.user, self.course.id) # set course requirements set_credit_requirements( self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ] ) # mark the grade as satisfied self.service.set_credit_requirement_status( self.user.id, self.course.id, 'grade', 'grade' ) # now the status should be "satisfied" when looking at the credit_requirement_status list credit_state = self.service.get_credit_state(self.user.id, self.course.id) self.assertEqual(credit_state['credit_requirement_status'][0]['status'], "satisfied") # remove the requirement status. self.service.remove_credit_requirement_status( self.user.id, self.course.id, 'grade', 'grade' ) # now the status should be None when looking at the credit_requirement_status list credit_state = self.service.get_credit_state(self.user.id, self.course.id) self.assertEqual(credit_state['credit_requirement_status'][0]['status'], None)
def test_get_and_set_credit_state(self): """ Happy path through the service """ self.assertTrue(self.service.is_credit_course(self.course.id)) self.enroll() # set course requirements set_credit_requirements( self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ] ) # mark the grade as satisfied self.service.set_credit_requirement_status( self.user.id, self.course.id, 'grade', 'grade' ) credit_state = self.service.get_credit_state(self.user.id, self.course.id) self.assertIsNotNone(credit_state) self.assertTrue(credit_state['is_credit_course']) self.assertEqual(credit_state['enrollment_mode'], 'honor') self.assertEqual(credit_state['profile_fullname'], 'Foo Bar') self.assertEqual(len(credit_state['credit_requirement_status']), 1) self.assertEqual(credit_state['credit_requirement_status'][0]['name'], 'grade') self.assertEqual(credit_state['credit_requirement_status'][0]['status'], 'satisfied')
def test_get_and_set_credit_state(self): """ Happy path through the service """ self.assertTrue(self.service.is_credit_course(self.course.id)) CourseEnrollment.enroll(self.user, self.course.id) # set course requirements set_credit_requirements( self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ] ) # mark the grade as satisfied self.service.set_credit_requirement_status( self.user.id, self.course.id, 'grade', 'grade' ) credit_state = self.service.get_credit_state(self.user.id, self.course.id) self.assertIsNotNone(credit_state) self.assertTrue(credit_state['is_credit_course']) self.assertEqual(credit_state['enrollment_mode'], 'honor') self.assertEqual(credit_state['profile_fullname'], 'Foo Bar') self.assertEqual(len(credit_state['credit_requirement_status']), 1) self.assertEqual(credit_state['credit_requirement_status'][0]['name'], 'grade') self.assertEqual(credit_state['credit_requirement_status'][0]['status'], 'satisfied')
def test_bad_user(self): """ Try setting requirements status with a bad user_id """ # set course requirements set_credit_requirements(self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ]) # mark the grade as satisfied retval = self.service.set_credit_requirement_status( # lint-amnesty, pylint: disable=assignment-from-none 0, self.course.id, 'grade', 'grade') self.assertIsNone(retval)
def test_course_id_string(self): """ Make sure we can pass a course_id (string) and get back correct results as well """ CourseEnrollment.enroll(self.user, self.course.id) # set course requirements set_credit_requirements( self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ] ) # mark the grade as satisfied self.service.set_credit_requirement_status( self.user.id, unicode(self.course.id), 'grade', 'grade' ) credit_state = self.service.get_credit_state(self.user.id, unicode(self.course.id)) self.assertIsNotNone(credit_state) self.assertEqual(credit_state['enrollment_mode'], 'honor') self.assertEqual(credit_state['profile_fullname'], 'Foo Bar') self.assertEqual(len(credit_state['credit_requirement_status']), 1) self.assertEqual(credit_state['credit_requirement_status'][0]['name'], 'grade') self.assertEqual(credit_state['credit_requirement_status'][0]['status'], 'satisfied')
def test_course_id_string(self): """ Make sure we can pass a course_id (string) and get back correct results as well """ CourseEnrollment.enroll(self.user, self.course.id) # set course requirements set_credit_requirements( self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ] ) # mark the grade as satisfied self.service.set_credit_requirement_status( self.user.id, unicode(self.course.id), 'grade', 'grade' ) credit_state = self.service.get_credit_state(self.user.id, unicode(self.course.id)) self.assertIsNotNone(credit_state) self.assertEqual(credit_state['enrollment_mode'], 'honor') self.assertEqual(credit_state['profile_fullname'], 'Foo Bar') self.assertEqual(len(credit_state['credit_requirement_status']), 1) self.assertEqual(credit_state['credit_requirement_status'][0]['name'], 'grade') self.assertEqual(credit_state['credit_requirement_status'][0]['status'], 'satisfied')
def test_get_and_set_credit_state(self): """ Happy path through the service """ assert self.service.is_credit_course(self.course.id) self.enroll() # set course requirements set_credit_requirements(self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ]) # mark the grade as satisfied self.service.set_credit_requirement_status(self.user.id, self.course.id, 'grade', 'grade') credit_state = self.service.get_credit_state(self.user.id, self.course.id) assert credit_state is not None assert credit_state['is_credit_course'] assert credit_state['enrollment_mode'] == 'verified' assert credit_state['profile_fullname'] == 'Foo Bar' assert len(credit_state['credit_requirement_status']) == 1 assert credit_state['credit_requirement_status'][0]['name'] == 'grade' assert credit_state['credit_requirement_status'][0][ 'status'] == 'satisfied'
def test_get_and_set_credit_state(self): """ Happy path through the service """ CourseEnrollment.enroll(self.user, self.course.id) # set course requirements set_credit_requirements( self.course.id, [{"namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": {"min_grade": 0.8}}], ) # mark the grade as satisfied self.service.set_credit_requirement_status(self.user.id, self.course.id, "grade", "grade") credit_state = self.service.get_credit_state(self.user.id, self.course.id) self.assertIsNotNone(credit_state) self.assertEqual(credit_state["enrollment_mode"], "honor") self.assertEqual(credit_state["profile_fullname"], "Foo Bar") self.assertEqual(len(credit_state["credit_requirement_status"]), 1) self.assertEqual(credit_state["credit_requirement_status"][0]["name"], "grade") self.assertEqual(credit_state["credit_requirement_status"][0]["status"], "satisfied")
def test_course_id_string(self): """ Make sure we can pass a course_id (string) and get back correct results as well """ CourseEnrollment.enroll(self.user, self.course.id) # set course requirements set_credit_requirements( self.course.id, [{"namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": {"min_grade": 0.8}}], ) # mark the grade as satisfied self.service.set_credit_requirement_status(self.user.id, unicode(self.course.id), "grade", "grade") credit_state = self.service.get_credit_state(self.user.id, unicode(self.course.id)) self.assertIsNotNone(credit_state) self.assertEqual(credit_state["enrollment_mode"], "honor") self.assertEqual(credit_state["profile_fullname"], "Foo Bar") self.assertEqual(len(credit_state["credit_requirement_status"]), 1) self.assertEqual(credit_state["credit_requirement_status"][0]["name"], "grade") self.assertEqual(credit_state["credit_requirement_status"][0]["status"], "satisfied")
def test_set_status_non_verified_enrollment(self, mode): """ Test that we can still try to update a credit status but return quickly if user has non-credit eligible enrollment. """ self.enroll(mode=mode) # set course requirements set_credit_requirements( self.course.id, [ { "namespace": "grade", "name": "grade", "display_name": "Grade", "criteria": { "min_grade": 0.8 }, }, ] ) # this should be a no-op self.service.set_credit_requirement_status( self.user.id, self.course.id, 'grade', 'grade' ) # Verify credit requirement status for user in the course should be None. credit_state = self.service.get_credit_state(self.user.id, self.course.id) self.assertIsNotNone(credit_state) self.assertEqual(credit_state['enrollment_mode'], mode) self.assertEqual(len(credit_state['credit_requirement_status']), 1) self.assertIsNone(credit_state['credit_requirement_status'][0]['status']) self.assertIsNone(credit_state['credit_requirement_status'][0]['status_date'])