From d2d7c60e2bf29f08f2b728ed031e596000aa3432 Mon Sep 17 00:00:00 2001 From: Tom Kralidis Date: Thu, 18 Feb 2016 18:37:33 -0500 Subject: [PATCH] fix WMTS parsing when ServiceProvider does not exist --- owslib/wmts.py | 3 ++- tests/doctests/wmts.txt | 11 +++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/owslib/wmts.py b/owslib/wmts.py index ec522f489..07142e8d3 100644 --- a/owslib/wmts.py +++ b/owslib/wmts.py @@ -196,7 +196,8 @@ def _buildMetadata(self, parse_remote_metadata=False): # serviceProvider metadata serviceprov = self._capabilities.find(_SERVICE_PROVIDER_TAG) - self.provider = ServiceProvider(serviceprov) + if serviceprov is not None: + self.provider = ServiceProvider(serviceprov) # serviceOperations metadata self.operations = [] diff --git a/tests/doctests/wmts.txt b/tests/doctests/wmts.txt index 7f768f5ed..2d238d580 100644 --- a/tests/doctests/wmts.txt +++ b/tests/doctests/wmts.txt @@ -36,8 +36,11 @@ Available Layers: Fetch a tile (using some defaults): - >>> tile = wmts.gettile(layer='MODIS_Terra_CorrectedReflectance_TrueColor', tilematrixset='EPSG4326_250m', tilematrix='0', row=0, column=0, format="image/jpeg") - >>> out = open(scratch_file('nasa_modis_terra_truecolour.jpg'), 'wb') - >>> bytes_written = out.write(tile.read()) - >>> out.close() + >>> tile = wmts.gettile(layer='MODIS_Terra_CorrectedReflectance_TrueColor', tilematrixset='EPSG4326_250m', tilematrix='0', row=0, column=0, format="image/jpeg") + >>> out = open(scratch_file('nasa_modis_terra_truecolour.jpg'), 'wb') + >>> bytes_written = out.write(tile.read()) + >>> out.close() +Test a WMTS without a ServiceProvider tag in Capababilities XML + + >>> wmts = WebMapTileService('http://data.geus.dk/arcgis/rest/services/OneGeologyGlobal/S071_G2500_OneGeology/MapServer/WMTS/1.0.0/WMTSCapabilities.xml')