def test_supported_sqlite(caplog, sqlite_version): """Test setting up the connection for a supported sqlite version.""" instance_mock = MagicMock(_db_supports_row_number=True) execute_args = [] close_mock = MagicMock() def execute_mock(statement): nonlocal execute_args execute_args.append(statement) def fetchall_mock(): nonlocal execute_args if execute_args[-1] == "SELECT sqlite_version()": return [[sqlite_version]] return None def _make_cursor_mock(*_): return MagicMock(execute=execute_mock, close=close_mock, fetchall=fetchall_mock) dbapi_connection = MagicMock(cursor=_make_cursor_mock) util.setup_connection_for_dialect(instance_mock, "sqlite", dbapi_connection, True) assert "minimum supported version" not in caplog.text
def test_fail_outdated_sqlite(caplog, sqlite_version, message): """Test setting up the connection for an outdated sqlite version.""" instance_mock = MagicMock() execute_args = [] close_mock = MagicMock() def execute_mock(statement): nonlocal execute_args execute_args.append(statement) def fetchall_mock(): nonlocal execute_args if execute_args[-1] == "SELECT sqlite_version()": return [[sqlite_version]] return None def _make_cursor_mock(*_): return MagicMock(execute=execute_mock, close=close_mock, fetchall=fetchall_mock) dbapi_connection = MagicMock(cursor=_make_cursor_mock) with pytest.raises(UnsupportedDialect): util.setup_connection_for_dialect(instance_mock, "sqlite", dbapi_connection, True) assert message in caplog.text
def test_warn_outdated_pgsql(caplog, pgsql_version, message): """Test setting up the connection for an outdated PostgreSQL version.""" instance_mock = MagicMock(_db_supports_row_number=True) execute_args = [] close_mock = MagicMock() def execute_mock(statement): nonlocal execute_args execute_args.append(statement) def fetchall_mock(): nonlocal execute_args if execute_args[-1] == "SHOW server_version": return [[pgsql_version]] return None def _make_cursor_mock(*_): return MagicMock(execute=execute_mock, close=close_mock, fetchall=fetchall_mock) dbapi_connection = MagicMock(cursor=_make_cursor_mock) util.setup_connection_for_dialect(instance_mock, "postgresql", dbapi_connection, True) assert message in caplog.text
def test_setup_connection_for_dialect_mysql(mysql_version, db_supports_row_number): """Test setting up the connection for a mysql dialect.""" instance_mock = MagicMock(_db_supports_row_number=True) execute_args = [] close_mock = MagicMock() def execute_mock(statement): nonlocal execute_args execute_args.append(statement) def fetchall_mock(): nonlocal execute_args if execute_args[-1] == "SELECT VERSION()": return [[mysql_version]] return None def _make_cursor_mock(*_): return MagicMock(execute=execute_mock, close=close_mock, fetchall=fetchall_mock) dbapi_connection = MagicMock(cursor=_make_cursor_mock) util.setup_connection_for_dialect(instance_mock, "mysql", dbapi_connection, True) assert len(execute_args) == 2 assert execute_args[0] == "SET session wait_timeout=28800" assert execute_args[1] == "SELECT VERSION()" assert instance_mock._db_supports_row_number == db_supports_row_number
def test_warn_unsupported_dialect(caplog, dialect, message): """Test setting up the connection for an outdated sqlite version.""" instance_mock = MagicMock() dbapi_connection = MagicMock() util.setup_connection_for_dialect(instance_mock, dialect, dbapi_connection, True) assert message in caplog.text
def test_setup_connection_for_dialect_mysql(): """Test setting up the connection for a mysql dialect.""" execute_mock = MagicMock() close_mock = MagicMock() def _make_cursor_mock(*_): return MagicMock(execute=execute_mock, close=close_mock) dbapi_connection = MagicMock(cursor=_make_cursor_mock) util.setup_connection_for_dialect("mysql", dbapi_connection, True) assert execute_mock.call_args[0][0] == "SET session wait_timeout=28800"
def test_setup_connection_for_dialect_sqlite(sqlite_version, db_supports_row_number): """Test setting up the connection for a sqlite dialect.""" instance_mock = MagicMock(_db_supports_row_number=True) execute_args = [] close_mock = MagicMock() def execute_mock(statement): nonlocal execute_args execute_args.append(statement) def fetchall_mock(): nonlocal execute_args if execute_args[-1] == "SELECT sqlite_version()": return [[sqlite_version]] return None def _make_cursor_mock(*_): return MagicMock(execute=execute_mock, close=close_mock, fetchall=fetchall_mock) dbapi_connection = MagicMock(cursor=_make_cursor_mock) util.setup_connection_for_dialect(instance_mock, "sqlite", dbapi_connection, True) assert len(execute_args) == 4 assert execute_args[0] == "PRAGMA journal_mode=WAL" assert execute_args[1] == "SELECT sqlite_version()" assert execute_args[2] == "PRAGMA cache_size = -8192" assert execute_args[3] == "PRAGMA foreign_keys=ON" execute_args = [] util.setup_connection_for_dialect(instance_mock, "sqlite", dbapi_connection, False) assert len(execute_args) == 2 assert execute_args[0] == "PRAGMA cache_size = -8192" assert execute_args[1] == "PRAGMA foreign_keys=ON" assert instance_mock._db_supports_row_number == db_supports_row_number
def test_setup_connection_for_dialect_sqlite_zero_commit_interval( sqlite_version, ): """Test setting up the connection for a sqlite dialect with a zero commit interval.""" instance_mock = MagicMock(commit_interval=0) execute_args = [] close_mock = MagicMock() def execute_mock(statement): nonlocal execute_args execute_args.append(statement) def fetchall_mock(): nonlocal execute_args if execute_args[-1] == "SELECT sqlite_version()": return [[sqlite_version]] return None def _make_cursor_mock(*_): return MagicMock(execute=execute_mock, close=close_mock, fetchall=fetchall_mock) dbapi_connection = MagicMock(cursor=_make_cursor_mock) util.setup_connection_for_dialect(instance_mock, "sqlite", dbapi_connection, True) assert len(execute_args) == 5 assert execute_args[0] == "PRAGMA journal_mode=WAL" assert execute_args[1] == "SELECT sqlite_version()" assert execute_args[2] == "PRAGMA cache_size = -16384" assert execute_args[3] == "PRAGMA synchronous=FULL" assert execute_args[4] == "PRAGMA foreign_keys=ON" execute_args = [] util.setup_connection_for_dialect(instance_mock, "sqlite", dbapi_connection, False) assert len(execute_args) == 3 assert execute_args[0] == "PRAGMA cache_size = -16384" assert execute_args[1] == "PRAGMA synchronous=FULL" assert execute_args[2] == "PRAGMA foreign_keys=ON"
def test_setup_connection_for_dialect_sqlite(): """Test setting up the connection for a sqlite dialect.""" execute_mock = MagicMock() close_mock = MagicMock() def _make_cursor_mock(*_): return MagicMock(execute=execute_mock, close=close_mock) dbapi_connection = MagicMock(cursor=_make_cursor_mock) util.setup_connection_for_dialect("sqlite", dbapi_connection, True) assert len(execute_mock.call_args_list) == 2 assert execute_mock.call_args_list[0][0][0] == "PRAGMA journal_mode=WAL" assert execute_mock.call_args_list[1][0][0] == "PRAGMA cache_size = -8192" execute_mock.reset_mock() util.setup_connection_for_dialect("sqlite", dbapi_connection, False) assert len(execute_mock.call_args_list) == 1 assert execute_mock.call_args_list[0][0][0] == "PRAGMA cache_size = -8192"
def test_setup_connection_for_dialect_sqlite(): """Test setting up the connection for a sqlite dialect.""" execute_mock = MagicMock() close_mock = MagicMock() def _make_cursor_mock(*_): return MagicMock(execute=execute_mock, close=close_mock) dbapi_connection = MagicMock(cursor=_make_cursor_mock) assert util.setup_connection_for_dialect("sqlite", dbapi_connection) is True assert execute_mock.call_args[0][0] == "PRAGMA journal_mode=WAL"