def test_get_fields_gs(config_MapServer_WFS_continents): """Testing field types""" p = OGRProvider(config_MapServer_WFS_continents) results = p.get_fields() assert results['NA2DESC']['type'] == 'string' assert results['NA3DESC']['type'] == 'string'
def test_get_agol_not_existing_feature_raise_exception( config_ArcGIS_ESRIJSON ): """Testing query for a not existing object""" p = OGRProvider(config_ArcGIS_ESRIJSON) with pytest.raises(ProviderItemNotFoundError): p.get(-1)
def test_get_agol(config_ArcGIS_ESRIJSON): """Testing query for a specific object""" p = OGRProvider(config_ArcGIS_ESRIJSON) result = p.get('78232831') assert result['id'] == 78232831 assert '2605' in result['properties']['fulladdr']
def test_query_with_skip_geometry_vsicurl(config_vsicurl_csv): """Testing query for a valid JSON object with property filter""" p = OGRProvider(config_vsicurl_csv) feature_collection = p.query(skip_geometry=True) for feature in feature_collection['features']: assert feature['geometry'] is None
def test_get_ms(config_MapServer_WFS_cities): """Testing query for a specific object""" p = OGRProvider(config_MapServer_WFS_cities) result = p.get('cities.8338') assert result['id'] == 'cities.8338' assert 'Buenos Aires' in result['properties']['NAME']
def test_gs_not_getting_gml_id(config_geonode_gs_WFS): """Testing query not returning gml_id for a specific object""" p = OGRProvider(config_geonode_gs_WFS) assert p.open_options is not None result = p.get_fields() assert result.get('gml_id') is None
def test_get_fields_agol(config_ArcGIS_ESRIJSON): """Testing field types""" p = OGRProvider(config_ArcGIS_ESRIJSON) results = p.get_fields() assert results['fulladdr']['type'] == 'string' assert results['municipality']['type'] == 'string'
def test_get_vsicurl(config_vsicurl_csv): """Testing query for a specific object""" p = OGRProvider(config_vsicurl_csv) result = p.get('32') assert result['id'] == 32 assert '14' in result['properties']['codice_regione']
def test_get_not_existing_feature_raise_exception( config_shapefile_4326 ): """Testing query for a not existing object""" p = OGRProvider(config_shapefile_4326) with pytest.raises(ProviderItemNotFoundError): p.get(-1)
def test_get_ms_not_existing_feature_raise_exception( config_MapServer_WFS ): """Testing query for a not existing object""" p = OGRProvider(config_MapServer_WFS) with pytest.raises(ProviderItemNotFoundError): p.get(-1)
def test_get_fields_vsicurl(config_vsicurl_csv): """Testing field types""" p = OGRProvider(config_vsicurl_csv) results = p.get_fields() assert results['denominazione_regione'] == 'string' assert results['totale_positivi'] == 'string'
def test_get_fields_gs(config_GeoServer_WFS): """Testing field types""" p = OGRProvider(config_GeoServer_WFS) results = p.get_fields() assert results['straatnaam'] == 'string' assert results['huisnummer'] == 'integer'
def test_get_ms(config_MapServer_WFS): """Testing query for a specific object""" p = OGRProvider(config_MapServer_WFS) result = p.get('stations.4403') assert result['id'] == 'stations.4403' assert '01' in result['properties']['station']
def test_get_geosol_gs(config_geosol_gs_WFS): """Testing query for a specific object""" p = OGRProvider(config_geosol_gs_WFS) result = p.get('Unesco_point.123') assert result['id'] == 'Unesco_point.123' assert 'Centro storico di San Gimignano' in result['properties']['sito']
def test_get_gs(config_GeoServer_WFS): """Testing query for a specific object""" p = OGRProvider(config_GeoServer_WFS) result = p.get('inspireadressen.1747652') assert result['id'] == 'inspireadressen.1747652' assert 'Mosselsepad' in result['properties']['straatnaam']
def test_get_agol(config_ArcGIS_ESRIJSON, config_random_id): """Testing query for a specific object""" p = OGRProvider(config_ArcGIS_ESRIJSON) id, addr_number = config_random_id result = p.get(id) assert result['id'] == id assert addr_number in result['properties']['fulladdr']
def test_get_gs(config_MapServer_WFS_continents): """Testing query for a specific object""" p = OGRProvider(config_MapServer_WFS_continents) result = p.get('continents.23774') assert result['id'] == 'continents.23774' assert result['properties']['NA2DESC'] == 'Canada' assert result['properties']['NA3DESC'] == 'North America'
def test_gs_force_getting_gml_id(config_geonode_gs_WFS): """Testing query forcing to return gml_id for a specific object""" p = OGRProvider(config_geonode_gs_WFS) assert p.open_options is not None p.open_options['EXPOSE_GML_ID'] = 'YES' result = p.get_fields() assert result.get('gml_id')
def test_get_gs_with_geojson_output_too_complex_raise_exception( config_geonode_gs_WFS): """Testing query for a specific object with too complex geojson""" p = OGRProvider(config_geonode_gs_WFS) assert p.open_options.get('URL') is None p.open_options[ 'URL'] = 'https://geonode.wfp.org/geoserver/wfs?outputformat=json' with pytest.raises(ProviderQueryError): p.get(272)
def config_random_id(config_ArcGIS_ESRIJSON): p = OGRProvider(config_ArcGIS_ESRIJSON) # Get bunch of features to randomly have an id feature_collection = p.query(startindex=0, limit=10, resulttype='results') features = feature_collection.get('features', None) features_list = [] for feature in features: features_list.append(feature['id']) selected_id = random.choice(features_list) fulladdr = p.get(selected_id)['properties']['fulladdr'] return (selected_id, fulladdr.split(' ')[0])
def test_query_hits_ms(config_MapServer_WFS_cities): """Testing query on entire collection for hits""" p = OGRProvider(config_MapServer_WFS_cities) feature_collection = p.query(resulttype='hits') assert feature_collection.get('type', None) == 'FeatureCollection' features = feature_collection.get('features', None) assert len(features) == 0 hits = feature_collection.get('numberMatched', None) assert hits is not None assert hits > 5000
def test_query_hits_28992(config_shapefile_28992): """Testing query on entire collection for hits""" p = OGRProvider(config_shapefile_28992) feature_collection = p.query(resulttype='hits') assert feature_collection.get('type', None) == 'FeatureCollection' features = feature_collection.get('features', None) assert len(features) == 0 hits = feature_collection.get('numberMatched', None) assert hits is not None assert hits == 2481
def test_query_hits_agol(config_ArcGIS_ESRIJSON): """Testing query on entire collection for hits""" p = OGRProvider(config_ArcGIS_ESRIJSON) feature_collection = p.query(resulttype='hits') assert feature_collection.get('type', None) == 'FeatureCollection' features = feature_collection.get('features', None) assert len(features) == 0 hits = feature_collection.get('numberMatched', None) assert hits is not None assert hits > 100
def test_query_hits_geosol_gs(config_geosol_gs_WFS): """Testing query on entire collection for hits""" p = OGRProvider(config_geosol_gs_WFS) feature_collection = p.query(resulttype='hits') assert feature_collection.get('type', None) == 'FeatureCollection' features = feature_collection.get('features', None) assert len(features) == 0 hits = feature_collection.get('numberMatched', None) assert hits is not None assert hits == 186
def test_query_bbox_hits_ms(config_MapServer_WFS_cities): """Testing query for a valid JSON object with geometry""" p = OGRProvider(config_MapServer_WFS_cities) feature_collection = p.query(bbox=[-47, -24, -45, -22], resulttype='hits') assert feature_collection.get('type', None) == 'FeatureCollection' features = feature_collection.get('features', None) assert len(features) == 0 hits = feature_collection.get('numberMatched', None) assert hits is not None assert hits > 1
def test_query_bbox_hits_gs(config_MapServer_WFS_continents): """Testing query for a valid JSON object with geometry, single address""" p = OGRProvider(config_MapServer_WFS_continents) feature_collection = p.query(bbox=[-61, 46, -60, 47], resulttype='hits') assert feature_collection.get('type', None) == 'FeatureCollection' features = feature_collection.get('features', None) assert len(features) == 0 hits = feature_collection.get('numberMatched', None) assert hits is not None assert hits == 3
def test_query_bbox_hits_vsicurl(config_vsicurl_csv): """Testing query for a valid JSON object with geometry""" p = OGRProvider(config_vsicurl_csv) feature_collection = p.query( bbox=[10.497565, 41.520355, 15.111823, 43.308645], resulttype='hits') assert feature_collection.get('type', None) == 'FeatureCollection' features = feature_collection.get('features', None) assert len(features) == 0 hits = feature_collection.get('numberMatched', None) assert hits is not None assert hits > 1
def test_query_with_property_vsicurl(config_vsicurl_csv): """Testing query for a valid JSON object with property filter""" p = OGRProvider(config_vsicurl_csv) feature_collection = p.query( startindex=20, limit=10, resulttype='results', properties=[('denominazione_regione', 'Lazio')]) assert feature_collection.get('type', None) == 'FeatureCollection' features = feature_collection.get('features', None) assert len(features) == 10 for feature in features: assert 'Lazio' in feature['properties']['denominazione_regione']
def test_query(config_poi_portugal): """Testing query for a valid JSON object with geometry""" p = OGRProvider(config_poi_portugal) feature_collection = p.query() assert feature_collection.get('type', None) == 'FeatureCollection' features = feature_collection.get('features', None) assert features is not None feature = features[0] properties = feature.get('properties', None) assert properties is not None geometry = feature.get('geometry', None) assert geometry is not None
def test_query_with_property_filtering_ms(config_MapServer_WFS): """Testing query with property filtering on mapserver backend""" p = OGRProvider(config_MapServer_WFS) feature_collection = p.query(properties=[ ('station', '21'), ]) for feature in feature_collection['features']: assert 'properties' in feature assert 'station' in feature['properties'] assert feature['properties']['station'] == '21'