]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
Repair pysqlcipher and use sqlcipher3
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 24 Mar 2021 15:33:04 +0000 (11:33 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 24 Mar 2021 23:04:30 +0000 (19:04 -0400)
commit4476dca00786adef5da3bcf74699e0b217f8ffa6
treeef4e6e9a82a768e04d5fd8ba3fb3ef2aa6cb270c
parent218177c4d60c5c4ab0524a0ab347e1c711458e3c
Repair pysqlcipher and use sqlcipher3

The ``pysqlcipher`` dialect now imports the ``sqlcipher3`` module
for Python 3 by default.    Regressions have been repaired such that
the connection routine was not working.

To better support the post-connection steps of the pysqlcipher
dialect, a new hook Dialect.on_connect_url() is added, which
supersedes Dialect.on_connect() and is passed the URL object.
The dialect now pulls the passphrase and other cipher args
from the URL directly without including them in the
"connect" args.  This will allow any user-defined extensibility
to connecting to work as it would for other dialects.

The commit also builds upon the extended routines in
sqlite/provisioning.py to better support running tests against
multiple simultaneous SQLite database files.  Additionally enables
backend for test_sqlite which was skipping everything
for aiosqlite too, fortunately everything there is passing.

Fixes: #5848
Change-Id: I43f53ebc62298a84a4abe149e1eb699a027b7915
doc/build/changelog/unreleased_14/5848.rst [new file with mode: 0644]
doc/build/dialects/sqlite.rst
lib/sqlalchemy/dialects/sqlite/provision.py
lib/sqlalchemy/dialects/sqlite/pysqlcipher.py
lib/sqlalchemy/engine/create.py
lib/sqlalchemy/engine/interfaces.py
lib/sqlalchemy/testing/requirements.py
setup.cfg
test/dialect/test_sqlite.py
tox.ini