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)
Esempio n. 2
0
    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)
Esempio n. 3
0
 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)
Esempio n. 4
0
    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)
Esempio n. 5
0
 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)