mirror of
https://github.com/element-hq/synapse.git
synced 2026-08-15 13:30:47 +00:00
Add the end-to-end test suite for the Rust DBAPI2 backend, driving the real tokio-postgres client against a live Postgres server. It is skipped unless the suite is configured for Postgres (SYNAPSE_POSTGRES), the same switch the rest of the suite uses. These cover the behaviours that need a real server rather than the in-memory fakes the Rust unit tests use: connect (good and bad DSN), run_interaction (return value, arg/kwarg forwarding, commit on success, rollback on a Python exception, and recovery after both a Python-raised and a server-rejected statement, including a constraint violation), cursor reuse across queries, the fetch_one/fetch_all/fetch_next_batch/rowcount surface (including batching across a 1000-row result set and the exhausted-vs-no-active-query error distinction), and value round-trips for every supported type (NULL, bytea with NUL/high bytes, float4 lossiness, and an out-of-range int bound to a real int4 column). A separately-guarded case exercises the libpq default-host fixup by connecting with a DSN that omits the host. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>