Skip to content
Permalink
Browse files
Merge pull request #44013 from qgis/backport-43990-to-queued_ltr_back…
…ports

[Backport queued_ltr_backports] [OAPIF provider] Fix extra query parameters (fixes #43905)
  • Loading branch information
rouault committed Jul 9, 2021
2 parents 3158eb9 + 42e4a56 commit a6fd43a3105ea8ddb21caa97ebe371dd513ecae1
Showing with 10 additions and 4 deletions.
  1. +1 −3 src/providers/wfs/qgsoapifprovider.cpp
  2. +9 −1 tests/src/python/test_provider_oapif.py
@@ -690,10 +690,9 @@ void QgsOapifFeatureDownloaderImpl::run( bool serializeFeatures, int maxFeatures
}
}

url = mShared->appendExtraQueryParameters( url );

while ( !url.isEmpty() )
{
url = mShared->appendExtraQueryParameters( url );

if ( maxTotalFeatures > 0 && totalDownloadedFeatureCount >= maxTotalFeatures )
{
@@ -721,7 +720,6 @@ void QgsOapifFeatureDownloaderImpl::run( bool serializeFeatures, int maxFeatures
break;
}
url = itemsRequest.nextUrl();
url = mShared->appendExtraQueryParameters( url );

// Consider if we should display a progress dialog
// We can only do that if we know how many features will be downloaded
@@ -20,6 +20,7 @@

from osgeo import gdal
from qgis.PyQt.QtCore import QCoreApplication, Qt, QObject, QDateTime, QVariant
from qgis.PyQt.QtTest import QSignalSpy

from qgis.core import (
QgsWkbTypes,
@@ -36,7 +37,8 @@
QgsExpressionContextUtils,
QgsExpressionContext,
QgsCoordinateReferenceSystem,
QgsBox3d
QgsBox3d,
QgsMessageLog
)
from qgis.testing import (start_app,
unittest
@@ -705,10 +707,16 @@ def testApikey(self):
with open(sanitize(endpoint, '/collections/mycollection/items?limit=1000&apikey=mykey&' + ACCEPT_ITEMS), 'wb') as f:
f.write(json.dumps(first_items).encode('UTF-8'))

app_log = QgsApplication.messageLog()

# signals should be emitted by application log
app_spy = QSignalSpy(app_log.messageReceived)

vl = QgsVectorLayer("url='http://" + endpoint + "?apikey=mykey' typename='mycollection'", 'test', 'OAPIF')
self.assertTrue(vl.isValid())
values = [f['id'] for f in vl.getFeatures()]
self.assertEqual(values, ['feat.1'])
self.assertEqual(len(app_spy), 0, list(app_spy))


if __name__ == '__main__':

0 comments on commit a6fd43a

Please sign in to comment.