Пример #1
0
    def test_get_weekly_dashboard_stats_when_stats_model_is_none(self):
        exploration = self.save_new_valid_exploration(self.EXP_ID,
                                                      self.owner_id,
                                                      end_state_name='End')
        init_state_name = exploration.init_state_name
        event_services.StartExplorationEventHandler.record(
            self.EXP_ID, 1, init_state_name, self.USER_SESSION_ID, {},
            feconf.PLAY_TYPE_NORMAL)
        self.assertEquals(
            user_services.get_weekly_dashboard_stats(self.owner_id), None)
        self.assertEquals(
            user_services.get_last_week_dashboard_stats(self.owner_id), None)

        with self.swap(user_services, 'get_current_date_as_string',
                       self._mock_get_current_date_as_string):
            user_services.update_dashboard_stats_log(self.owner_id)

        self.assertEquals(
            user_services.get_weekly_dashboard_stats(self.owner_id), [{
                self.CURRENT_DATE_AS_STRING: {
                    'total_plays': 0,
                    'num_ratings': 0,
                    'average_ratings': None
                }
            }])
Пример #2
0
    def test_get_weekly_dashboard_stats(self):
        exploration = self.save_new_valid_exploration(self.EXP_ID,
                                                      self.owner_id,
                                                      end_state_name='End')
        init_state_name = exploration.init_state_name
        event_services.StartExplorationEventHandler.record(
            self.EXP_ID, 1, init_state_name, self.USER_SESSION_ID, {},
            feconf.PLAY_TYPE_NORMAL)
        self.assertEquals(
            user_services.get_weekly_dashboard_stats(self.owner_id), None)
        self.assertEquals(
            user_services.get_last_week_dashboard_stats(self.owner_id), None)

        (user_jobs_continuous_test.ModifiedUserStatsAggregator.
         start_computation())
        self.process_and_flush_pending_tasks()

        self.assertEquals(
            user_services.get_weekly_dashboard_stats(self.owner_id), None)
        self.assertEquals(
            user_services.get_last_week_dashboard_stats(self.owner_id), None)

        with self.swap(user_services, 'get_current_date_as_string',
                       self._mock_get_current_date_as_string):
            user_services.update_dashboard_stats_log(self.owner_id)

        self.assertEquals(
            user_services.get_weekly_dashboard_stats(self.owner_id), [{
                self.CURRENT_DATE_AS_STRING: {
                    'total_plays': 1,
                    'num_ratings': 0,
                    'average_ratings': None
                }
            }])
Пример #3
0
    def test_get_weekly_dashboard_stats(self):
        exploration = self.save_new_valid_exploration(
            self.EXP_ID, self.owner_id, end_state_name='End')
        init_state_name = exploration.init_state_name
        event_services.StartExplorationEventHandler.record(
            self.EXP_ID, 1, init_state_name, self.USER_SESSION_ID, {},
            feconf.PLAY_TYPE_NORMAL)
        self.assertEquals(
            user_services.get_weekly_dashboard_stats(self.owner_id), None)
        self.assertEquals(
            user_services.get_last_week_dashboard_stats(self.owner_id), None)

        (user_jobs_continuous_test.ModifiedUserStatsAggregator
         .start_computation())
        self.process_and_flush_pending_tasks()

        self.assertEquals(
            user_services.get_weekly_dashboard_stats(self.owner_id), None)
        self.assertEquals(
            user_services.get_last_week_dashboard_stats(self.owner_id), None)

        with self.swap(user_services,
                       'get_current_date_as_string',
                       self._mock_get_current_date_as_string):
            user_services.update_dashboard_stats_log(self.owner_id)

        self.assertEquals(
            user_services.get_weekly_dashboard_stats(self.owner_id), [{
                self.CURRENT_DATE_AS_STRING: {
                    'total_plays': 1,
                    'num_ratings': 0,
                    'average_ratings': None
                }
            }])
Пример #4
0
    def test_get_weekly_dashboard_stats_when_stats_model_is_none(self):
        exploration = self.save_new_valid_exploration(
            self.EXP_ID, self.owner_id, end_state_name='End')
        init_state_name = exploration.init_state_name
        event_services.StartExplorationEventHandler.record(
            self.EXP_ID, 1, init_state_name, self.USER_SESSION_ID, {},
            feconf.PLAY_TYPE_NORMAL)
        self.assertEquals(
            user_services.get_weekly_dashboard_stats(self.owner_id), None)
        self.assertEquals(
            user_services.get_last_week_dashboard_stats(self.owner_id), None)

        with self.swap(user_services,
                       'get_current_date_as_string',
                       self._mock_get_current_date_as_string):
            user_services.update_dashboard_stats_log(self.owner_id)

        self.assertEquals(
            user_services.get_weekly_dashboard_stats(self.owner_id), [{
                self.CURRENT_DATE_AS_STRING: {
                    'total_plays': 0,
                    'num_ratings': 0,
                    'average_ratings': None
                }
            }])
Пример #5
0
    def test_cannot_update_dashboard_stats_log_with_invalid_schema_version(
            self):
        model = user_models.UserStatsModel.get_or_create(self.owner_id)
        model.schema_version = 0
        model.update_timestamps()
        model.put()

        self.assertIsNone(user_services.get_user_impact_score(self.owner_id))
        with self.assertRaisesRegexp(
                Exception,
                'Sorry, we can only process v1-v%d dashboard stats schemas at '
                'present.' % feconf.CURRENT_DASHBOARD_STATS_SCHEMA_VERSION):
            user_services.update_dashboard_stats_log(self.owner_id)
Пример #6
0
 def map(item):
     user_services.update_dashboard_stats_log(item.id)
Пример #7
0
 def map(item):
     """Implements the map function for this job."""
     user_services.update_dashboard_stats_log(item.id)
Пример #8
0
 def map(item):
     user_services.update_dashboard_stats_log(item.id)