def delete(self, database_client: DatabaseClient, user_identifier: str, authentication_provider: AuthenticationProvider, worker_provider: WorkerProvider) -> None: user_record = self.get(database_client, user_identifier) if user_record is None: raise ValueError("User '%s' does not exist" % user_identifier) if user_record["is_enabled"]: raise ValueError("User '%s' is enabled" % user_identifier) if worker_provider.count(database_client, owner = user_identifier) > 0: raise ValueError("User '%s' owns workers" % user_identifier) authentication_provider.remove_password(database_client, user_identifier) for token in authentication_provider.get_token_list(database_client, user_identifier): authentication_provider.delete_token(database_client, user_identifier, token["identifier"]) database_client.delete_one(self.table, { "identifier": user_identifier })
def test_password_success(): """ Test password operations succeed in a normal situation """ database_client_instance = MemoryDatabaseClient() date_time_provider_instance = FakeDateTimeProvider() provider = AuthenticationProvider(date_time_provider_instance) user = "******" first_secret = "first" second_secret = "second" wrong_secret = "wrong" assert provider.authenticate_with_password(database_client_instance, user, first_secret) is False assert provider.authenticate_with_password(database_client_instance, user, second_secret) is False assert provider.authenticate_with_password(database_client_instance, user, wrong_secret) is False provider.set_password(database_client_instance, user, first_secret) assert provider.authenticate_with_password(database_client_instance, user, first_secret) is True assert provider.authenticate_with_password(database_client_instance, user, second_secret) is False assert provider.authenticate_with_password(database_client_instance, user, wrong_secret) is False provider.set_password(database_client_instance, user, second_secret) assert provider.authenticate_with_password(database_client_instance, user, first_secret) is False assert provider.authenticate_with_password(database_client_instance, user, second_secret) is True assert provider.authenticate_with_password(database_client_instance, user, wrong_secret) is False provider.remove_password(database_client_instance, user) assert provider.authenticate_with_password(database_client_instance, user, first_secret) is False assert provider.authenticate_with_password(database_client_instance, user, second_secret) is False assert provider.authenticate_with_password(database_client_instance, user, wrong_secret) is False