Beispiel #1
0
    def test_flush_migration_bot_contributions_action(self):
        created_exploration_ids = ['exp_1', 'exp_2']
        edited_exploration_ids = ['exp_3', 'exp_4']
        user_services.create_user_contributions(feconf.MIGRATION_BOT_USER_ID,
                                                created_exploration_ids,
                                                edited_exploration_ids)

        migration_bot_contributions_model = (
            user_services.get_user_contributions(feconf.MIGRATION_BOT_USER_ID))
        self.assertEqual(
            migration_bot_contributions_model.created_exploration_ids,
            created_exploration_ids)
        self.assertEqual(
            migration_bot_contributions_model.edited_exploration_ids,
            edited_exploration_ids)
        self.login(self.ADMIN_EMAIL, is_super_admin=True)
        csrf_token = self.get_new_csrf_token()

        self.post_json('/adminhandler',
                       {'action': 'flush_migration_bot_contribution_data'},
                       csrf_token=csrf_token)

        migration_bot_contributions_model = (
            user_services.get_user_contributions(feconf.MIGRATION_BOT_USER_ID))
        self.assertEqual(
            migration_bot_contributions_model.created_exploration_ids, [])
        self.assertEqual(
            migration_bot_contributions_model.edited_exploration_ids, [])
Beispiel #2
0
    def reduce(key, version_and_exp_ids):
        """Implements the reduce function for this job."""
        created_exploration_ids = set()
        edited_exploration_ids = set()

        edits = [ast.literal_eval(v) for v in version_and_exp_ids]
        for edit in edits:
            edited_exploration_ids.add(edit['exploration_id'])
            if edit['version_string'] == '1':
                created_exploration_ids.add(edit['exploration_id'])

        if user_services.get_user_contributions(key, strict=False) is not None:
            user_services.update_user_contributions(
                key, list(created_exploration_ids),
                list(edited_exploration_ids))
        else:
            user_services.create_user_contributions(
                key, list(created_exploration_ids),
                list(edited_exploration_ids))
Beispiel #3
0
    def reduce(key, version_and_exp_ids):

        created_exploration_ids = set()
        edited_exploration_ids = set()

        edits = [ast.literal_eval(v) for v in version_and_exp_ids]

        for edit in edits:
            edited_exploration_ids.add(edit['exploration_id'])
            if edit['version_string'] == '1':
                created_exploration_ids.add(edit['exploration_id'])

        if user_services.get_user_contributions(key, strict=False) is not None:
            user_services.update_user_contributions(
                key, list(created_exploration_ids), list(
                    edited_exploration_ids))
        else:
            user_services.create_user_contributions(
                key, list(created_exploration_ids), list(
                    edited_exploration_ids))
Beispiel #4
0
 def test_cannot_create_user_contributions_with_existing_user_id(self):
     with self.assertRaisesRegexp(
             Exception,
             'User contributions model for user %s already exists.' %
             self.owner_id):
         user_services.create_user_contributions(self.owner_id, [], [])
Beispiel #5
0
 def test_cannot_create_user_contributions_with_migration_bot(self):
     self.assertIsNone(
         user_services.create_user_contributions(
             feconf.MIGRATION_BOT_USER_ID, [], []))