From 9b82abd8a28e328a2703d6026a7d2f67833a7c42 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 2 Feb 2025 08:51:00 +0000 Subject: [PATCH] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/aiida/manage/configuration/config.py | 8 +++---- src/aiida/storage/psql_dos/backend.py | 5 ++--- src/aiida/storage/psql_dos/migrator.py | 4 +--- tests/manage/configuration/test_config.py | 7 ++++-- tests/storage/sqlite/test_container.py | 27 +++++++++++++++++------ 5 files changed, 31 insertions(+), 20 deletions(-) diff --git a/src/aiida/manage/configuration/config.py b/src/aiida/manage/configuration/config.py index 6bfb15fef..85bd2c158 100644 --- a/src/aiida/manage/configuration/config.py +++ b/src/aiida/manage/configuration/config.py @@ -16,8 +16,6 @@ from __future__ import annotations import codecs -import contextlib -import io import json import os import uuid @@ -528,12 +526,12 @@ def create_profile( LOGGER.report('Initialising the storage backend.') try: # not sure if scope is good, at least put it in log - #with contextlib.redirect_stdout(io.StringIO()): + # with contextlib.redirect_stdout(io.StringIO()): profile.storage_cls.initialise(profile) except Exception as exception: raise StorageMigrationError( - f'During initialisation of storage backend following excepion was raised: {exception}.\n Please check above for full traceback.' - ) + f'During initialisation of storage backend following excepion was raised: {exception}.\n Please check above for full traceback.' + ) LOGGER.report('Storage initialisation completed.') self.add_profile(profile) diff --git a/src/aiida/storage/psql_dos/backend.py b/src/aiida/storage/psql_dos/backend.py index 989def2f3..5566bbe58 100644 --- a/src/aiida/storage/psql_dos/backend.py +++ b/src/aiida/storage/psql_dos/backend.py @@ -9,7 +9,6 @@ """SqlAlchemy implementation of `aiida.orm.implementation.backends.Backend`.""" import functools -import gc import pathlib from contextlib import contextmanager, nullcontext from typing import TYPE_CHECKING, Iterator, List, Optional, Sequence, Set, Union @@ -187,8 +186,8 @@ def close(self) -> None: # close the connection # PR QUESTION: can we have multiple sessons? Then we should close all of them - #from sqlalchemy.orm import close_all_sessions - #close_all_sessions() + # from sqlalchemy.orm import close_all_sessions + # close_all_sessions() engine = self._session_factory.bind self._session_factory.expunge_all() diff --git a/src/aiida/storage/psql_dos/migrator.py b/src/aiida/storage/psql_dos/migrator.py index e9156ed87..db8d316e8 100644 --- a/src/aiida/storage/psql_dos/migrator.py +++ b/src/aiida/storage/psql_dos/migrator.py @@ -201,9 +201,7 @@ def get_repository_uuid(self) -> str: except Exception as exception: # PR COMMENT removed the printing of exception in message since we use from exception if container is None: - msg = ( - 'During creation of the container context for the disk-objectstore the following error was raised' - ) + msg = 'During creation of the container context for the disk-objectstore the following error was raised' else: msg = f'During access of disk-objectstore {container} error was raised.' diff --git a/tests/manage/configuration/test_config.py b/tests/manage/configuration/test_config.py index ae860130d..0ad23be41 100644 --- a/tests/manage/configuration/test_config.py +++ b/tests/manage/configuration/test_config.py @@ -446,7 +446,7 @@ def test_create_profile_raises(config_with_profile, monkeypatch, entry_points): profile_name = uuid.uuid4().hex def raise_storage_migration_error(*_, **__): - raise exceptions.StorageMigrationError("Monkey patchted error") + raise exceptions.StorageMigrationError('Monkey patchted error') monkeypatch.setattr(SqliteTempBackend, 'initialise', raise_storage_migration_error) entry_points.add(InvalidBaseStorage, 'aiida.storage:core.invalid_base') @@ -460,7 +460,10 @@ def raise_storage_migration_error(*_, **__): with pytest.raises(ValueError, match=r'The entry point `.*` could not be loaded'): config.create_profile(profile_name, 'core.non_existant', {}) - with pytest.raises(exceptions.StorageMigrationError, match=r'During initialisation of storage backend following excepion was raised: Monkey patchted error.*'): + with pytest.raises( + exceptions.StorageMigrationError, + match=r'During initialisation of storage backend following excepion was raised: Monkey patchted error.*', + ): config.create_profile(profile_name, 'core.sqlite_temp', {}) diff --git a/tests/storage/sqlite/test_container.py b/tests/storage/sqlite/test_container.py index 0a3bbc2e1..dd38bf0f6 100644 --- a/tests/storage/sqlite/test_container.py +++ b/tests/storage/sqlite/test_container.py @@ -1,39 +1,52 @@ """Test container initialization.""" -import psutil, os + +import os + +import psutil + def test_file_descriptor_closed(aiida_profile): """Checks if the number of open file descriptors change during a reset.""" + def list_open_file_descriptors(): process = psutil.Process(os.getpid()) return process.open_files() + # We have some connections active due to aiida profile during the first # reset these are destroyed. We check the second time changes the number of # open file descriptors. from aiida.manage import get_manager + storage_backend = get_manager().get_profile_storage() - migrator_context = storage_backend.migrator_context + migrator_context = storage_backend.migrator_context open_file_descriptors_before = list_open_file_descriptors() with migrator_context(aiida_profile) as migrator: migrator.initialise_repository() migrator.reset_repository() open_file_descriptors_after = list_open_file_descriptors() - assert len(open_file_descriptors_before) == len(open_file_descriptors_after), f"Before these file descriptor were open:\n{open_file_descriptors_before}\n Now these are open:\n{open_file_descriptors_after}" + assert ( + len(open_file_descriptors_before) == len(open_file_descriptors_after) + ), f'Before these file descriptor were open:\n{open_file_descriptors_before}\n Now these are open:\n{open_file_descriptors_after}' # PR COMMENT this is just a sanity check for me, I don' think that the test should be included in final PR def test_reset_storage_file_descriptor_closed(aiida_profile): """Checks if the number of open file descriptors change during a reset.""" + def list_open_file_descriptors(): process = psutil.Process(os.getpid()) return process.open_files() + # We have some connections active due to aiida profile during the first # reset these are destroyed. We check the second time changes the number of # open file descriptors. # TODO The fix should keep the existing connections alive and just reuse them # then one does not need to do two resets. - from aiida.manage import get_manager - aiida_profile.reset_storage() + + aiida_profile.reset_storage() open_file_descriptors_before = list_open_file_descriptors() - aiida_profile.reset_storage() + aiida_profile.reset_storage() open_file_descriptors_after = list_open_file_descriptors() - assert len(open_file_descriptors_before) == len(open_file_descriptors_after), f"Before these file descriptor were open:\n{open_file_descriptors_before}\n Now these are open:\n{open_file_descriptors_after}" + assert ( + len(open_file_descriptors_before) == len(open_file_descriptors_after) + ), f'Before these file descriptor were open:\n{open_file_descriptors_before}\n Now these are open:\n{open_file_descriptors_after}'