Skip to content

Commit

Permalink
add test for postgres hasSpatialIndex
Browse files Browse the repository at this point in the history
  • Loading branch information
3nids committed Jan 15, 2021
1 parent 94ac9f2 commit 9e534eb
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
15 changes: 15 additions & 0 deletions tests/src/python/test_provider_postgres.py
Expand Up @@ -31,6 +31,7 @@
QgsVectorLayer,
QgsVectorLayerExporter,
QgsFeatureRequest,
QgsFeatureSource,
QgsFeature,
QgsFieldConstraints,
QgsDataProvider,
Expand Down Expand Up @@ -2513,6 +2514,20 @@ def _round_trip(uri):
'username': 'my username',
})

def testHasSpatialIndex(self):
for layer_name in ('hspi_table', 'hspi_materialized_view'):
columns = {'geom_without_index': QgsFeatureSource.SpatialIndexNotPresent, 'geom_with_index': QgsFeatureSource.SpatialIndexPresent}
for (geometry_column, spatial_index) in columns.items():
conn = 'service=\'qgis_test\''
if 'QGIS_PGTEST_DB' in os.environ:
conn = os.environ['QGIS_PGTEST_DB']
vl = QgsVectorLayer(
conn +
' sslmode=disable key=\'id\' srid=4326 type=\'Polygon\' table="qgis_test"."{n}" ({c}) sql='.format(n=layer_name, c=geometry_column),
'test', 'postgres')
self.assertTrue(vl.isValid())
self.assertEqual(vl.hasSpatialIndex(), spatial_index)


class TestPyQgsPostgresProviderCompoundKey(unittest.TestCase, ProviderTestCase):

Expand Down
1 change: 1 addition & 0 deletions tests/testdata/provider/testdata_pg.sh
Expand Up @@ -16,6 +16,7 @@ SCRIPTS="
tests/testdata/provider/testdata_pg_json.sql
tests/testdata/provider/testdata_pg_pointcloud.sql
tests/testdata/provider/testdata_pg_bigint_pk.sql
tests/testdata/provider/testdata_pg_hasspatialindex.sql
"

SCRIPTS12="
Expand Down
16 changes: 16 additions & 0 deletions tests/testdata/provider/testdata_pg_hasspatialindex.sql
@@ -0,0 +1,16 @@
--CREATE SCHEMA IF NOT EXISTS qgis_test;


DROP TABLE IF EXISTS qgis_test.hspi_table;

CREATE TABLE qgis_test.hspi_table
(
id serial PRIMARY KEY,
geom_without_index geometry(Polygon,4326),
geom_with_index geometry(Polygon,4326)
);
CREATE INDEX hspi_index_1 ON qgis_test.hspi_table USING GIST (geom_with_index);

CREATE MATERIALIZED view qgis_test.hspi_materialized_view AS SELECT * FROM qgis_test.hspi_table;
CREATE INDEX hspi_index_2 ON qgis_test.hspi_materialized_view USING GIST (geom_with_index);

0 comments on commit 9e534eb

Please sign in to comment.