]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/python/test_db_connection.py
add function to set up libpq environment
[nominatim.git] / test / python / test_db_connection.py
index 11ad691aa64e3ab7bef6b182936a2ad57529d670..fd5da754284be7408c3f1711d1589601adc9b5b8 100644 (file)
@@ -3,13 +3,12 @@ Tests for specialised conenction and cursor classes.
 """
 import pytest
 
-from nominatim.db.connection import connect
+from nominatim.db.connection import connect, get_pg_env
 
 @pytest.fixture
 def db(temp_db):
-    conn = connect('dbname=' + temp_db)
-    yield conn
-    conn.close()
+    with connect('dbname=' + temp_db) as conn:
+        yield conn
 
 
 def test_connection_table_exists(db, temp_db_cursor):
@@ -49,3 +48,24 @@ def test_cursor_scalar_many_rows(db):
     with db.cursor() as cur:
         with pytest.raises(RuntimeError):
             cur.scalar('SELECT * FROM pg_tables')
+
+
+def test_get_pg_env_add_variable(monkeypatch):
+    monkeypatch.delenv('PGPASSWORD', raising=False)
+    env = get_pg_env('user=fooF')
+
+    assert env['PGUSER'] == 'fooF'
+    assert 'PGPASSWORD' not in env
+
+
+def test_get_pg_env_overwrite_variable(monkeypatch):
+    monkeypatch.setenv('PGUSER', 'some default')
+    env = get_pg_env('user=overwriter')
+
+    assert env['PGUSER'] == 'overwriter'
+
+
+def test_get_pg_env_ignore_unknown():
+    env = get_pg_env('tty=stuff', base_env={})
+
+    assert env == {}