Ejemplo n.º 1
0
    def test_user_has_not_logged_in_last_n_days(self):
        user_query_1_id = user_query_services.save_new_user_query(
            self.submitter_id, has_not_logged_in_for_n_days=6)
        self._run_one_off_job(user_query_1_id)

        query_1 = user_models.UserQueryModel.get(user_query_1_id)

        # List of users who has not logged_in in last 6 days.
        self.assertItemsEqual(query_1.user_ids, [self.user_e_id])

        user_query_2_id = user_query_services.save_new_user_query(
            self.submitter_id, has_not_logged_in_for_n_days=2)
        self._run_one_off_job(user_query_2_id)

        query_2 = user_models.UserQueryModel.get(user_query_2_id)

        # List of users logged_in in last 2 days.
        qualifying_user_ids = [self.user_a_id, self.user_e_id]
        self.assertItemsEqual(query_2.user_ids, qualifying_user_ids)

        # Test for legacy user.
        user_settings = user_services.get_user_settings(self.user_a_id)
        user_services.update_last_logged_in(user_settings, None)

        user_query_3_id = user_query_services.save_new_user_query(
            self.submitter_id, has_not_logged_in_for_n_days=6)
        self._run_one_off_job(user_query_3_id)

        query = user_models.UserQueryModel.get(user_query_3_id)

        # Make sure that legacy user is included in qualified user's list.
        self.assertItemsEqual(query.user_ids, [self.user_a_id, self.user_e_id])
    def test_user_has_not_logged_in_last_n_days(self):
        query_id = user_query_services.save_new_query_model(
            self.submitter_id, has_not_logged_in_for_n_days=6)
        self._run_one_off_job(query_id)

        query = user_models.UserQueryModel.get(query_id)

        # List of users who has not logged_in in last 6 days.
        qualifying_user_ids = [self.user_e_id]
        self.assertEqual(len(query.user_ids), 1)
        self.assertEqual(sorted(query.user_ids), sorted(qualifying_user_ids))

        query_id = user_query_services.save_new_query_model(
            self.submitter_id, has_not_logged_in_for_n_days=2)
        self._run_one_off_job(query_id)

        query = user_models.UserQueryModel.get(query_id)

        # List of users logged_in in last 2 days.
        qualifying_user_ids = (
            [self.user_a_id, self.user_e_id])
        self.assertEqual(len(query.user_ids), 2)
        self.assertEqual(sorted(query.user_ids), sorted(qualifying_user_ids))

        # Test for legacy user.
        user_settings = user_services.get_user_settings(self.user_a_id)
        user_services.update_last_logged_in(user_settings, None)

        query_id = user_query_services.save_new_query_model(
            self.submitter_id, has_not_logged_in_for_n_days=6)
        self._run_one_off_job(query_id)

        query = user_models.UserQueryModel.get(query_id)
        qualifying_user_ids = ([self.user_a_id, self.user_e_id])

        # Make sure that legacy user is included in qualified user's list.
        self.assertEqual(len(query.user_ids), 2)
        self.assertEqual(sorted(query.user_ids), sorted(qualifying_user_ids))
Ejemplo n.º 3
0
    def setUp(self):
        super(UserQueryJobOneOffTests, self).setUp()
        # User A has no created or edited explorations.
        # User B has one created exploration.
        # User C has one edited exploration.
        # User D has created an exploration and then edited it.
        # User E has created an exploration 10 days before.
        # User F has one created exploration but is not subscribed to emails.
        # Submitter is the user who submits the query.
        self.signup(self.USER_A_EMAIL, self.USER_A_USERNAME)
        self.user_a_id = self.get_user_id_from_email(self.USER_A_EMAIL)
        user_services.update_email_preferences(self.user_a_id, True, True,
                                               True, True)
        self.signup(self.USER_B_EMAIL, self.USER_B_USERNAME)
        self.user_b_id = self.get_user_id_from_email(self.USER_B_EMAIL)
        user_services.update_email_preferences(self.user_b_id, True, True,
                                               True, True)
        self.signup(self.USER_C_EMAIL, self.USER_C_USERNAME)
        self.user_c_id = self.get_user_id_from_email(self.USER_C_EMAIL)
        user_services.update_email_preferences(self.user_c_id, True, True,
                                               True, True)
        self.signup(self.USER_D_EMAIL, self.USER_D_USERNAME)
        self.user_d_id = self.get_user_id_from_email(self.USER_D_EMAIL)
        user_services.update_email_preferences(self.user_d_id, True, True,
                                               True, True)
        self.signup(self.USER_E_EMAIL, self.USER_E_USERNAME)
        self.user_e_id = self.get_user_id_from_email(self.USER_E_EMAIL)
        user_services.update_email_preferences(self.user_e_id, True, True,
                                               True, True)
        self.signup(self.USER_F_EMAIL, self.USER_F_USERNAME)
        self.user_f_id = self.get_user_id_from_email(self.USER_F_EMAIL)
        user_services.update_email_preferences(self.user_f_id, False, True,
                                               True, True)
        self.signup(self.USER_SUBMITTER_EMAIL, self.USER_SUBMITTER_USERNAME)
        self.submitter_id = self.get_user_id_from_email(
            self.USER_SUBMITTER_EMAIL)
        user_services.update_email_preferences(self.submitter_id, True, True,
                                               True, True)

        self.save_new_valid_exploration(self.EXP_ID_1,
                                        self.user_b_id,
                                        end_state_name='End')

        exp_services.update_exploration(self.user_c_id, self.EXP_ID_1, [
            exp_domain.ExplorationChange({
                'cmd': 'edit_exploration_property',
                'property_name': 'objective',
                'new_value': 'the objective'
            })
        ], 'Test edit')

        self.save_new_valid_exploration(self.EXP_ID_2,
                                        self.user_d_id,
                                        end_state_name='End')

        exp_services.update_exploration(self.user_d_id, self.EXP_ID_2, [
            exp_domain.ExplorationChange({
                'cmd': 'edit_exploration_property',
                'property_name': 'objective',
                'new_value': 'the objective'
            })
        ], 'Test edit')

        self.save_new_valid_exploration(self.EXP_ID_3,
                                        self.user_e_id,
                                        end_state_name='End')
        user_e_settings = user_services.get_user_settings(self.user_e_id)
        user_e_settings.last_created_an_exploration = (
            user_e_settings.last_created_an_exploration -
            datetime.timedelta(days=10))
        # Last edited time also changes when user creates an exploration.
        user_e_settings.last_edited_an_exploration = (
            datetime.datetime.utcnow() - datetime.timedelta(days=10))
        user_services.update_last_logged_in(
            user_e_settings,
            user_e_settings.last_logged_in - datetime.timedelta(days=10))

        self.save_new_valid_exploration(self.EXP_ID_4,
                                        self.user_f_id,
                                        end_state_name='End')

        user_a_settings = user_services.get_user_settings(self.user_a_id)
        user_services.update_last_logged_in(
            user_a_settings,
            user_a_settings.last_logged_in - datetime.timedelta(days=3))

        # Set tmpsuperadm1n as admin in ADMIN_USERNAMES config property.
        self.set_admins(['tmpsuperadm1n'])