def assertSummaryAndTrendsValid(self, include_forum_activity, expected_trends): switch, _created = Switch.objects.get_or_create( name='show_engagement_forum_activity') switch.active = include_forum_activity switch.save() summary, trends = self.presenter.get_summary_and_trend_data() # Validate the trends self.assertEqual(len(expected_trends), len(trends)) self.assertDictEqual(expected_trends[0], trends[0]) self.assertDictEqual(expected_trends[1], trends[1]) # Validate the summary expected_summary = mock_course_activity()[1] del expected_summary['created'] del expected_summary['interval_end'] if not include_forum_activity: del expected_summary[AT.POSTED_FORUM] expected_summary['last_updated'] = CREATED_DATETIME self.assertDictEqual(summary, expected_summary)
def assertSummaryAndTrendsValid(self, include_forum_activity, expected_trends): self.toggle_switch('show_engagement_forum_activity', include_forum_activity) summary, trends = self.presenter.get_summary_and_trend_data() # Validate the trends self.assertEqual(len(expected_trends), len(trends)) self.assertDictEqual(expected_trends[0], trends[0]) self.assertDictEqual(expected_trends[1], trends[1]) # Validate the summary expected_summary = utils.mock_course_activity()[1] del expected_summary['created'] del expected_summary['interval_end'] del expected_summary['course_id'] expected_summary.update({ 'attempted_problem_percent_str': u"3.0% of current students", 'posted_forum_percent_str': "--", 'played_video_percent_str': u"10.0% of current students", 'any_percent_str': u"< 1% of current students", }) if not include_forum_activity: del expected_summary[AT.POSTED_FORUM] del expected_summary['posted_forum_percent_str'] expected_summary['last_updated'] = utils.CREATED_DATETIME self.assertDictEqual(summary, expected_summary)
def test_get_summary_and_trend_data_small(self, mock_activity): api_trend = [mock_course_activity()[-1]] mock_activity.return_value = api_trend self.assertSummaryAndTrendsValid(False, self.get_expected_trends_small(False)) self.assertSummaryAndTrendsValid(True, self.get_expected_trends_small(True))
def assertSummaryAndTrendsValid(self, include_forum_activity, expected_trends): self.toggle_switch('show_engagement_forum_activity', include_forum_activity) summary, trends = self.presenter.get_summary_and_trend_data() # Validate the trends self.assertEqual(len(expected_trends), len(trends)) self.assertDictEqual(expected_trends[0], trends[0]) self.assertDictEqual(expected_trends[1], trends[1]) # Validate the summary expected_summary = utils.mock_course_activity()[1] del expected_summary['created'] del expected_summary['interval_end'] del expected_summary['course_id'] if not include_forum_activity: del expected_summary[AT.POSTED_FORUM] expected_summary['last_updated'] = utils.CREATED_DATETIME self.assertDictEqual(summary, expected_summary)
def assertSummaryAndTrendsValid(self, include_forum_activity, expected_trends): switch, _created = Switch.objects.get_or_create(name='show_engagement_forum_activity') switch.active = include_forum_activity switch.save() summary, trends = self.presenter.get_summary_and_trend_data() # Validate the trends self.assertEqual(len(expected_trends), len(trends)) self.assertDictEqual(expected_trends[0], trends[0]) self.assertDictEqual(expected_trends[1], trends[1]) # Validate the summary expected_summary = mock_course_activity()[1] del expected_summary['created'] del expected_summary['interval_end'] if not include_forum_activity: del expected_summary[AT.POSTED_FORUM] expected_summary['last_updated'] = CREATED_DATETIME self.assertDictEqual(summary, expected_summary)
def test_authorization(self): with mock.patch.object(analyticsclient.course.Course, 'activity', return_value=mock_course_activity()): super(CourseEngagementViewTestMixin, self).test_authorization()
def test_get_summary_and_trend_data_small(self, mock_activity): api_trend = [utils.mock_course_activity()[-1]] mock_activity.return_value = api_trend self.assertSummaryAndTrendsValid(False, self.get_expected_trends_small(False)) self.assertSummaryAndTrendsValid(True, self.get_expected_trends_small(True))
def get_mock_data(self, course_id): return utils.mock_course_activity(course_id)