def test_sanitize_url(self): base_url_string = 'http://somehost.com/some/path/here' relative_url_string = 'http://somehost.com/some/other/path' result1 = sanitize_url(base_url_string) self.assertEqual(result1, base_url_string) result2 = sanitize_url(relative_url_string) self.assertEqual(result2, relative_url_string) self.assertNotEqual(result1, urljoin(base_url_string, relative_url_string)) self.assertEqual(result2, urljoin(base_url_string, relative_url_string))
def wmtscapabilities(self): from pyramid.renderers import render_to_response scheme = self.request.headers.get( 'X-Forwarded-Proto', self.request.scheme) staging = self.request.registry.settings['geodata_staging'] host = self.request.headers.get( 'X-Forwarded-Host', self.request.host) mapproxyHost = self.request.registry.settings['mapproxyhost'] apache_base_path = self.request.registry.settings['apache_base_path'] apache_entry_point = '/' if (apache_base_path == 'main' or 'localhost' in host) else '/' + apache_base_path # Default ressource s3_url = sanitize_url("%s://wmts.geo.admin.ch/" % scheme) mapproxy_url = sanitize_url("%s://%s%s/" % (scheme, mapproxyHost, apache_entry_point)) onlineressources = {'mapproxy': mapproxy_url, 's3': s3_url} layers_query = self.request.db.query(self.models['GetCap']) layers_query = filter_by_geodata_staging( layers_query, self.models['GetCap'].staging, staging ) if self.mapName != 'all': layers_query = filter_by_map_name(layers_query, self.models['GetCap'], self.mapName) layers = layers_query.all() if hasattr(self.models['GetCapThemes'], 'oberthema_id'): themes = self.request.db.query(self.models['GetCapThemes']).order_by(self.models['GetCapThemes'].oberthema_id).all() else: themes = self.request.db.query(self.models['GetCapThemes']).all() metadata = self.request.db.query(self.models['ServiceMetadata'])\ .filter(self.models['ServiceMetadata'] .pk_map_name.like('%wmts-bgdi%')).first() wmts = { 'layers': layers, 'themes': themes, 'metadata': metadata, 'scheme': scheme, 'onlineressources': onlineressources, 'tilematrixset': self.tileMatrixSet, 'tilematrixsetDefs': DEFAULT_TILEMATRIXSET } response = render_to_response( 'chsdi:templates/wmtscapabilities.mako', wmts, request=self.request) response.content_type = 'text/xml' return response
def wmtscapabilities(self): from pyramid.renderers import render_to_response scheme = self.request.headers.get('X-Forwarded-Proto', self.request.scheme) staging = self.request.registry.settings['geodata_staging'] mapproxyHost = self.request.registry.settings['mapproxyhost'] # Default ressource s3_url = sanitize_url("%s://wmts.geo.admin.ch/" % scheme) mapproxy_url = sanitize_url("%s://%s/" % (scheme, mapproxyHost)) onlineressources = {'mapproxy': mapproxy_url, 's3': s3_url} layers_query = self.request.db.query(self.models['GetCap']) layers_query = filter_by_geodata_staging(layers_query, self.models['GetCap'].staging, staging) if self.mapName != 'all': layers_query = filter_by_map_name(layers_query, self.models['GetCap'], self.mapName) layers = layers_query.all() if hasattr(self.models['GetCapThemes'], 'oberthema_id'): themes = self.request.db.query( self.models['GetCapThemes']).order_by( self.models['GetCapThemes'].oberthema_id).all() else: themes = self.request.db.query(self.models['GetCapThemes']).all() metadata = self.request.db.query(self.models['ServiceMetadata'])\ .filter(self.models['ServiceMetadata'] .pk_map_name.like('%wmts-bgdi%')).first() wmts = { 'layers': layers, 'themes': themes, 'metadata': metadata, 'scheme': scheme, 'onlineressources': onlineressources, 'tilematrixset': self.tileMatrixSet, 'tilematrixsetDefs': DEFAULT_TILEMATRIXSET } response = render_to_response( 'chsdi:templates/wmtscapabilities/wmtscapabilities.mako', wmts, request=self.request) response.content_type = 'text/xml' return response
def wmtscapabilities(self): from pyramid.renderers import render_to_response scheme = self.request.headers.get('X-Forwarded-Proto', self.request.scheme) staging = self.request.registry.settings['geodata_staging'] wmts_public_host = self.request.registry.settings['wmts_public_host'] # Default ressource onlineressource = sanitize_url("%s://%s/" % (scheme, wmts_public_host)) layers_query = self.request.db.query(self.models['GetCap']) layers_query = filter_by_geodata_staging(layers_query, self.models['GetCap'].staging, staging) if self.mapName != 'all': layers_query = filter_by_map_name(layers_query, self.models['GetCap'], self.mapName) layers = layers_query.all() zoom_levels = getLayersZoomLevelSet(self.tileMatrixSet, layers) if hasattr(self.models['GetCapThemes'], 'oberthema_id'): themes = self.request.db.query( self.models['GetCapThemes']).order_by( self.models['GetCapThemes'].oberthema_id).all() else: themes = self.request.db.query(self.models['GetCapThemes']).all() metadata = self.request.db.query(self.models['ServiceMetadata'])\ .filter(self.models['ServiceMetadata'] .pk_map_name.like(u'%wmts-bgdi%')).first() wmts = { 'layers': layers, 'zoomlevels': zoom_levels, 'themes': themes, 'metadata': metadata, 'scheme': scheme, 'onlineressource': onlineressource, 'tilematrixset': self.tileMatrixSet, 'tilematrixsetDefs': getDefaultTileMatrixSet(self.tileMatrixSet) } response = render_to_response( 'chsdi:templates/wmtscapabilities/wmtscapabilities.mako', wmts, request=self.request) response.content_type = 'text/xml' return response
def wmtscapabilities(self): from pyramid.renderers import render_to_response scheme = self.request.headers.get( 'X-Forwarded-Proto', self.request.scheme) staging = self.request.registry.settings['geodata_staging'] wmts_public_host = self.request.registry.settings['wmts_public_host'] # Default ressource onlineressource = sanitize_url("%s://%s/" % (scheme, wmts_public_host)) layers_query = self.request.db.query(self.models['GetCap']) layers_query = filter_by_geodata_staging( layers_query, self.models['GetCap'].staging, staging ) if self.mapName != 'all': layers_query = filter_by_map_name(layers_query, self.models['GetCap'], self.mapName) layers = layers_query.all() zoom_levels = getLayersZoomLevelSet(self.tileMatrixSet, layers) if hasattr(self.models['GetCapThemes'], 'oberthema_id'): themes = self.request.db.query(self.models['GetCapThemes']).order_by(self.models['GetCapThemes'].oberthema_id).all() else: themes = self.request.db.query(self.models['GetCapThemes']).all() metadata = self.request.db.query(self.models['ServiceMetadata'])\ .filter(self.models['ServiceMetadata'] .pk_map_name.like(u'%wmts-bgdi%')).first() wmts = { 'layers': layers, 'zoomlevels': zoom_levels, 'themes': themes, 'metadata': metadata, 'scheme': scheme, 'onlineressource': onlineressource, 'tilematrixset': self.tileMatrixSet, 'tilematrixsetDefs': getDefaultTileMatrixSet(self.tileMatrixSet) } response = render_to_response( 'chsdi:templates/wmtscapabilities/wmtscapabilities.mako', wmts, request=self.request) response.content_type = 'text/xml' return response
def test_sanitize_url_throws_ValueError(self): # ValueError url2 = None result2 = sanitize_url(url2) self.assertRaises(ValueError, result2)
def test_sanitize_url_throws_ValueError(self): # ValueError url2 = None res2 = sanitize_url(url2) self.assertEqual(url2, res2)