From 0b1f0a92576cd90eba6c689a576d39a3118edc55 Mon Sep 17 00:00:00 2001 From: Jonathan Zernik Date: Sun, 24 Oct 2021 18:53:39 -0500 Subject: [PATCH] Use custom db error when db init fails (#1720) --- squeaknode/db/squeak_db.py | 3 ++- tests/db/test_squeak_db.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/squeaknode/db/squeak_db.py b/squeaknode/db/squeak_db.py index cf8d6c11..c8b61eb1 100644 --- a/squeaknode/db/squeak_db.py +++ b/squeaknode/db/squeak_db.py @@ -49,6 +49,7 @@ from squeaknode.core.squeak_entry import SqueakEntry from squeaknode.core.squeak_peer import SqueakPeer from squeaknode.core.squeak_profile import SqueakProfile from squeaknode.core.squeaks import get_hash +from squeaknode.db.exception import SqueakDatabaseError from squeaknode.db.migrations import run_migrations from squeaknode.db.models import Models @@ -96,7 +97,7 @@ class SqueakDb: logger.exception("Failed to initialize database.") n += 1 if n >= num_retries: - raise Exception("Failed to initialize database.") + raise SqueakDatabaseError("Failed to initialize database.") time.sleep(retry_interval_s) @property diff --git a/tests/db/test_squeak_db.py b/tests/db/test_squeak_db.py index d6f11d15..165e788c 100644 --- a/tests/db/test_squeak_db.py +++ b/tests/db/test_squeak_db.py @@ -25,6 +25,7 @@ import mock import pytest from sqlalchemy import create_engine +from squeaknode.db.exception import SqueakDatabaseError from squeaknode.db.squeak_db import SqueakDb from tests.utils import gen_address from tests.utils import gen_contact_profile @@ -423,7 +424,7 @@ def test_init_with_retries_fail_many_times(squeak_db): mock.patch('squeaknode.db.squeak_db.time.sleep', autospec=True) as mock_sleep: mock_init.side_effect = [Exception('some db error')] * 5 - with pytest.raises(Exception) as excinfo: + with pytest.raises(SqueakDatabaseError) as excinfo: squeak_db.init_with_retries(num_retries=5, retry_interval_s=100) assert "Failed to initialize database." in str(excinfo.value)