Пример #1
0
 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]
Пример #2
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
Пример #3
0
 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
Пример #4
0
 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
Пример #5
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]
Пример #6
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