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, [])
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))
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))
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, [], [])
def test_cannot_create_user_contributions_with_migration_bot(self): self.assertIsNone( user_services.create_user_contributions( feconf.MIGRATION_BOT_USER_ID, [], []))