示例#1
0
def test_error_hydration():
    error = Neo4jError.hydrate({"code": "Neo.ClientError.General.Error", "message": "Oops"})
    assert isinstance(error, ClientError)
    assert error.code == "Neo.ClientError.General.Error"
    assert error.classification == "ClientError"
    assert error.category == "General"
    assert error.title == "Error"
    assert error.message == "Oops"
示例#2
0
def test_unknown_error():
    error = Neo4jError("Oops", "Neo.UnknownError.General.Error")
    assert isinstance(error, Neo4jError)
    assert error.code == "Neo.UnknownError.General.Error"
    assert error.classification == "UnknownError"
    assert error.category == "General"
    assert error.title == "Error"
    assert error.message == "Oops"
    assert str(error) == "[General.Error] Oops"
示例#3
0
def test_transient_error():
    error = Neo4jError("Oops", "Neo.TransientError.General.Error")
    assert isinstance(error, TransientError)
    assert error.code == "Neo.TransientError.General.Error"
    assert error.classification == "TransientError"
    assert error.category == "General"
    assert error.title == "Error"
    assert error.message == "Oops"
    assert str(error) == "[General.Error] Oops"
示例#4
0
def test_database_error():
    error = Neo4jError("Oops", "Neo.DatabaseError.General.Error")
    assert isinstance(error, DatabaseError)
    assert error.code == "Neo.DatabaseError.General.Error"
    assert error.classification == "DatabaseError"
    assert error.category == "General"
    assert error.title == "Error"
    assert error.message == "Oops"
    assert str(error) == "[General.Error] Oops"
示例#5
0
def test_bad_code_part_count():
    with raises(ValueError):
        _ = Neo4jError("Oops", "Neo.ClientError.Error")
示例#6
0
def test_bad_code_prefix():
    with raises(ValueError):
        _ = Neo4jError("Oops", "Fake.ClientError.General.Error")
示例#7
0
def test_bad_code_type():
    with raises(ValueError):
        _ = Neo4jError("Oops", None)
示例#8
0
def test_lock_client_stopped_error_should_not_retry():
    error = Neo4jError("Oops", "Neo.TransientError.Transaction.LockClientStopped")
    assert not error.should_retry()
示例#9
0
 def set_failure(self, **metadata):
     self._status = 2
     self._failure = Neo4jError.hydrate(metadata)
示例#10
0
def test_transient_error_should_not_invalidate_routing_table():
    error = Neo4jError("Oops", "Neo.TransientError.General.Error")
    assert not error.should_invalidate_routing_table()
示例#11
0
def test_database_error_should_not_invalidate_routing_table():
    error = Neo4jError("Oops", "Neo.DatabaseError.General.Error")
    assert not error.should_invalidate_routing_table()
示例#12
0
def test_transient_error_should_retry():
    error = Neo4jError("Oops", "Neo.TransientError.General.Error")
    assert error.should_retry()
示例#13
0
def test_database_error_should_not_retry():
    error = Neo4jError("Oops", "Neo.DatabaseError.General.Error")
    assert not error.should_retry()
示例#14
0
def test_not_a_leader_error_should_retry():
    error = Neo4jError("Oops", "Neo.ClientError.Cluster.NotALeader")
    assert error.should_retry()
示例#15
0
def test_base_error_should_not_retry():
    error = Neo4jError("Oops", "Neo.UnknownError.General.Error")
    assert not error.should_retry()
示例#16
0
def test_client_error_should_not_retry():
    error = Neo4jError("Oops", "Neo.ClientError.General.Error")
    assert not error.should_retry()
示例#17
0
def test_not_a_leader_error_should_invalidate_routing_table():
    error = Neo4jError("Oops", "Neo.ClientError.Cluster.NotALeader")
    assert error.should_invalidate_routing_table()
示例#18
0
 def audit(self, tx=None):
     if self.errors():
         failure = Neo4jError.hydrate(self.errors().pop(0))
         if tx is not None:
             tx.mark_broken()
         raise failure
示例#19
0
def test_transaction_terminated_error_should_not_retry():
    error = Neo4jError("Oops", "Neo.TransientError.Transaction.Terminated")
    assert not error.should_retry()