def test_transient_error_is_retriable_case_2(): error = Neo4jError.hydrate( message="Test error message", code="Neo.TransientError.Transaction.LockClientStopped") assert isinstance(error, TransientError) assert error.is_retriable() is False
def test_neo4jerror_hydrate_with_message_and_code_rubish(): error = Neo4jError.hydrate(message="Test error message", code="ASDF_asdf") assert isinstance(error, DatabaseError) assert error.classification == CLASSIFICATION_DATABASE assert error.category == "General" assert error.title == "UnknownError" assert error.metadata == {} assert error.message == "Test error message" assert error.code == "ASDF_asdf"
def test_neo4jerror_hydrate_with_no_args(): error = Neo4jError.hydrate() assert isinstance(error, DatabaseError) assert error.classification == CLASSIFICATION_DATABASE assert error.category == "General" assert error.title == "UnknownError" assert error.metadata == {} assert error.message == "An unknown error occurred" assert error.code == "Neo.DatabaseError.General.UnknownError"
def on_failure(self, metadata): """ Called when a FAILURE message has been received. """ self.connection.reset() handler = self.handlers.get("on_failure") if callable(handler): handler(metadata) handler = self.handlers.get("on_summary") if callable(handler): handler() raise Neo4jError.hydrate(**metadata)
def test_neo4jerror_hydrate_with_message_and_code_client(): error = Neo4jError.hydrate( message="Test error message", code="Neo.{}.General.TestError".format(CLASSIFICATION_CLIENT)) assert isinstance(error, ClientError) assert error.classification == CLASSIFICATION_CLIENT assert error.category == "General" assert error.title == "TestError" assert error.metadata == {} assert error.message == "Test error message" assert error.code == "Neo.{}.General.TestError".format( CLASSIFICATION_CLIENT)
def get_one(tx): result = tx.run("UNWIND [1,2,3,4] AS x RETURN x") records = list(result) pytest.global_counter += 1 if pytest.global_counter < 3: database_unavailable = Neo4jError.hydrate( message= "The database is not currently available to serve your request, refer to the database logs for more details. Retrying your request at a later time may succeed.", code="Neo.TransientError.Database.DatabaseUnavailable") raise database_unavailable return records
def on_failure(self, metadata): """ Called when a FAILURE message has been received. """ try: self.connection.reset() except (SessionExpired, ServiceUnavailable): pass handler = self.handlers.get("on_failure") if callable(handler): handler(metadata) handler = self.handlers.get("on_summary") if callable(handler): handler() raise Neo4jError.hydrate(**metadata)
def test_transient_error_is_retriable_case_3(): error = Neo4jError.hydrate(message="Test error message", code="Neo.TransientError.General.TestError") assert isinstance(error, TransientError) assert error.is_retriable() is True