"""Test SINGLE storage mode specific session behavior.""" import importlib from unittest import mock import connector_neo4j @mock.patch("neo4j.GraphDatabase.driver") def test_read_connection(driver_create): """Test single session storage.""" importlib.reload(connector_neo4j) connector_neo4j.configure( "url", "username", "password", connector_neo4j.SessionStorageMode.SINGLE ) verify_connectivity = driver_create.return_value.verify_connectivity session_create = driver_create.return_value.session session = session_create.return_value session._transaction = False assert not session_create.called with connector_neo4j.Neo4jSession(): verify_connectivity.assert_not_called() assert session_create.called assert session_create.call_count == 1 assert session_create.call_args_list == [ mock.call(default_access_mode="READ", database=None) ] assert connector_neo4j.neo4j_session == session assert connector_neo4j.get_session() == session assert not session.close.called assert not session.begin_transaction.called assert session.close.called assert not session.commit.called assert not session.rollback.called assert connector_neo4j.neo4j_session is None @mock.patch("neo4j.GraphDatabase.driver") def test_read_connection_create_session_v2(driver_create): """Test single session storage with session_create_v2.""" importlib.reload(connector_neo4j) connector_neo4j.configure( "url", "username", "password", connector_neo4j.SessionStorageMode.SINGLE ) verify_connectivity = driver_create.return_value.verify_connectivity session_create = driver_create.return_value.session session = session_create.return_value session._transaction = False session_create.assert_not_called() with connector_neo4j.Neo4jSession(use_v2=True): verify_connectivity.assert_called_once() session_create.assert_called_once_with( default_access_mode="READ", database=None ) assert connector_neo4j.neo4j_session == session assert connector_neo4j.get_session() == session session.close.assert_not_called() session.begin_transaction.assert_not_called() session.close.assert_called_once() session.commit.assert_not_called() session.rollback.assert_not_called() assert connector_neo4j.neo4j_session is None