From a0ef3285f5e6ea9d615d68967f996e2ff090183a Mon Sep 17 00:00:00 2001 From: Olivier Desenfans Date: Thu, 31 Mar 2022 16:51:32 +0200 Subject: [PATCH] [Exceptions] Move old exceptions from types to exceptions Put exception code in the right place. --- src/aleph/chains/common.py | 3 +-- src/aleph/exceptions.py | 12 ++++++++++++ src/aleph/handlers/storage.py | 4 ++-- src/aleph/jobs.py | 3 ++- src/aleph/network.py | 3 ++- src/aleph/services/ipfs/pubsub.py | 2 +- src/aleph/services/p2p/protocol.py | 3 +-- src/aleph/types.py | 9 +-------- src/aleph/web/controllers/storage.py | 4 ++-- tests/storage/test_store_message.py | 2 +- tests/test_network.py | 3 ++- 11 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/aleph/chains/common.py b/src/aleph/chains/common.py index 6e0bab8e4..0b04f4e3c 100644 --- a/src/aleph/chains/common.py +++ b/src/aleph/chains/common.py @@ -16,12 +16,11 @@ from aleph.network import check_message as check_message_fn from aleph.permissions import check_sender_authorization from aleph.storage import get_json, pin_hash, add_json, get_message_content -from aleph.types import UnknownHashError from aleph.web import app from aleph.exceptions import ( AlephStorageException, InvalidContent, - ContentCurrentlyUnavailable, + ContentCurrentlyUnavailable, UnknownHashError, ) LOGGER = logging.getLogger("chains.common") diff --git a/src/aleph/exceptions.py b/src/aleph/exceptions.py index 97f23911d..387ebe615 100644 --- a/src/aleph/exceptions.py +++ b/src/aleph/exceptions.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + class AlephException(Exception): ... @@ -37,3 +40,12 @@ class ContentCurrentlyUnavailable(AlephStorageException): synchronisation issue. """ ... + + +class UnknownHashError(AlephException): + ... + + +class InvalidMessageError(AlephException): + """Error raised when an invalid message is processed""" + ... diff --git a/src/aleph/handlers/storage.py b/src/aleph/handlers/storage.py index 269130ed9..0629aaf6c 100644 --- a/src/aleph/handlers/storage.py +++ b/src/aleph/handlers/storage.py @@ -20,9 +20,9 @@ from aleph.services.ipfs.common import get_ipfs_api from aleph.storage import get_hash_content -from aleph.types import ItemType, UnknownHashError +from aleph.types import ItemType from aleph.web import app -from aleph.exceptions import AlephStorageException +from aleph.exceptions import AlephStorageException, UnknownHashError LOGGER = logging.getLogger("HANDLERS.STORAGE") diff --git a/src/aleph/jobs.py b/src/aleph/jobs.py index 3faf04ee1..50674bf50 100644 --- a/src/aleph/jobs.py +++ b/src/aleph/jobs.py @@ -18,7 +18,8 @@ from aleph.network import check_message from aleph.services.ipfs.common import connect_ipfs_peer from aleph.services.p2p import singleton -from aleph.types import ItemType, InvalidMessageError +from aleph.types import ItemType +from aleph.exceptions import InvalidMessageError from aleph.logging import setup_logging LOGGER = getLogger("JOBS") diff --git a/src/aleph/network.py b/src/aleph/network.py index 71d7e3aa4..8a4b28230 100644 --- a/src/aleph/network.py +++ b/src/aleph/network.py @@ -8,7 +8,8 @@ from aleph.register_chain import VERIFIER_REGISTER from aleph.services.ipfs.pubsub import incoming_channel as incoming_ipfs_channel -from aleph.types import ItemType, InvalidMessageError +from aleph.types import ItemType +from aleph.exceptions import InvalidMessageError from aleph.utils import get_sha256 LOGGER = logging.getLogger("NETWORK") diff --git a/src/aleph/services/ipfs/pubsub.py b/src/aleph/services/ipfs/pubsub.py index b4283f711..3aa170631 100644 --- a/src/aleph/services/ipfs/pubsub.py +++ b/src/aleph/services/ipfs/pubsub.py @@ -5,7 +5,7 @@ import base58 -from aleph.types import InvalidMessageError +from ...exceptions import InvalidMessageError from .common import get_ipfs_api LOGGER = logging.getLogger("IPFS.PUBSUB") diff --git a/src/aleph/services/p2p/protocol.py b/src/aleph/services/p2p/protocol.py index b4429b376..530df1fb8 100644 --- a/src/aleph/services/p2p/protocol.py +++ b/src/aleph/services/p2p/protocol.py @@ -13,10 +13,9 @@ from p2pclient.libp2p_stubs.peer.id import ID from aleph import __version__ -from aleph.exceptions import AlephStorageException +from aleph.exceptions import AlephStorageException, InvalidMessageError from aleph.network import incoming_check from aleph.services.utils import pubsub_msg_to_dict -from aleph.types import InvalidMessageError from .pubsub import receive_pubsub_messages, subscribe MAX_READ_LEN = 2 ** 32 - 1 diff --git a/src/aleph/types.py b/src/aleph/types.py index f3aeab20f..898bc193f 100644 --- a/src/aleph/types.py +++ b/src/aleph/types.py @@ -1,9 +1,7 @@ from __future__ import annotations from enum import Enum - -class UnknownHashError(ValueError): - pass +from aleph.exceptions import UnknownHashError class ItemType(str, Enum): @@ -30,8 +28,3 @@ class Protocol(str, Enum): """P2P Protocol""" IPFS = "ipfs" P2P = "p2p" - - -class InvalidMessageError(Exception): - """Error raised when an invalid message is processed""" - pass \ No newline at end of file diff --git a/src/aleph/web/controllers/storage.py b/src/aleph/web/controllers/storage.py index 498cf3b2c..eb70d1793 100644 --- a/src/aleph/web/controllers/storage.py +++ b/src/aleph/web/controllers/storage.py @@ -4,10 +4,10 @@ from aiohttp import web from aiohttp.http_exceptions import HttpBadRequest -from aleph.exceptions import AlephStorageException +from aleph.exceptions import AlephStorageException, UnknownHashError from aleph.handlers.forget import count_file_references from aleph.storage import add_json, get_hash_content, add_file -from aleph.types import ItemType, UnknownHashError +from aleph.types import ItemType from aleph.utils import run_in_executor from aleph.web import app diff --git a/tests/storage/test_store_message.py b/tests/storage/test_store_message.py index c1f6023f2..01b1ff221 100644 --- a/tests/storage/test_store_message.py +++ b/tests/storage/test_store_message.py @@ -3,7 +3,7 @@ from aleph.handlers.storage import handle_new_storage from aleph.storage import ContentSource, RawContent import json -from aleph.types import UnknownHashError +from aleph.exceptions import UnknownHashError @pytest.fixture diff --git a/tests/test_network.py b/tests/test_network.py index 077ebc839..3b5c5844e 100644 --- a/tests/test_network.py +++ b/tests/test_network.py @@ -2,7 +2,8 @@ # Mandatory import, otherwise VERIFIER_REGISTER is not populated. TODO: improve the registration system. import aleph.chains -from aleph.network import InvalidMessageError, check_message +from aleph.network import check_message +from aleph.exceptions import InvalidMessageError __author__ = "Moshe Malawach" __copyright__ = "Moshe Malawach"