Skip to content
Permalink
Browse files
Merge pull request #43990 from Joonalai/fix-oapif-q-params
[OAPIF provider] Fix extra query parameters (fixes #43905)
  • Loading branch information
rouault committed Jul 1, 2021
2 parents a51a9c4 + 56914ed commit 3f1722d0bbc00b72126972c465522443f8a39518
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, long long maxFe
}
}

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, long long maxFe
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
@@ -702,10 +704,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 3f1722d

Please sign in to comment.