]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/python/test_db_connection.py
switch to a more flexible variant description format
[nominatim.git] / test / python / test_db_connection.py
index ce81c4f3995330c9f5d6b89b462d3e05669a112c..41978e59135513682cb04bc088d00338df78c499 100644 (file)
@@ -7,28 +7,28 @@ import psycopg2
 from nominatim.db.connection import connect, get_pg_env
 
 @pytest.fixture
-def db(temp_db):
-    with connect('dbname=' + temp_db) as conn:
+def db(dsn):
+    with connect(dsn) as conn:
         yield conn
 
 
 def test_connection_table_exists(db, table_factory):
-    assert db.table_exists('foobar') == False
+    assert not db.table_exists('foobar')
 
     table_factory('foobar')
 
-    assert db.table_exists('foobar') == True
+    assert db.table_exists('foobar')
 
 
-def test_connection_index_exists(db, temp_db_cursor):
-    assert db.index_exists('some_index') == False
+def test_connection_index_exists(db, table_factory, temp_db_cursor):
+    assert not db.index_exists('some_index')
 
-    temp_db_cursor.execute('CREATE TABLE foobar (id INT)')
+    table_factory('foobar')
     temp_db_cursor.execute('CREATE INDEX some_index ON foobar(id)')
 
-    assert db.index_exists('some_index') == True
-    assert db.index_exists('some_index', table='foobar') == True
-    assert db.index_exists('some_index', table='bar') == False
+    assert db.index_exists('some_index')
+    assert db.index_exists('some_index', table='foobar')
+    assert not db.index_exists('some_index', table='bar')
 
 
 def test_drop_table_existing(db, table_factory):
@@ -55,9 +55,7 @@ def test_connection_server_version_tuple(db):
     assert ver[0] > 8
 
 
-def test_connection_postgis_version_tuple(db, temp_db_cursor):
-    temp_db_cursor.execute('CREATE EXTENSION postgis')
-
+def test_connection_postgis_version_tuple(db, temp_db_with_extensions):
     ver = db.postgis_version_tuple()
 
     assert isinstance(ver, tuple)
@@ -78,6 +76,14 @@ def test_cursor_scalar_many_rows(db):
             cur.scalar('SELECT * FROM pg_tables')
 
 
+def test_cursor_scalar_no_rows(db, table_factory):
+    table_factory('dummy')
+
+    with db.cursor() as cur:
+        with pytest.raises(RuntimeError):
+            cur.scalar('SELECT id FROM dummy')
+
+
 def test_get_pg_env_add_variable(monkeypatch):
     monkeypatch.delenv('PGPASSWORD', raising=False)
     env = get_pg_env('user=fooF')