]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/python/test_db_connection.py
port wikipedia importance functions to python
[nominatim.git] / test / python / test_db_connection.py
index fd5da754284be7408c3f1711d1589601adc9b5b8..ce81c4f3995330c9f5d6b89b462d3e05669a112c 100644 (file)
@@ -2,6 +2,7 @@
 Tests for specialised conenction and cursor classes.
 """
 import pytest
+import psycopg2
 
 from nominatim.db.connection import connect, get_pg_env
 
@@ -11,10 +12,10 @@ def db(temp_db):
         yield conn
 
 
-def test_connection_table_exists(db, temp_db_cursor):
+def test_connection_table_exists(db, table_factory):
     assert db.table_exists('foobar') == False
 
-    temp_db_cursor.execute('CREATE TABLE foobar (id INT)')
+    table_factory('foobar')
 
     assert db.table_exists('foobar') == True
 
@@ -30,6 +31,22 @@ def test_connection_index_exists(db, temp_db_cursor):
     assert db.index_exists('some_index', table='bar') == False
 
 
+def test_drop_table_existing(db, table_factory):
+    table_factory('dummy')
+    assert db.table_exists('dummy')
+
+    db.drop_table('dummy')
+    assert not db.table_exists('dummy')
+
+
+def test_drop_table_non_existsing(db):
+    db.drop_table('dfkjgjriogjigjgjrdghehtre')
+
+
+def test_drop_table_non_existing_force(db):
+    with pytest.raises(psycopg2.ProgrammingError, match='.*does not exist.*'):
+        db.drop_table('dfkjgjriogjigjgjrdghehtre', if_exists=False)
+
 def test_connection_server_version_tuple(db):
     ver = db.server_version_tuple()
 
@@ -37,8 +54,19 @@ def test_connection_server_version_tuple(db):
     assert len(ver) == 2
     assert ver[0] > 8
 
-def test_cursor_scalar(db, temp_db_cursor):
-    temp_db_cursor.execute('CREATE TABLE dummy (id INT)')
+
+def test_connection_postgis_version_tuple(db, temp_db_cursor):
+    temp_db_cursor.execute('CREATE EXTENSION postgis')
+
+    ver = db.postgis_version_tuple()
+
+    assert isinstance(ver, tuple)
+    assert len(ver) == 2
+    assert ver[0] >= 2
+
+
+def test_cursor_scalar(db, table_factory):
+    table_factory('dummy')
 
     with db.cursor() as cur:
         assert cur.scalar('SELECT count(*) FROM dummy') == 0