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):
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)
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')
def test_get_pg_env_ignore_unknown():
- env = get_pg_env('tty=stuff', base_env={})
+ env = get_pg_env('client_encoding=stuff', base_env={})
assert env == {}