def test_delete_association_when_it_is_present(self) -> None: self.assertFalse( auth_services.verify_external_auth_associations_are_deleted( self.full_user_id)) auth_services.delete_external_auth_associations(self.full_user_id) self.assertTrue( auth_services.verify_external_auth_associations_are_deleted( self.full_user_id))
def test_delete_association_when_it_is_missing_does_not_raise( self) -> None: # Should not raise. auth_services.delete_external_auth_associations('does_not_exist')
def delete_user(pending_deletion_request): """Delete all the models for user specified in pending_deletion_request on the basis of the user role specified in the request. Args: pending_deletion_request: PendingDeletionRequest. The pending deletion request object for which to delete or pseudonymize all the models. """ user_id = pending_deletion_request.user_id user_role = pending_deletion_request.role auth_services.delete_external_auth_associations(user_id) _delete_models(user_id, models.NAMES.auth) _delete_models(user_id, models.NAMES.user) _pseudonymize_config_models(pending_deletion_request) _delete_models(user_id, models.NAMES.feedback) _delete_models(user_id, models.NAMES.improvements) if user_role != feconf.ROLE_ID_LEARNER: remove_user_from_activities_with_associated_rights_models( pending_deletion_request.user_id) _pseudonymize_feedback_models(pending_deletion_request) _pseudonymize_suggestion_models(pending_deletion_request) _pseudonymize_activity_models_without_associated_rights_models( pending_deletion_request, models.NAMES.question, question_models.QuestionSnapshotMetadataModel, question_models.QuestionCommitLogEntryModel, 'question_id') _pseudonymize_activity_models_without_associated_rights_models( pending_deletion_request, models.NAMES.skill, skill_models.SkillSnapshotMetadataModel, skill_models.SkillCommitLogEntryModel, 'skill_id') _pseudonymize_activity_models_without_associated_rights_models( pending_deletion_request, models.NAMES.story, story_models.StorySnapshotMetadataModel, story_models.StoryCommitLogEntryModel, 'story_id') _pseudonymize_activity_models_without_associated_rights_models( pending_deletion_request, models.NAMES.subtopic, subtopic_models.SubtopicPageSnapshotMetadataModel, subtopic_models.SubtopicPageCommitLogEntryModel, 'subtopic_page_id') _pseudonymize_activity_models_with_associated_rights_models( pending_deletion_request, models.NAMES.exploration, exp_models.ExplorationSnapshotMetadataModel, exp_models.ExplorationRightsSnapshotMetadataModel, exp_models.ExplorationRightsSnapshotContentModel, exp_models.ExplorationCommitLogEntryModel, 'exploration_id', feconf.EXPLORATION_RIGHTS_CHANGE_ALLOWED_COMMANDS, ('owner_ids', 'editor_ids', 'voice_artist_ids', 'viewer_ids')) _remove_user_id_from_contributors_in_summary_models( user_id, exp_models.ExpSummaryModel) _pseudonymize_activity_models_with_associated_rights_models( pending_deletion_request, models.NAMES.collection, collection_models.CollectionSnapshotMetadataModel, collection_models.CollectionRightsSnapshotMetadataModel, collection_models.CollectionRightsSnapshotContentModel, collection_models.CollectionCommitLogEntryModel, 'collection_id', feconf.COLLECTION_RIGHTS_CHANGE_ALLOWED_COMMANDS, ('owner_ids', 'editor_ids', 'voice_artist_ids', 'viewer_ids')) _remove_user_id_from_contributors_in_summary_models( user_id, collection_models.CollectionSummaryModel) _pseudonymize_activity_models_with_associated_rights_models( pending_deletion_request, models.NAMES.topic, topic_models.TopicSnapshotMetadataModel, topic_models.TopicRightsSnapshotMetadataModel, topic_models.TopicRightsSnapshotContentModel, topic_models.TopicCommitLogEntryModel, 'topic_id', feconf.TOPIC_RIGHTS_CHANGE_ALLOWED_COMMANDS, ('manager_ids', )) _delete_models(user_id, models.NAMES.email)