def test_delete_user_broken(self):
        wipeout_service.delete_user(
            user_models.PendingDeletionRequestModel.get_by_id(self.user_2_id))

        user_models.CompletedActivitiesModel(
            id=self.user_2_id, exploration_ids=[], collection_ids=[]
        ).put()
        user_models.IncompleteActivitiesModel(
            id=self.user_2_id, exploration_ids=[], collection_ids=[]
        ).put()
        user_models.LearnerPlaylistModel(
            id=self.user_2_id, exploration_ids=[], collection_ids=[]
        ).put()

        self.assertFalse(wipeout_service.verify_user_deleted(
            user_models.PendingDeletionRequestModel.get_by_id(self.user_2_id)))
        pending_deletion_model = (
            user_models.PendingDeletionRequestModel.get_by_id(self.user_2_id))
        self.assertIsNotNone(pending_deletion_model)
        self.assertFalse(pending_deletion_model.deletion_complete)

        wipeout_service.delete_user(pending_deletion_model)
        self.assertTrue(wipeout_service.verify_user_deleted(
            user_models.PendingDeletionRequestModel.get_by_id(self.user_2_id)))
        self.assertIsNone(
            user_models.PendingDeletionRequestModel.get_by_id(self.user_2_id))
Esempio n. 2
0
 def get(self):
     user_id = self.request.get('user_id', None)
     if user_id is None:
         raise self.InvalidInputException('Missing user_id param')
     user_is_deleted = wipeout_service.verify_user_deleted(
         user_id, include_delete_at_end_models=True)
     self.render_json({'related_models_exist': not user_is_deleted})
    def test_delete_user_simple(self):
        wipeout_service.delete_user(
            user_models.PendingDeletionRequestModel.get_by_id(self.user_1_id))

        self.assertTrue(wipeout_service.verify_user_deleted(
            user_models.PendingDeletionRequestModel.get_by_id(self.user_1_id)))

        self.assertIsNone(
            user_models.PendingDeletionRequestModel.get_by_id(self.user_1_id))
Esempio n. 4
0
 def map(model_instance):
     """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
     # VerifyUserDeletionOneOffJob.
     if not model_instance.deletion_complete:
         yield ('NOT DELETED', model_instance.id)
     elif wipeout_service.verify_user_deleted(model_instance):
         yield ('SUCCESS', model_instance.id)
     else:
         yield ('FAILURE', model_instance.id)
Esempio n. 5
0
    def test_verification_is_unsuccessful_when_deletion_failed(self):
        wipeout_service.delete_user(
            wipeout_service.get_pending_deletion_request(self.user_2_id))

        story_services.update_story(self.user_2_id, self.STORY_2_ID, [
            story_domain.StoryChange({
                'cmd': story_domain.CMD_ADD_STORY_NODE,
                'node_id': 'node_1',
                'title': 'Title 2'
            })
        ], 'Add node.')

        self.assertFalse(
            wipeout_service.verify_user_deleted(
                wipeout_service.get_pending_deletion_request(self.user_2_id)))

        wipeout_service.delete_user(
            wipeout_service.get_pending_deletion_request(self.user_2_id))
        self.assertTrue(
            wipeout_service.verify_user_deleted(
                wipeout_service.get_pending_deletion_request(self.user_2_id)))
Esempio n. 6
0
    def test_delete_user_broken(self):
        wipeout_service.delete_user(
            wipeout_service.get_pending_deletion_request(self.user_2_id))

        user_models.CompletedActivitiesModel(id=self.user_2_id,
                                             exploration_ids=[],
                                             collection_ids=[]).put()
        user_models.IncompleteActivitiesModel(id=self.user_2_id,
                                              exploration_ids=[],
                                              collection_ids=[]).put()
        user_models.LearnerPlaylistModel(id=self.user_2_id,
                                         exploration_ids=[],
                                         collection_ids=[]).put()

        self.assertFalse(
            wipeout_service.verify_user_deleted(
                wipeout_service.get_pending_deletion_request(self.user_2_id)))

        wipeout_service.delete_user(
            wipeout_service.get_pending_deletion_request(self.user_2_id))
        self.assertTrue(
            wipeout_service.verify_user_deleted(
                wipeout_service.get_pending_deletion_request(self.user_2_id)))
Esempio n. 7
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)
Esempio n. 8
0
    def get(self):
        user_id = self.normalized_request.get('user_id')

        user_is_deleted = wipeout_service.verify_user_deleted(
            user_id, include_delete_at_end_models=True)
        self.render_json({'related_models_exist': not user_is_deleted})
 def assert_wipeout_is_not_verified(self):
     """Asserts that the wipeout has been acknowledged as incomplete."""
     self.assertFalse(wipeout_service.verify_user_deleted(self.user_id))
Esempio n. 10
0
 def test_verification_is_successful(self):
     wipeout_service.delete_user(
         wipeout_service.get_pending_deletion_request(self.user_1_id))
     self.assertTrue(
         wipeout_service.verify_user_deleted(
             wipeout_service.get_pending_deletion_request(self.user_1_id)))
Esempio n. 11
0
 def test_delete_user_simple(self):
     wipeout_service.delete_user(
         wipeout_service.get_pending_deletion_request(self.user_1_id))
     self.assertTrue(
         wipeout_service.verify_user_deleted(
             wipeout_service.get_pending_deletion_request(self.user_1_id)))