summary refs log tree commit diff
path: root/tests/utils.py
diff options
context:
space:
mode:
authorDavid Robertson <davidr@element.io>2022-01-07 19:13:41 +0000
committerGitHub <noreply@github.com>2022-01-07 19:13:41 +0000
commitd3cf0730f8bf3de58d37060eff0dca3f69b4a0e1 (patch)
treefa88069fc6f9da3044b11e0c94b600339d4f90b5 /tests/utils.py
parentTest that bans win a join against a race when computing `/sync` response (#1... (diff)
downloadsynapse-d3cf0730f8bf3de58d37060eff0dca3f69b4a0e1.tar.xz
Optionally use an on-disk sqlite db in tests (#11702)
* Optionally use an on-disk sqlite db in tests

When debugging a test it is sometimes useful to inspect the state of the
DB. This is not easy when the db is in-memory: one cannot attach the
sqlite CLI to another process's DB.

With this change, if SYNAPSE_TEST_PERSIST_SQLITE_DB is set, we use
 `_trial_temp/test.db` as our sqlite database. One can then use 
`sqlite3 _trial_temp/test.db` and query to your heart's content.

The DB is destroyed and recreated between different test cases.

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Diffstat (limited to 'tests/utils.py')
-rw-r--r--tests/utils.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/tests/utils.py b/tests/utils.py
index 6d013e8518..c06fc320f3 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -42,6 +42,10 @@ POSTGRES_HOST = os.environ.get("SYNAPSE_POSTGRES_HOST", None)
 POSTGRES_PASSWORD = os.environ.get("SYNAPSE_POSTGRES_PASSWORD", None)
 POSTGRES_BASE_DB = "_synapse_unit_tests_base_%s" % (os.getpid(),)
 
+# When debugging a specific test, it's occasionally useful to write the
+# DB to disk and query it with the sqlite CLI.
+SQLITE_PERSIST_DB = os.environ.get("SYNAPSE_TEST_PERSIST_SQLITE_DB") is not None
+
 # the dbname we will connect to in order to create the base database.
 POSTGRES_DBNAME_FOR_INITIAL_CREATE = "postgres"