Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions ravendb_test_driver/raven_test_driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
GetIndexErrorsOperation,
)
from ravendb.documents.indexes.definitions import IndexState
from ravendb.exceptions.cluster import NoLoaderException
from ravendb.exceptions.cluster import NoLeaderException
from ravendb.exceptions.exceptions import (
DatabaseDoesNotExistException,
TimeoutException,
Expand Down Expand Up @@ -190,12 +190,8 @@ def _delete_test_database(store: DocumentStore, database_name: str) -> None:
"""Hard-delete a test database, ignoring the failures that are not the test's problem."""
try:
store.maintenance.server.send(DeleteDatabaseOperation(database_name, True))
except (DatabaseDoesNotExistException, NoLoaderException):
except (DatabaseDoesNotExistException, NoLeaderException):
pass # already gone, or the cluster has no leader right now
except RavenException as e:
# The client maps NoLeaderException under a misspelled key, so it arrives untyped.
if "NoLeaderException" not in str(e):
raise

@staticmethod
def _database_stem(frame_name: str) -> Optional[str]:
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
setup(
name="ravendb-test-driver",
packages=find_packages(exclude=["*.tests.*", "tests", "*.tests", "tests.*"]),
version="7.2.6",
version="7.2.6.post1",
description="RavenDB package for writing integration tests against RavenDB server",
long_description_content_type="text/markdown",
long_description=open("README.md").read(),
Expand All @@ -14,5 +14,5 @@
keywords=["ravendb", "nosql", "database", "test", "driver"],
python_requires=">=3.10",
license_files=["LICENSE"],
install_requires=["ravendb-embedded~=7.2.5", "ravendb~=7.2.6"],
install_requires=["ravendb-embedded~=7.2.5", "ravendb~=7.2.6.post1"],
)
13 changes: 3 additions & 10 deletions tests/test_error_handling.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from unittest.mock import patch

from ravendb import Lazy
from ravendb.exceptions.cluster import NoLoaderException
from ravendb.exceptions.cluster import NoLeaderException
from ravendb.exceptions.exceptions import DatabaseDoesNotExistException
from ravendb.exceptions.raven_exceptions import RavenException
from ravendb_embedded import ServerOptions
Expand Down Expand Up @@ -42,15 +42,8 @@ def test_deletes_the_database_it_was_given(self):
def test_a_database_that_is_already_gone_is_not_an_error(self):
RavenTestDriver._delete_test_database(_StoreThatRaises(DatabaseDoesNotExistException("gone")), "test_1")

def test_a_typed_no_leader_failure_is_ignored(self):
RavenTestDriver._delete_test_database(_StoreThatRaises(NoLoaderException("no leader")), "test_1")

def test_an_untyped_no_leader_failure_is_ignored(self):
# The client maps the server's NoLeaderException under a misspelled key, so today a real
# no-leader failure arrives as a plain RavenException carrying the name in its message.
error = RavenException("Raven.Client.Exceptions.Cluster.NoLeaderException: no leader elected")

RavenTestDriver._delete_test_database(_StoreThatRaises(error), "test_1")
def test_a_no_leader_failure_is_ignored(self):
RavenTestDriver._delete_test_database(_StoreThatRaises(NoLeaderException("no leader")), "test_1")

def test_any_other_failure_still_propagates(self):
with self.assertRaises(RavenException):
Expand Down
Loading