def test_override_fixture(self, app): mr = MockRows( io.StringIO('canvas_course_id,sis_section_id\n7654320,13131')) with register_mock(queries.get_sis_sections_for_canvas_courses, mr): data = queries.get_sis_sections_for_canvas_courses([7654320]) assert len(data) == 1 assert { 'canvas_course_id': 7654320, 'sis_section_id': 13131 } == data[0]
def test_when_no_data(self, app): mr = MockRows( io.StringIO( 'reference_user_id,sid,canvas_course_id,canvas_user_id,submissions_turned_in' )) with register_mock(queries.get_advisee_submissions_sorted, mr): digested = self.digest_for_user(self.canvas_user_id) assert digested['student']['raw'] is None assert digested['student']['percentile'] is None assert digested['boxPlottable'] is False assert digested['courseDeciles'] is None assert digested['courseMean'] is None
def test_when_no_data(self, app): mr = MockRows( io.StringIO('canvas_user_id,course_id,assignments_submitted')) with register_mock(queries.get_submissions_turned_in_relative_to_user, mr): digested = analytics.assignments_submitted( self.canvas_user_id, self.canvas_course_id, analytics.get_relative_submission_counts(self.canvas_user_id), ) assert digested['student']['raw'] is None assert digested['student']['percentile'] is None assert digested['boxPlottable'] is False assert digested['courseDeciles'] is None assert digested['courseMean'] is None
def test_when_no_data(self, app): exclusive_rows = 'course_id,canvas_user_id,course_scores,last_activity_at,sis_enrollment_status\n' \ '7654321,1,1,1,E' mr = MockRows(io.StringIO(exclusive_rows)) with register_mock(queries.get_canvas_course_scores, mr): digested = analytics.student_analytics(self.canvas_user_id, self.canvas_course_id, self.get_canvas_site_map()) score = digested['currentScore'] assert score['student']['raw'] is None assert score['student']['percentile'] is None assert score['boxPlottable'] is False assert score['courseDeciles'] is None assert score['courseMean'] is None last_activity = digested['lastActivity'] assert last_activity['student']['raw'] is 0
def test_override_fixture(self, app): mr = MockRows( io.StringIO( 'course_id,uid,canvas_user_id,current_score,last_activity_at,sis_enrollment_status\n1,2,3,4,5,F' )) with register_mock(queries.stream_canvas_enrollments, mr): data = queries.stream_canvas_enrollments('2178') assert len(data) == 1 assert { 'course_id': 1, 'uid': '2', 'canvas_user_id': 3, 'current_score': 4, 'last_activity_at': 5, 'sis_enrollment_status': 'F', } == data[0]
def test_small_difference(self, app): """Notices that small difference.""" rows = [ 'canvas_user_id,course_id,submissions_turned_in', ','.join(['9000000', str(self.canvas_course_id), '1']), ','.join( [str(self.canvas_user_id), str(self.canvas_course_id), '3']), ] for i in range(101, 301): rows.append(','.join([str(i), str(self.canvas_course_id), '2'])) mr = MockRows(io.StringIO('\n'.join(rows))) with register_mock(queries.get_submissions_turned_in_relative_to_user, mr): worst = analytics.assignments_submitted( '9000000', self.canvas_course_id, analytics.get_relative_submission_counts('9000000'), ) best = analytics.assignments_submitted( self.canvas_user_id, self.canvas_course_id, analytics.get_relative_submission_counts(self.canvas_user_id), ) median = analytics.assignments_submitted( '101', self.canvas_course_id, analytics.get_relative_submission_counts('101'), ) for digested in [worst, best, median]: assert digested['boxPlottable'] is False assert digested['student']['percentile'] is not None assert worst['displayPercentile'] == '0th' assert worst['student']['raw'] == 1 assert median['displayPercentile'] == '99th' assert median['student']['raw'] == 2 assert median['student']['roundedUpPercentile'] == 99 assert median['student']['percentile'] != 99 assert best['displayPercentile'] == '100th' assert best['student']['raw'] == 3