def test_verification_when_user_is_wrongly_deleted_fails(self): pending_deletion_request = ( wipeout_service.get_pending_deletion_request(self.user_1_id)) wipeout_service.delete_user(pending_deletion_request) pending_deletion_request.deletion_complete = True wipeout_service.save_pending_deletion_requests( [pending_deletion_request]) email_content = ( 'The Wipeout process failed for the user with ID \'%s\' ' 'and email \'%s\'.' % (self.user_1_id, self.USER_1_EMAIL) ) send_email_swap = self.swap_with_checks( email_manager, 'send_mail_to_admin', lambda x, y: None, expected_args=[('WIPEOUT: Account deletion failed', email_content)] ) user_models.CompletedActivitiesModel( id=self.user_1_id, exploration_ids=[], collection_ids=[], story_ids=[], learnt_topic_ids=[] ).put() with send_email_swap: output = self._run_one_off_job() self.assertIn(['FAILURE', [self.user_1_id]], output)
def test_verification_when_user_is_deleted_is_successful(self): pending_deletion_request = ( wipeout_service.get_pending_deletion_request(self.user_1_id)) wipeout_service.delete_user(pending_deletion_request) pending_deletion_request.deletion_complete = True wipeout_service.save_pending_deletion_requests( [pending_deletion_request]) output = self._run_one_off_job() self.assertIn(['SUCCESS', [self.user_1_id]], output)
def map(pending_deletion_request_model): """Implements the map function for this job.""" pending_deletion_request = wipeout_service.get_pending_deletion_request( pending_deletion_request_model.id) if pending_deletion_request.deletion_complete: yield ('ALREADY DONE', pending_deletion_request.user_id) else: wipeout_service.delete_user(pending_deletion_request) pending_deletion_request.deletion_complete = True wipeout_service.save_pending_deletion_requests( [pending_deletion_request]) yield ('SUCCESS', pending_deletion_request.user_id)
def test_verification_when_user_is_wrongly_deleted_fails(self): pending_deletion_request = ( wipeout_service.get_pending_deletion_request(self.user_1_id)) wipeout_service.delete_user(pending_deletion_request) pending_deletion_request.deletion_complete = True wipeout_service.save_pending_deletion_requests( [pending_deletion_request]) user_models.CompletedActivitiesModel( id=self.user_1_id, exploration_ids=[], collection_ids=[] ).put() output = self._run_one_off_job() self.assertIn(['FAILURE', [self.user_1_id]], output)
def map(pending_deletion_request_model): """Implements the map function for this job.""" # If deletion_complete is False the UserDeletionOneOffJob wasn't yet run # for the user. The verification will be done in the next run of # FullyCompleteUserDeletionOneOffJob. pending_deletion_request = wipeout_service.get_pending_deletion_request( pending_deletion_request_model.id) if not pending_deletion_request.deletion_complete: yield ('NOT DELETED', pending_deletion_request.user_id) elif wipeout_service.verify_user_deleted(pending_deletion_request): wipeout_service.delete_pending_deletion_request( pending_deletion_request.user_id) email_manager.send_account_deleted_email( pending_deletion_request.user_id, pending_deletion_request.email) yield ('SUCCESS', pending_deletion_request.user_id) else: pending_deletion_request.deletion_complete = False wipeout_service.save_pending_deletion_requests( [pending_deletion_request]) yield ('FAILURE', pending_deletion_request.user_id)