def setup(self): # Base server self.server = Server() # WMS Server root_layer = WMSGroupLayer(None, 'root layer', None, [DummyLayer('wms_cache')]) self.wms_server = WMSServer( md={}, root_layer=root_layer, srs=['EPSG:4326'], image_formats={'image/png': ImageOptions(format='image/png')} ) # Tile Servers layers = odict() layers["wms_cache_EPSG900913"] = DummyTileLayer('wms_cache') self.tile_server = TileServer(layers, {}) self.wmts_server = WMTSServer(layers, {}) # Common arguments self.query_extent = ('EPSG:27700', (0, 0, 700000, 1300000))
def setup(self): layers = {} wms_layers = {} # create test layer tree # - unnamed root # - layer1 # - layer1a # - layer1b # - layer2 # - layer2a # - layer2b # - layer2b1 layers['layer1a'] = DummyLayer('layer1a') wms_layers['layer1a'] = WMSLayer('layer1a', None, [layers['layer1a']], info_layers=[layers['layer1a']]) layers['layer1b'] = DummyLayer('layer1b') wms_layers['layer1b'] = WMSLayer('layer1b', None, [layers['layer1b']], info_layers=[layers['layer1b']]) wms_layers['layer1'] = WMSGroupLayer( 'layer1', None, None, [wms_layers['layer1a'], wms_layers['layer1b']]) layers['layer2a'] = DummyLayer('layer2a') wms_layers['layer2a'] = WMSLayer('layer2a', None, [layers['layer2a']], info_layers=[layers['layer2a']]) layers['layer2b1'] = DummyLayer('layer2b1') wms_layers['layer2b1'] = WMSLayer('layer2b1', None, [layers['layer2b1']], info_layers=[layers['layer2b1']]) layers['layer2b'] = DummyLayer('layer2b') wms_layers['layer2b'] = WMSGroupLayer('layer2b', None, layers['layer2b'], [wms_layers['layer2b1']]) wms_layers['layer2'] = WMSGroupLayer( 'layer2', None, None, [wms_layers['layer2a'], wms_layers['layer2b']]) root_layer = WMSGroupLayer( None, 'root layer', None, [wms_layers['layer1'], wms_layers['layer2']]) self.wms_layers = wms_layers self.layers = layers self.server = WMSServer( md={}, root_layer=root_layer, srs=['EPSG:4326'], image_formats={'image/png': ImageOptions(format='image/png')})
class TestDecorateImg(object): def setup(self): # Base server self.server = Server() # WMS Server root_layer = WMSGroupLayer(None, 'root layer', None, [DummyLayer('wms_cache')]) self.wms_server = WMSServer( md={}, root_layer=root_layer, srs=['EPSG:4326'], image_formats={'image/png': ImageOptions(format='image/png')}) # Tile Servers layers = odict() layers["wms_cache_EPSG900913"] = DummyTileLayer('wms_cache') self.tile_server = TileServer(layers, {}) self.wmts_server = WMTSServer(layers, {}) # Common arguments self.query_extent = ('EPSG:27700', (0, 0, 700000, 1300000)) def test_original_imagesource_returned_when_no_callback(self): img_src1 = ImageSource(Image.new('RGBA', (100, 100))) env = make_wsgi_env('', extra_environ={}) img_src2 = self.server.decorate_img(img_src1, 'wms.map', ['layer1'], env, self.query_extent) assert img_src1 == img_src2 def test_returns_imagesource(self): img_src1 = ImageSource(Image.new('RGBA', (100, 100))) env = make_wsgi_env('', extra_environ={}) img_src2 = self.server.decorate_img(img_src1, 'wms.map', ['layer1'], env, self.query_extent) assert isinstance(img_src2, ImageSource) def set_called_callback(self, img_src, service, layers, **kw): self.called = True return img_src def test_calls_callback(self): img_src1 = ImageSource(Image.new('RGBA', (100, 100))) self.called = False env = make_wsgi_env( '', extra_environ={'mapproxy.decorate_img': self.set_called_callback}) img_src2 = self.server.decorate_img(img_src1, 'wms.map', ['layer1'], env, self.query_extent) assert self.called == True def return_new_imagesource_callback(self, img_src, service, layers, **kw): new_img_src = ImageSource(Image.new('RGBA', (100, 100))) self.new_img_src = new_img_src return new_img_src def test_returns_callbacks_return_value(self): img_src1 = ImageSource(Image.new('RGBA', (100, 100))) env = make_wsgi_env('', extra_environ={ 'mapproxy.decorate_img': self.return_new_imagesource_callback }) self.new_img_src = None img_src2 = self.server.decorate_img(img_src1, 'wms.map', ['layer1'], env, self.query_extent) assert img_src2 == self.new_img_src def test_wms_server(self): ''' Test that the decorate_img method is available on a WMSServer instance ''' img_src1 = ImageSource(Image.new('RGBA', (100, 100))) self.called = False env = make_wsgi_env( '', extra_environ={'mapproxy.decorate_img': self.set_called_callback}) img_src2 = self.wms_server.decorate_img(img_src1, 'wms.map', ['layer1'], env, self.query_extent) assert self.called == True def test_tile_server(self): ''' Test that the decorate_img method is available on a TileServer instance ''' img_src1 = ImageSource(Image.new('RGBA', (100, 100))) self.called = False env = make_wsgi_env( '', extra_environ={'mapproxy.decorate_img': self.set_called_callback}) img_src2 = self.tile_server.decorate_img(img_src1, 'tms', ['layer1'], env, self.query_extent) assert self.called == True def test_wmts_server(self): ''' Test that the decorate_img method is available on a WMTSServer instance ''' img_src1 = ImageSource(Image.new('RGBA', (100, 100))) self.called = False env = make_wsgi_env( '', extra_environ={'mapproxy.decorate_img': self.set_called_callback}) img_src2 = self.wmts_server.decorate_img(img_src1, 'wmts', ['layer1'], env, self.query_extent) assert self.called == True def test_args(self): def callback(img_src, service, layers, environ, query_extent, **kw): assert isinstance(img_src, ImageSource) assert 'wms.map' == service assert isinstance(layers, list) assert isinstance(environ, dict) assert len(query_extent) == 2 assert len(query_extent[1]) == 4 return img_src img_src1 = ImageSource(Image.new('RGBA', (100, 100))) env = make_wsgi_env('', extra_environ={'mapproxy.decorate_img': callback}) img_src2 = self.tile_server.decorate_img(img_src1, 'wms.map', ['layer1'], env, self.query_extent)
class TestDecorateImg(object): def setup(self): # Base server self.server = Server() # WMS Server root_layer = WMSGroupLayer(None, 'root layer', None, [DummyLayer('wms_cache')]) self.wms_server = WMSServer( md={}, root_layer=root_layer, srs=['EPSG:4326'], image_formats={'image/png': ImageOptions(format='image/png')} ) # Tile Servers layers = odict() layers["wms_cache_EPSG900913"] = DummyTileLayer('wms_cache') self.tile_server = TileServer(layers, {}) self.wmts_server = WMTSServer(layers, {}) # Common arguments self.query_extent = ('EPSG:27700', (0, 0, 700000, 1300000)) def test_original_imagesource_returned_when_no_callback(self): img_src1 = ImageSource(Image.new('RGBA', (100, 100))) env = make_wsgi_env('', extra_environ={}) img_src2 = self.server.decorate_img( img_src1, 'wms.map', ['layer1'], env, self.query_extent ) eq_(img_src1, img_src2) def test_returns_imagesource(self): img_src1 = ImageSource(Image.new('RGBA', (100, 100))) env = make_wsgi_env('', extra_environ={}) img_src2 = self.server.decorate_img( img_src1, 'wms.map', ['layer1'], env, self.query_extent ) assert isinstance(img_src2, ImageSource) def set_called_callback(self, img_src, service, layers, **kw): self.called = True return img_src def test_calls_callback(self): img_src1 = ImageSource(Image.new('RGBA', (100, 100))) self.called = False env = make_wsgi_env('', extra_environ={'mapproxy.decorate_img': self.set_called_callback}) img_src2 = self.server.decorate_img( img_src1, 'wms.map', ['layer1'], env, self.query_extent ) eq_(self.called, True) def return_new_imagesource_callback(self, img_src, service, layers, **kw): new_img_src = ImageSource(Image.new('RGBA', (100, 100))) self.new_img_src = new_img_src return new_img_src def test_returns_callbacks_return_value(self): img_src1 = ImageSource(Image.new('RGBA', (100, 100))) env = make_wsgi_env('', extra_environ={'mapproxy.decorate_img': self.return_new_imagesource_callback}) self.new_img_src = None img_src2 = self.server.decorate_img( img_src1, 'wms.map', ['layer1'], env, self.query_extent ) eq_(img_src2, self.new_img_src) def test_wms_server(self): ''' Test that the decorate_img method is available on a WMSServer instance ''' img_src1 = ImageSource(Image.new('RGBA', (100, 100))) self.called = False env = make_wsgi_env('', extra_environ={'mapproxy.decorate_img': self.set_called_callback}) img_src2 = self.wms_server.decorate_img( img_src1, 'wms.map', ['layer1'], env, self.query_extent ) eq_(self.called, True) def test_tile_server(self): ''' Test that the decorate_img method is available on a TileServer instance ''' img_src1 = ImageSource(Image.new('RGBA', (100, 100))) self.called = False env = make_wsgi_env('', extra_environ={'mapproxy.decorate_img': self.set_called_callback}) img_src2 = self.tile_server.decorate_img( img_src1, 'tms', ['layer1'], env, self.query_extent ) eq_(self.called, True) def test_wmts_server(self): ''' Test that the decorate_img method is available on a WMTSServer instance ''' img_src1 = ImageSource(Image.new('RGBA', (100, 100))) self.called = False env = make_wsgi_env('', extra_environ={'mapproxy.decorate_img': self.set_called_callback}) img_src2 = self.wmts_server.decorate_img( img_src1, 'wmts', ['layer1'], env, self.query_extent ) eq_(self.called, True) def test_args(self): def callback(img_src, service, layers, environ, query_extent, **kw): assert isinstance(img_src, ImageSource) eq_('wms.map', service) assert isinstance(layers, list) assert isinstance(environ, dict) assert len(query_extent) == 2 assert len(query_extent[1]) == 4 return img_src img_src1 = ImageSource(Image.new('RGBA', (100, 100))) env = make_wsgi_env('', extra_environ={'mapproxy.decorate_img': callback}) img_src2 = self.tile_server.decorate_img( img_src1, 'wms.map', ['layer1'], env, self.query_extent )