+def test_connection_index_exists(db, table_factory, temp_db_cursor):
+ assert not db.index_exists('some_index')
+
+ table_factory('foobar')
+ temp_db_cursor.execute('CREATE INDEX some_index ON foobar(id)')
+
+ 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):
+ 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()
+
+ assert isinstance(ver, tuple)
+ assert len(ver) == 2
+ assert ver[0] > 8
+
+
+def test_connection_postgis_version_tuple(db, temp_db_with_extensions):
+ 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')