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))
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))
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)
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)))
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)))
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)
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))
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)))
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)))