libsql / sqlalchemy-libsql

SQLAchemy dialect for libSQL
MIT License
20 stars 7 forks source link

Test suite fails against libSQL server #3

Open penberg opened 1 year ago

penberg commented 1 year ago

I am running latest sqld locally and when I run poetry run pytest, I get the following set of test failures:

========================================================================================= sqlalchemy installation ==========================================================================================
SQLAlchemy 2.0.20 (user site loaded)
Path: /Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/sqlalchemy/__init__.py
compiled extension enabled, e.g. /Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/sqlalchemy/cyextension/util.cpython-311-darwin.so
/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/sqlalchemy/testing/config.py:280: PytestUnknownMarkWarning: Unknown pytest.mark.mypy - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
  return getattr(_fixture_functions.add_to_marker, attr)
=========================================================================================== test session starts ============================================================================================
platform darwin -- Python 3.11.4, pytest-7.4.0, pluggy-1.2.0 -- /Users/penberg/src/libsql/sqlalchemy-libsql/.env/bin/python3.11
cachedir: .pytest_cache
rootdir: /Users/penberg/src/libsql/sqlalchemy-libsql
configfile: pyproject.toml
collecting ... /Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/nodes.py:355: PytestUnknownMarkWarning: Unknown pytest.mark.backend - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
  marker_ = getattr(MARK_GEN, marker)
collected 193 items

test/test_suite.py::AttachedDBTest::test_col_targeting SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                        [  0%]
test/test_suite.py::AttachedDBTest::test_col_targeting_union SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                  [  1%]
test/test_suite.py::AttachedDBTest::test_column_names SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                         [  1%]
test/test_suite.py::AttachedDBTest::test_crud SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                                 [  2%]
test/test_suite.py::AttachedDBTest::test_no_tables SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                            [  2%]
test/test_suite.py::AttachedDBTest::test_reflect_system_table SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                 [  3%]
test/test_suite.py::AttachedDBTest::test_reflect_user_table SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                   [  3%]
test/test_suite.py::AttachedDBTest::test_schema_names SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                         [  4%]
test/test_suite.py::AttachedDBTest::test_table_names_present SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                  [  4%]
test/test_suite.py::AttachedDBTest::test_table_names_system SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                   [  5%]
test/test_suite.py::AutoIncrementTest::test_sqlite_autoincrement PASSED                                                                                                                              [  5%]
test/test_suite.py::AutoIncrementTest::test_sqlite_autoincrement_constraint PASSED                                                                                                                   [  6%]
test/test_suite.py::AutoIncrementTest::test_sqlite_autoincrement_int_affinity PASSED                                                                                                                 [  6%]
test/test_suite.py::AutoIncrementTest::test_sqlite_no_autoincrement PASSED                                                                                                                           [  7%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_check_constraint PASSED                                                                                                      [  7%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[ix-[Code]-Code] FAILED                                                                                       [  8%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[ix-[Code]-[Code]] FAILED                                                                                     [  8%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[ix-name with spaces-name with spaces] FAILED                                                                 [  9%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[ix-plain_name-plain_name] FAILED                                                                             [  9%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[ix-plainname-plainname] FAILED                                                                               [ 10%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[pk-[Code]-Code] PASSED                                                                                       [ 10%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[pk-[Code]-[Code]] PASSED                                                                                     [ 11%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[pk-name with spaces-name with spaces] PASSED                                                                 [ 11%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[pk-plain_name-plain_name] PASSED                                                                             [ 12%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[pk-plainname-plainname] PASSED                                                                               [ 12%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq-[Code]-Code] FAILED                                                                                       [ 13%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq-[Code]-[Code]] FAILED                                                                                     [ 13%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq-name with spaces-name with spaces] FAILED                                                                 [ 14%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq-plain_name-plain_name] FAILED                                                                             [ 15%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq-plainname-plainname] FAILED                                                                               [ 15%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq_inline-[Code]-Code] FAILED                                                                                [ 16%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq_inline-[Code]-[Code]] FAILED                                                                              [ 16%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq_inline-name with spaces-name with spaces] FAILED                                                          [ 17%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq_inline-plain_name-plain_name] FAILED                                                                      [ 17%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq_inline-plainname-plainname] FAILED                                                                        [ 18%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_create_index_with_schema FAILED                                                                                              [ 18%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_dont_reflect_autoindex FAILED                                                                                                [ 19%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_composite_broken_casing PASSED                                                                                   [ 19%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_composite_implicit_parent PASSED                                                                                 [ 20%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_deferrable_initially PASSED                                                                                      [ 20%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_implicit_missing_parent PASSED                                                                                   [ 21%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_implicit_missing_parent_reflection PASSED                                                                        [ 21%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_implicit_parent PASSED                                                                                           [ 22%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_name_is_none PASSED                                                                                              [ 22%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_name_is_not_none PASSED                                                                                          [ 23%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_ondelete_onupdate PASSED                                                                                         [ 23%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_options_unnamed_inline PASSED                                                                                    [ 24%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_legacy_quoted_identifiers_unit PASSED                                                                                        [ 24%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_primary_key_constraint_named PASSED                                                                                          [ 25%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_primary_key_constraint_no_pk PASSED                                                                                          [ 25%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_primary_key_constraint_unnamed PASSED                                                                                        [ 26%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_reflect_partial_indexes FAILED                                                                                               [ 26%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_named FAILED                                                                                               [ 27%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_named_broken_casing FAILED                                                                                 [ 27%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_named_broken_temp ERROR                                                                                    [ 28%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_unnamed_inline FAILED                                                                                      [ 29%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_unnamed_inline_quoted FAILED                                                                               [ 29%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_unnamed_normal FAILED                                                                                      [ 30%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_unnamed_normal_temporary ERROR                                                                             [ 30%]Traceback (most recent call last):
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/libsql_client/dbapi2/hrana.py", line 366, in _raw_execute_one
    result = self.connection._raw_execute(stmt)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/libsql_client/dbapi2/hrana.py", line 214, in wrapper
    return future.result(timeout=self._timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.11/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/concurrent/futures/_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/python@3.11/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/libsql_client/dbapi2/_async_executor.py", line 210, in run_in_main_loop
    r = await r
        ^^^^^^^
libsql_client.client.LibsqlError: SQLITE_UNKNOWN: SQLite error: no such table: main.a1

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1965, in _exec_single_context
    self.dialect.do_execute(
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 921, in do_execute
    cursor.execute(statement, parameters)
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/libsql_client/dbapi2/types.py", line 1333, in execute
    self._query_execute(sql, (parameters,), multiple=False, want_rows=True)
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/libsql_client/dbapi2/types.py", line 907, in wrapper
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/libsql_client/dbapi2/types.py", line 1314, in _query_execute
    _raise_converted_exception(error)
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/libsql_client/dbapi2/types.py", line 972, in _raise_converted_exception
    raise dbapi2_exc from exc
sqlite3.OperationalError: SQLITE_UNKNOWN: SQLite error: no such table: main.a1

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/bin/pytest", line 8, in <module>
    sys.exit(console_main())
             ^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/config/__init__.py", line 189, in console_main
    code = main()
           ^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/config/__init__.py", line 166, in main
    ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main(
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/pluggy/_hooks.py", line 433, in __call__
    return self._hookexec(self.name, self._hookimpls, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/pluggy/_manager.py", line 112, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/pluggy/_callers.py", line 116, in _multicall
    raise exception.with_traceback(exception.__traceback__)
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/pluggy/_callers.py", line 80, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/main.py", line 317, in pytest_cmdline_main
    return wrap_session(config, _main)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/main.py", line 305, in wrap_session
    config.hook.pytest_sessionfinish(
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/pluggy/_hooks.py", line 433, in __call__
    return self._hookexec(self.name, self._hookimpls, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/pluggy/_manager.py", line 112, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/pluggy/_callers.py", line 133, in _multicall
    teardown[0].send(outcome)
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/terminal.py", line 857, in pytest_sessionfinish
    outcome.get_result()
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/pluggy/_result.py", line 108, in get_result
    raise exc.with_traceback(exc.__traceback__)
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/pluggy/_callers.py", line 80, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/runner.py", line 108, in pytest_sessionfinish
    session._setupstate.teardown_exact(None)
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/runner.py", line 537, in teardown_exact
    raise exceptions[0]
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/runner.py", line 526, in teardown_exact
    fin()
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/fixtures.py", line 701, in <lambda>
    subrequest.node.addfinalizer(lambda: fixturedef.finish(request=subrequest))
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/fixtures.py", line 1031, in finish
    raise exc
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/fixtures.py", line 1024, in finish
    func()
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/fixtures.py", line 911, in _teardown_yield_fixture
    next(it)
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/sqlalchemy/testing/plugin/pytestplugin.py", line 531, in setup_class_methods
    asyncio._maybe_async(cls.teardown_test_class)
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/sqlalchemy/testing/asyncio.py", line 94, in _maybe_async
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/test/test_suite.py", line 1971, in teardown_test_class
    conn.exec_driver_sql("drop table %s" % name)
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1774, in exec_driver_sql
    ret = self._execute_context(
          ^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1844, in _execute_context
    return self._exec_single_context(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1984, in _exec_single_context
    self._handle_dbapi_exception(
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2339, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1965, in _exec_single_context
    self.dialect.do_execute(
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 921, in do_execute
    cursor.execute(statement, parameters)
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/libsql_client/dbapi2/types.py", line 1333, in execute
    self._query_execute(sql, (parameters,), multiple=False, want_rows=True)
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/libsql_client/dbapi2/types.py", line 907, in wrapper
    return fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/libsql_client/dbapi2/types.py", line 1314, in _query_execute
    _raise_converted_exception(error)
  File "/Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/libsql_client/dbapi2/types.py", line 972, in _raise_converted_exception
    raise dbapi2_exc from exc
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) SQLITE_UNKNOWN: SQLite error: no such table: main.a1
[SQL: drop table a2]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
penberg commented 1 year ago

Well, interestingly enough, the tests pass with the Hrana test server...

=========================================================================================== test session starts ============================================================================================
platform darwin -- Python 3.11.4, pytest-7.3.1, pluggy-1.0.0 -- /Users/penberg/src/libsql/sqlalchemy-libsql/.env/bin/python
cachedir: .pytest_cache
rootdir: /Users/penberg/src/libsql/sqlalchemy-libsql
configfile: pyproject.toml
collecting ... /Users/penberg/src/libsql/sqlalchemy-libsql/.env/lib/python3.11/site-packages/_pytest/nodes.py:354: PytestUnknownMarkWarning: Unknown pytest.mark.backend - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
  marker_ = getattr(MARK_GEN, marker)
collected 193 items

test/test_suite.py::AttachedDBTest::test_col_targeting SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                        [  0%]
test/test_suite.py::AttachedDBTest::test_col_targeting_union SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                  [  1%]
test/test_suite.py::AttachedDBTest::test_column_names SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                         [  1%]
test/test_suite.py::AttachedDBTest::test_crud SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                                 [  2%]
test/test_suite.py::AttachedDBTest::test_no_tables SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                            [  2%]
test/test_suite.py::AttachedDBTest::test_reflect_system_table SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                 [  3%]
test/test_suite.py::AttachedDBTest::test_reflect_user_table SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                   [  3%]
test/test_suite.py::AttachedDBTest::test_schema_names SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                         [  4%]
test/test_suite.py::AttachedDBTest::test_table_names_present SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                  [  4%]
test/test_suite.py::AttachedDBTest::test_table_names_system SKIPPED ('test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)                   [  5%]
test/test_suite.py::AutoIncrementTest::test_sqlite_autoincrement PASSED                                                                                                                              [  5%]
test/test_suite.py::AutoIncrementTest::test_sqlite_autoincrement_constraint PASSED                                                                                                                   [  6%]
test/test_suite.py::AutoIncrementTest::test_sqlite_autoincrement_int_affinity PASSED                                                                                                                 [  6%]
test/test_suite.py::AutoIncrementTest::test_sqlite_no_autoincrement PASSED                                                                                                                           [  7%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_check_constraint PASSED                                                                                                      [  7%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[ix-[Code]-Code] PASSED                                                                                       [  8%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[ix-[Code]-[Code]] PASSED                                                                                     [  8%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[ix-name with spaces-name with spaces] PASSED                                                                 [  9%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[ix-plain_name-plain_name] PASSED                                                                             [  9%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[ix-plainname-plainname] PASSED                                                                               [ 10%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[pk-[Code]-Code] PASSED                                                                                       [ 10%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[pk-[Code]-[Code]] PASSED                                                                                     [ 11%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[pk-name with spaces-name with spaces] PASSED                                                                 [ 11%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[pk-plain_name-plain_name] PASSED                                                                             [ 12%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[pk-plainname-plainname] PASSED                                                                               [ 12%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq-[Code]-Code] PASSED                                                                                       [ 13%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq-[Code]-[Code]] PASSED                                                                                     [ 13%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq-name with spaces-name with spaces] PASSED                                                                 [ 14%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq-plain_name-plain_name] PASSED                                                                             [ 15%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq-plainname-plainname] PASSED                                                                               [ 15%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq_inline-[Code]-Code] PASSED                                                                                [ 16%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq_inline-[Code]-[Code]] PASSED                                                                              [ 16%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq_inline-name with spaces-name with spaces] PASSED                                                          [ 17%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq_inline-plain_name-plain_name] PASSED                                                                      [ 17%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_constraint_cols[uq_inline-plainname-plainname] PASSED                                                                        [ 18%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_create_index_with_schema PASSED                                                                                              [ 18%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_dont_reflect_autoindex PASSED                                                                                                [ 19%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_composite_broken_casing PASSED                                                                                   [ 19%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_composite_implicit_parent PASSED                                                                                 [ 20%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_deferrable_initially PASSED                                                                                      [ 20%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_implicit_missing_parent PASSED                                                                                   [ 21%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_implicit_missing_parent_reflection PASSED                                                                        [ 21%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_implicit_parent PASSED                                                                                           [ 22%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_name_is_none PASSED                                                                                              [ 22%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_name_is_not_none PASSED                                                                                          [ 23%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_ondelete_onupdate PASSED                                                                                         [ 23%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_foreign_key_options_unnamed_inline PASSED                                                                                    [ 24%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_legacy_quoted_identifiers_unit PASSED                                                                                        [ 24%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_primary_key_constraint_named PASSED                                                                                          [ 25%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_primary_key_constraint_no_pk PASSED                                                                                          [ 25%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_primary_key_constraint_unnamed PASSED                                                                                        [ 26%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_reflect_partial_indexes PASSED                                                                                               [ 26%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_named PASSED                                                                                               [ 27%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_named_broken_casing PASSED                                                                                 [ 27%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_named_broken_temp PASSED                                                                                   [ 28%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_unnamed_inline PASSED                                                                                      [ 29%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_unnamed_inline_quoted PASSED                                                                               [ 29%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_unnamed_normal PASSED                                                                                      [ 30%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unique_constraint_unnamed_normal_temporary PASSED                                                                            [ 30%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unnamed_inline_foreign_key PASSED                                                                                            [ 31%]
test/test_suite.py::ConstraintReflectionTest_sqlite+libsql_3_42_0::test_unnamed_inline_foreign_key_quoted PASSED                                                                                     [ 31%]
test/test_suite.py::DateTest::test_custom_format PASSED                                                                                                                                              [ 32%]
test/test_suite.py::DateTest::test_default PASSED                                                                                                                                                    [ 32%]
test/test_suite.py::DateTimeTest::test_custom_format_compact PASSED                                                                                                                                  [ 33%]
test/test_suite.py::DateTimeTest::test_time_microseconds PASSED                                                                                                                                      [ 33%]
test/test_suite.py::DateTimeTest::test_truncate_microseconds PASSED                                                                                                                                  [ 34%]
test/test_suite.py::DefaultsTest_sqlite+libsql_3_42_0::test_boolean_default PASSED                                                                                                                   [ 34%]
test/test_suite.py::DefaultsTest_sqlite+libsql_3_42_0::test_default_reflection PASSED                                                                                                                [ 35%]
test/test_suite.py::DefaultsTest_sqlite+libsql_3_42_0::test_default_reflection_2 PASSED                                                                                                              [ 35%]
test/test_suite.py::DefaultsTest_sqlite+libsql_3_42_0::test_default_reflection_3 PASSED                                                                                                              [ 36%]
test/test_suite.py::DefaultsTest_sqlite+libsql_3_42_0::test_expression_with_function_default PASSED                                                                                                  [ 36%]
test/test_suite.py::DefaultsTest_sqlite+libsql_3_42_0::test_function_default PASSED                                                                                                                  [ 37%]
test/test_suite.py::DefaultsTest_sqlite+libsql_3_42_0::test_old_style_default PASSED                                                                                                                 [ 37%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_3_7_16_warning PASSED                                                                                                                     [ 38%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_column_computed[no_persisted] PASSED                                                                                                      [ 38%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_column_computed[persisted_false] PASSED                                                                                                   [ 39%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_column_computed[persisted_none] PASSED                                                                                                    [ 39%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_column_computed[persisted_true] PASSED                                                                                                    [ 40%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_connect_args[sqlite+libsql://-expected2] PASSED                                                                                           [ 40%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_connect_args[sqlite+libsql:////abs/path/to/foo.db-expected1] PASSED                                                                       [ 41%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_connect_args[sqlite+libsql:///?check_same_thread=true-expected3] PASSED                                                                   [ 41%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_connect_args[sqlite+libsql:///file:path/to/database?check_same_thread=true&timeout=10&mode=ro&nolock=1&uri=true-expected4] PASSED         [ 42%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_connect_args[sqlite+libsql:///file:path/to/database?mode=ro&uri=true-expected5] PASSED                                                    [ 43%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_connect_args[sqlite+libsql:///file:path/to/database?uri=true-expected6] PASSED                                                            [ 43%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_connect_args[sqlite+libsql:///foo.db-expected0] PASSED                                                                                    [ 44%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_connect_args[sqlite+libsql://localhost:8080?authToken=JWT_HERE&secure=true-expected7] PASSED                                              [ 44%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_connect_args[sqlite+libsql://localhost:8080?authToken=JWT_HERE-expected8] PASSED                                                          [ 45%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_description_encoding PASSED                                                                                                               [ 45%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_extra_reserved_words PASSED                                                                                                               [ 46%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_pool_class PASSED                                                                                                                         [ 46%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_pysqlcipher_connects SKIPPED ('test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_pysqlcipher_connects (call)' : not sqlite+p...) [ 47%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_quoted_identifiers_functional_one PASSED                                                                                                  [ 47%]
test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_quoted_identifiers_functional_two PASSED                                                                                                  [ 48%]
test/test_suite.py::InsertTest_sqlite+libsql_3_42_0::test_empty_insert_nopk1 PASSED                                                                                                                  [ 48%]
test/test_suite.py::InsertTest_sqlite+libsql_3_42_0::test_empty_insert_nopk2 PASSED                                                                                                                  [ 49%]
test/test_suite.py::InsertTest_sqlite+libsql_3_42_0::test_empty_insert_pk1 PASSED                                                                                                                    [ 49%]
test/test_suite.py::InsertTest_sqlite+libsql_3_42_0::test_empty_insert_pk2 PASSED                                                                                                                    [ 50%]
test/test_suite.py::InsertTest_sqlite+libsql_3_42_0::test_empty_insert_pk2_fv PASSED                                                                                                                 [ 50%]
test/test_suite.py::InsertTest_sqlite+libsql_3_42_0::test_empty_insert_pk3 PASSED                                                                                                                    [ 51%]
test/test_suite.py::InsertTest_sqlite+libsql_3_42_0::test_empty_insert_pk3_fv PASSED                                                                                                                 [ 51%]
test/test_suite.py::InsertTest_sqlite+libsql_3_42_0::test_empty_insert_pk4 PASSED                                                                                                                    [ 52%]
test/test_suite.py::InsertTest_sqlite+libsql_3_42_0::test_inserts_with_spaces PASSED                                                                                                                 [ 52%]
test/test_suite.py::JSONTest_sqlite+libsql_3_42_0::test_deprecated_serializer_args PASSED                                                                                                            [ 53%]
test/test_suite.py::JSONTest_sqlite+libsql_3_42_0::test_extract_subobject PASSED                                                                                                                     [ 53%]
test/test_suite.py::JSONTest_sqlite+libsql_3_42_0::test_reflection PASSED                                                                                                                            [ 54%]
test/test_suite.py::JSONTest_sqlite+libsql_3_42_0::test_rudimentary_roundtrip PASSED                                                                                                                 [ 54%]
test/test_suite.py::KeywordInDatabaseNameTest::test_reflect SKIPPED ('test.test_suite.KeywordInDatabaseNameTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function)        [ 55%]
test/test_suite.py::MatchTest_sqlite+libsql_3_42_0::test_and_match PASSED                                                                                                                            [ 55%]
test/test_suite.py::MatchTest_sqlite+libsql_3_42_0::test_expression PASSED                                                                                                                           [ 56%]
test/test_suite.py::MatchTest_sqlite+libsql_3_42_0::test_match_across_joins PASSED                                                                                                                   [ 56%]
test/test_suite.py::MatchTest_sqlite+libsql_3_42_0::test_or_match PASSED                                                                                                                             [ 57%]
test/test_suite.py::MatchTest_sqlite+libsql_3_42_0::test_simple_match PASSED                                                                                                                         [ 58%]
test/test_suite.py::MatchTest_sqlite+libsql_3_42_0::test_simple_prefix_match PASSED                                                                                                                  [ 58%]
test/test_suite.py::OnConflictDDLTest::test_on_conflict_clause_check_constraint PASSED                                                                                                               [ 59%]
test/test_suite.py::OnConflictDDLTest::test_on_conflict_clause_check_constraint_from_column PASSED                                                                                                   [ 59%]
test/test_suite.py::OnConflictDDLTest::test_on_conflict_clause_column_many_clause PASSED                                                                                                             [ 60%]
test/test_suite.py::OnConflictDDLTest::test_on_conflict_clause_column_not_null PASSED                                                                                                                [ 60%]
test/test_suite.py::OnConflictDDLTest::test_on_conflict_clause_primary_key PASSED                                                                                                                    [ 61%]
test/test_suite.py::OnConflictDDLTest::test_on_conflict_clause_primary_key_constraint PASSED                                                                                                         [ 61%]
test/test_suite.py::OnConflictDDLTest::test_on_conflict_clause_primary_key_constraint_from_column PASSED                                                                                             [ 62%]
test/test_suite.py::OnConflictDDLTest::test_on_conflict_clause_unique_constraint PASSED                                                                                                              [ 62%]
test/test_suite.py::OnConflictDDLTest::test_on_conflict_clause_unique_constraint_from_column PASSED                                                                                                  [ 63%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_bad_args PASSED                                                                                                                        [ 63%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_no_call_twice PASSED                                                                                                    [ 64%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_nothing PASSED                                                                                                          [ 64%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_nothing_connectionless PASSED                                                                                           [ 65%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_nothing_target PASSED                                                                                                   [ 65%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_clauseelem_keys PASSED                                                                                           [ 66%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_column_keys PASSED                                                                                               [ 66%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_exotic_targets_five PASSED                                                                                       [ 67%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_exotic_targets_four PASSED                                                                                       [ 67%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_exotic_targets_four_no_pk PASSED                                                                                 [ 68%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_exotic_targets_six PASSED                                                                                        [ 68%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_exotic_targets_three PASSED                                                                                      [ 69%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_exotic_targets_two PASSED                                                                                        [ 69%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_five PASSED                                                                                                      [ 70%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_four PASSED                                                                                                      [ 70%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_multivalues PASSED                                                                                               [ 71%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_no_row_actually_affected PASSED                                                                                  [ 72%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_one[issue_5939] PASSED                                                                                           [ 72%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_one[with_dict] PASSED                                                                                            [ 73%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_special_types_in_set PASSED                                                                                      [ 73%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_three PASSED                                                                                                     [ 74%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_on_conflict_do_update_two PASSED                                                                                                       [ 74%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_set_excluded[control] PASSED                                                                                                           [ 75%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_set_excluded[dict] PASSED                                                                                                              [ 75%]
test/test_suite.py::OnConflictTest_sqlite+libsql_3_42_0::test_set_excluded[excluded] PASSED                                                                                                          [ 76%]
test/test_suite.py::ReflectHeadlessFKsTest_sqlite+libsql_3_42_0::test_reflect_tables_fk_no_colref PASSED                                                                                             [ 76%]
test/test_suite.py::ReflectInternalSchemaTables_sqlite+libsql_3_42_0::test_get_table_names PASSED                                                                                                    [ 77%]
test/test_suite.py::ReflectInternalSchemaTables_sqlite+libsql_3_42_0::test_get_temp_table_names PASSED                                                                                               [ 77%]
test/test_suite.py::ReflectInternalSchemaTables_sqlite+libsql_3_42_0::test_get_temp_view_names PASSED                                                                                                [ 78%]
test/test_suite.py::ReflectInternalSchemaTables_sqlite+libsql_3_42_0::test_get_view_names PASSED                                                                                                     [ 78%]
test/test_suite.py::RegexpTest::test_determinsitic_parameter PASSED                                                                                                                                  [ 79%]
test/test_suite.py::RegexpTest::test_not_regexp_match PASSED                                                                                                                                         [ 79%]
test/test_suite.py::RegexpTest::test_not_regexp_match_column PASSED                                                                                                                                  [ 80%]
test/test_suite.py::RegexpTest::test_not_regexp_match_flags PASSED                                                                                                                                   [ 80%]
test/test_suite.py::RegexpTest::test_not_regexp_match_str PASSED                                                                                                                                     [ 81%]
test/test_suite.py::RegexpTest::test_regexp_match PASSED                                                                                                                                             [ 81%]
test/test_suite.py::RegexpTest::test_regexp_match_column PASSED                                                                                                                                      [ 82%]
test/test_suite.py::RegexpTest::test_regexp_match_flags PASSED                                                                                                                                       [ 82%]
test/test_suite.py::RegexpTest::test_regexp_match_str PASSED                                                                                                                                         [ 83%]
test/test_suite.py::RegexpTest::test_regexp_replace PASSED                                                                                                                                           [ 83%]
test/test_suite.py::SQLTest::test_column_defaults_ddl PASSED                                                                                                                                         [ 84%]
test/test_suite.py::SQLTest::test_constraints_with_schemas PASSED                                                                                                                                    [ 84%]
test/test_suite.py::SQLTest::test_create_partial_index PASSED                                                                                                                                        [ 85%]
test/test_suite.py::SQLTest::test_create_table_without_rowid PASSED                                                                                                                                  [ 86%]
test/test_suite.py::SQLTest::test_extract PASSED                                                                                                                                                     [ 86%]
test/test_suite.py::SQLTest::test_in_tuple PASSED                                                                                                                                                    [ 87%]
test/test_suite.py::SQLTest::test_is_distinct_from PASSED                                                                                                                                            [ 87%]
test/test_suite.py::SQLTest::test_localtime PASSED                                                                                                                                                   [ 88%]
test/test_suite.py::SQLTest::test_no_autoinc_on_composite_pk PASSED                                                                                                                                  [ 88%]
test/test_suite.py::SQLTest::test_plain_stringify_returning PASSED                                                                                                                                   [ 89%]
test/test_suite.py::SQLTest::test_true_false PASSED                                                                                                                                                  [ 89%]
test/test_suite.py::SavepointTest::test_nested_subtransaction_commit SKIPPED ('test.test_suite.SavepointTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'marked as skip)            [ 90%]
test/test_suite.py::SavepointTest::test_nested_subtransaction_rollback SKIPPED ('test.test_suite.SavepointTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'marked as skip)          [ 90%]
test/test_suite.py::TestTypes_sqlite+libsql_3_42_0::test_boolean PASSED                                                                                                                              [ 91%]
test/test_suite.py::TestTypes_sqlite+libsql_3_42_0::test_cant_parse_datetime_message PASSED                                                                                                          [ 91%]
test/test_suite.py::TestTypes_sqlite+libsql_3_42_0::test_custom_date PASSED                                                                                                                          [ 92%]
test/test_suite.py::TestTypes_sqlite+libsql_3_42_0::test_custom_date_text_affinity PASSED                                                                                                            [ 92%]
test/test_suite.py::TestTypes_sqlite+libsql_3_42_0::test_custom_datetime PASSED                                                                                                                      [ 93%]
test/test_suite.py::TestTypes_sqlite+libsql_3_42_0::test_custom_datetime_text_affinity PASSED                                                                                                        [ 93%]
test/test_suite.py::TestTypes_sqlite+libsql_3_42_0::test_native_datetime PASSED                                                                                                                      [ 94%]
test/test_suite.py::TestTypes_sqlite+libsql_3_42_0::test_no_convert_unicode PASSED                                                                                                                   [ 94%]
test/test_suite.py::TestTypes_sqlite+libsql_3_42_0::test_string_dates_passed_raise PASSED                                                                                                            [ 95%]
test/test_suite.py::TimeTest::test_custom_format PASSED                                                                                                                                              [ 95%]
test/test_suite.py::TimeTest::test_default PASSED                                                                                                                                                    [ 96%]
test/test_suite.py::TimeTest::test_truncate_microseconds PASSED                                                                                                                                      [ 96%]
test/test_suite.py::TypeReflectionTest_sqlite+libsql_3_42_0::test_lookup_direct_lookup PASSED                                                                                                        [ 97%]
test/test_suite.py::TypeReflectionTest_sqlite+libsql_3_42_0::test_lookup_direct_type_affinity PASSED                                                                                                 [ 97%]
test/test_suite.py::TypeReflectionTest_sqlite+libsql_3_42_0::test_lookup_direct_unsupported_args PASSED                                                                                              [ 98%]
test/test_suite.py::TypeReflectionTest_sqlite+libsql_3_42_0::test_round_trip_direct_lookup PASSED                                                                                                    [ 98%]
test/test_suite.py::TypeReflectionTest_sqlite+libsql_3_42_0::test_round_trip_direct_type_affinity PASSED                                                                                             [ 99%]
test/test_suite.py::TypeReflectionTest_sqlite+libsql_3_42_0::test_round_trip_direct_unsupported_args PASSED                                                                                          [100%]

========================================================================================= short test summary info ==========================================================================================
SKIPPED [10] .env/lib/python3.11/site-packages/sqlalchemy/testing/config.py:385: 'test.test_suite.AttachedDBTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function
SKIPPED [1] .env/lib/python3.11/site-packages/sqlalchemy/testing/config.py:385: 'test/test_suite.py::DialectTest_sqlite+libsql_3_42_0::test_pysqlcipher_connects (call)' : not sqlite+pysqlcipher
SKIPPED [1] .env/lib/python3.11/site-packages/sqlalchemy/testing/config.py:385: 'test.test_suite.KeywordInDatabaseNameTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'custom function
SKIPPED [2] .env/lib/python3.11/site-packages/sqlalchemy/testing/config.py:385: 'test.test_suite.SavepointTest' unsupported on any DB implementation 'sqlite(3.42.0)+libsql'marked as skip
===================================================================================== 179 passed, 14 skipped in 0.78s ======================================================================================
penberg commented 1 year ago

The issue here seems to be that the Hrana test server isolates every connection by default, which is not the case with sqld. Let's work on making the test suite work with sqld by isolating in the tests.

barbieri commented 1 year ago

for savepoint, take a look at https://github.com/libsql/sqlalchemy-libsql/blob/main/sqlalchemy_libsql/requirements.py#L68-L72

The final error seems to be related to the teardown_test_class of ConstraintReflectionTest, trying to drop an non-existing table (likely because something else failed before and it wasn't created)