MapProxy 2.2.0__tar.gz → 3.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {MapProxy-2.2.0 → MapProxy-3.0.1}/CHANGES.txt +32 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/MapProxy.egg-info/PKG-INFO +33 -48
- {MapProxy-2.2.0 → MapProxy-3.0.1}/MapProxy.egg-info/SOURCES.txt +1 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/PKG-INFO +33 -48
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/caches.rst +1 -1
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/configuration.rst +10 -10
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config/loader.py +2 -3
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config_template/base_config/mapproxy.yaml +1 -1
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/exception.py +39 -3
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/demo.py +2 -2
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/ows.py +20 -2
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/demo.html +2 -2
- MapProxy-3.0.1/mapproxy/service/templates/ows_exception.xml +10 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/seed.yaml +7 -2
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_demo.py +2 -2
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_demo_with_extra_service.py +2 -2
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_legendgraphic.py +6 -6
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_renderd_client.py +3 -3
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_response_headers.py +1 -1
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_seed.py +16 -3
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_source_errors.py +4 -4
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_wms.py +31 -31
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_wmsc.py +3 -3
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_client.py +5 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_exceptions.py +86 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/requirements-tests.txt +15 -15
- {MapProxy-2.2.0 → MapProxy-3.0.1}/setup.py +1 -1
- {MapProxy-2.2.0 → MapProxy-3.0.1}/AUTHORS.txt +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/COPYING.txt +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/LICENSE.txt +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/MANIFEST.in +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/MapProxy.egg-info/dependency_links.txt +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/MapProxy.egg-info/entry_points.txt +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/MapProxy.egg-info/not-zip-safe +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/MapProxy.egg-info/requires.txt +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/MapProxy.egg-info/top_level.txt +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/README.md +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/GM.txt +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/_static/logo.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/_static/logo_title.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/_static/mapproxy.css +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/_templates/versions.html +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/auth.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/caching_layer_dimensions.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/conf.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/configuration_examples.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/coverages.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/decorate_img.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/deployment.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/development.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/bicubic.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/bilinear.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/labeling-dynamic.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/labeling-meta-buffer.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/labeling-metatiling-buffer.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/labeling-metatiling.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/labeling-no-clip.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/labeling-no-placement.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/labeling-partial-false.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/labeling-repeated.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/mapnik-webmerc-hq.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/mapnik-webmerc.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/mapproxy-demo.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/imgs/nearest.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/index.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/inspire.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/install.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/install_docker.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/install_osgeo4w.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/install_windows.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/labeling.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/mapproxy_util.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/mapproxy_util_autoconfig.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/plugins.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/seed.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/services.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/sources.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/tutorial.rst +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/tutorial.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/yaml/cache_conf.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/yaml/grid_conf.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/yaml/merged_conf.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/yaml/meta_conf.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/yaml/seed.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/doc/yaml/simple_conf.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/azureblob.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/base.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/compact.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/couchdb.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/dummy.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/file.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/geopackage.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/legend.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/mbtiles.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/meta.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/path.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/redis.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/renderd.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/riak.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/s3.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/cache/tile.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/client/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/client/arcgis.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/client/cgi.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/client/http.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/client/log.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/client/tile.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/client/wms.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/compat/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/compat/image.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config/config-schema.json +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config/config.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config/coverage.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config/defaults.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config/spec.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config/validator.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config_template/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config_template/base_config/config.wsgi +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config_template/base_config/full_example.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config_template/base_config/full_seed_example.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config_template/base_config/log.ini +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/config_template/base_config/seed.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/featureinfo.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/grid.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/image/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/image/fonts/DejaVuSans.ttf +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/image/fonts/DejaVuSansMono.ttf +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/image/fonts/LICENSE +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/image/fonts/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/image/mask.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/image/merge.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/image/message.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/image/opts.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/image/tile.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/image/transform.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/layer.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/multiapp.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/proj.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/request/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/request/arcgis.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/request/base.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/request/tile.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/request/wms/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/request/wms/exception.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/request/wmts.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/response.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/conf/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/conf/app.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/conf/caches.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/conf/geopackage.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/conf/layers.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/conf/seeds.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/conf/sources.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/conf/utils.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/defrag.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/export.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/grids.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/scales.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/util.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/script/wms_capabilities.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/seed/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/seed/cachelock.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/seed/cleanup.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/seed/config.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/seed/script.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/seed/seeder.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/seed/spec.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/seed/util.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/base.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/kml.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/template_helper.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/capabilities_demo.html +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/openlayers-demo.cfg +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/img/blank.gif +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/img/east-mini.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/img/north-mini.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/img/south-mini.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/img/west-mini.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/img/zoom-minus-mini.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/img/zoom-plus-mini.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/img/zoom-world-mini.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/logo.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/ol.css +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/ol.js +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/proj4.min.js +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/proj4defs.js +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/site.css +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/theme/default/framedCloud.css +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/theme/default/google.css +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/theme/default/ie6-style.css +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static/theme/default/style.css +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/static.html +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/tms_demo.html +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/wms_demo.html +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/demo/wmts_demo.html +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/tms_capabilities.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/tms_exception.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/tms_root_resource.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/tms_tilemap_capabilities.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/wms100capabilities.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/wms100exception.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/wms110capabilities.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/wms110exception.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/wms111capabilities.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/wms111exception.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/wms130capabilities.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/wms130exception.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/wmts100capabilities.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/templates/wmts100exception.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/tile.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/wms.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/service/wmts.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/source/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/source/arcgis.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/source/error.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/source/mapnik.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/source/tile.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/source/wms.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/srs.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/template.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/conftest.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/helper.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/http.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/image.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/mocker.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/common.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_bul.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_cze.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_dan.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_dut.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_eng.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_est.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_fin.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_fre.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_ger.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_gle.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_gre.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_hun.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_ita.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_lav.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_lit.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_mlt.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_pol.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_por.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_rum.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_slo.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_slv.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_spa.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/enums/enum_swe.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/common/1.0/network.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/inspire/inspire_vs/1.0/inspire_vs.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/kml/2.2.0/ReadMe.txt +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/kml/2.2.0/atom-author-link.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/kml/2.2.0/ogckml22.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/kml/2.2.0/xAL.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/ReadMe.txt +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/ows19115subset.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/owsAll.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/owsCommon.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/owsContents.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/owsDataIdentification.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/owsDomainType.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/owsExceptionReport.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/owsGetCapabilities.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/owsGetResourceByID.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/owsInputOutputData.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/owsManifest.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/owsOperationsMetadata.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/owsServiceIdentification.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/ows/1.1.0/owsServiceProvider.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/sld/1.1.0/sld_capabilities.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.0.0/capabilities_1_0_0.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.0.7/capabilities_1_0_7.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.1.0/capabilities_1_1_0.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.1.0/exception_1_1_0.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.1.1/OGC-exception.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.1.1/WMS_DescribeLayerResponse.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.1.1/WMS_MS_Capabilities.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.1.1/capabilities_1_1_1.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.1.1/exception_1_1_1.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.3.0/ReadMe.txt +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.3.0/capabilities_1_3_0.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wms/1.3.0/exceptions_1_3_0.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmsc/1.1.1/OGC-exception.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmsc/1.1.1/WMS_DescribeLayerResponse.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmsc/1.1.1/WMS_MS_Capabilities.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmsc/1.1.1/WMS_exception_1_1_1.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmsc/1.1.1/capabilities_1_1_1.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.dtd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmsc/1.1.1/exception_1_1_1.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmts/1.0/ReadMe.txt +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmts/1.0/wmts.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmts/1.0/wmtsAbstract.wsdl +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_request.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetCapabilities_response.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_request.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetFeatureInfo_response.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmts/1.0/wmtsGetTile_request.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmts/1.0/wmtsKVP.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/wmts/1.0/wmtsPayload_response.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/xlink/1.0.0/ReadMe.txt +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/xlink/1.0.0/xlinks.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/schemas/xml.xsd +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/arcgis.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/auth.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/cache.mbtiles +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/cache_azureblob.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/cache_band_merge.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/cache_bulk_meta_tiles.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/cache_coverage.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/cache_data/dop_cache_EPSG3857/00/000/000/000/000/000/000.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/cache_data/wms_cache_EPSG900913/01/000/000/000/000/000/001.jpeg +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/cache_data/wms_cache_transparent_EPSG900913/01/000/000/000/000/000/001.png +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/cache_geopackage.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/cache_grid_names.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/cache_mbtiles.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/cache_s3.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/cache_source.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/combined_sources.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/coverage.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/demo.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/dimension.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/disable_storage.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/empty_ogrdata.geojson +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/formats.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/inspire.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/inspire_full.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/kml_layer.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/layer.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/layergroups.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/layergroups_root.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/legendgraphic.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/mapnik_source.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/mapproxy_export.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/mapserver.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/minimal_cgi.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/mixed_mode.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/multi_cache_layers.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/multiapp1.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/multiapp2.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/renderd_client.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/scalehints.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/seed_mapproxy.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/seed_old.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/seed_timeouts.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/seed_timeouts_mapproxy.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/seedonly.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/sld.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/source_errors.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/source_errors_raise.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/tileservice_origin.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/tileservice_refresh.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/tilesource_minmax_res.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/util-conf-base-grids.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/util-conf-overwrite.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/util-conf-wms-111-cap.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/util_grids.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/util_wms_capabilities111.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/util_wms_capabilities130.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/util_wms_capabilities_service_exception.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/watermark.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/wms_srs_extent.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/wms_versions.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/wmts.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/wmts_dimensions.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/xslt_featureinfo.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/fixture/xslt_featureinfo_input.yaml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_arcgis.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_auth.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_behind_proxy.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_bulk_meta_tiles.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_cache_azureblob.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_cache_band_merge.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_cache_coverage.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_cache_geopackage.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_cache_grid_names.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_cache_mbtiles.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_cache_s3.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_cache_source.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_combined_sources.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_coverage.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_decorate_img.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_dimensions.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_disable_storage.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_formats.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_inspire_vs.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_kml.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_layergroups.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_mapnik.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_mapserver.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_mixed_mode_format.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_multi_cache_layers.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_multiapp.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_refresh.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_scalehints.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_seed_only.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_sld.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_tilesource_minmax_res.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_tms.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_tms_origin.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_util_conf.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_util_export.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_util_grids.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_util_wms_capabilities.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_watermark.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_wms_srs_extent.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_wms_version.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_wmts.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_wmts_dimensions.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_wmts_restful.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/system/test_xslt_featureinfo.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/test_http_helper.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/epsg +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/polygons/polygons.dbf +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/polygons/polygons.shp +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/polygons/polygons.shx +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_async.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_auth.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_cache.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_cache_azureblob.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_cache_compact.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_cache_couchdb.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_cache_geopackage.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_cache_redis.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_cache_riak.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_cache_s3.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_cache_tile.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_client_arcgis.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_client_cgi.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_collections.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_concat_legends.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_conf_loader.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_conf_validator.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_config.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_decorate_img.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_featureinfo.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_file_lock_load.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_geom.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_grid.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_image.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_image_mask.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_image_messages.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_image_options.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_isodate.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_multiapp.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_ogr_reader.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_request.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_request_wmts.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_response.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_seed.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_seed_cachelock.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_srs.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_tiled_source.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_tilefilter.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_times.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_timeutils.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_util_conf_utils.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_utils.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_wms_capabilities.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_wms_layer.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/test/unit/test_yaml.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/tilefilter.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/async_.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/collections.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/coverage.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/dictspec/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/dictspec/spec.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/dictspec/test/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/dictspec/test/test_validator.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/dictspec/validator.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/local.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/lockfile.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/odict.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/serving.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/tempita/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/tempita/_looper.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/tempita/string_utils.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/wmsparse/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/wmsparse/duration.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/wmsparse/parse.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/wmsparse/test/__init__.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/wmsparse/test/test_parse.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/wmsparse/test/test_util.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/wmsparse/test/wms-example-111.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/wmsparse/test/wms-example-130.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/wmsparse/test/wms-large-111.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/wmsparse/test/wms_nasa_cap.xml +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ext/wmsparse/util.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/fs.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/geom.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/lib.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/lock.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/ogr.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/py.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/times.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/util/yaml.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/version.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/mapproxy/wsgiapp.py +0 -0
- {MapProxy-2.2.0 → MapProxy-3.0.1}/setup.cfg +0 -0
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
3.0.1 2024-08-27
|
|
2
|
+
~~~~~~~~~~~~~~~~
|
|
3
|
+
|
|
4
|
+
Fixes:
|
|
5
|
+
|
|
6
|
+
- Fix capabilities links in demo page and config template
|
|
7
|
+
- Trivy report format
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
3.0.0 2024-08-27
|
|
11
|
+
~~~~~~~~~~~~~~~~
|
|
12
|
+
|
|
13
|
+
Breaking:
|
|
14
|
+
|
|
15
|
+
- Add proper XML Exception when service parameter disabled / invalid or missing
|
|
16
|
+
In the past MapProxy returned WMS Capabilities when no explicit service parameter was given in
|
|
17
|
+
GetCapabilities requests. With this change, an OGC exception will be returned instead.
|
|
18
|
+
Invalid service types now also return a proper exception instead of an `internal error`.
|
|
19
|
+
Besides, the status code of exception responses now have a 400 or 500 code instead of 200
|
|
20
|
+
for better conformity.
|
|
21
|
+
|
|
22
|
+
Maintenance:
|
|
23
|
+
|
|
24
|
+
- Add test for seeding sqlite cache
|
|
25
|
+
- Documentation updates and clarifications
|
|
26
|
+
- Dependency updates
|
|
27
|
+
|
|
28
|
+
Fixes:
|
|
29
|
+
|
|
30
|
+
- Fix gh-pages workflow
|
|
31
|
+
|
|
32
|
+
|
|
1
33
|
2.2.0 2024-07-24
|
|
2
34
|
~~~~~~~~~~~~~~~~
|
|
3
35
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: MapProxy
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.1
|
|
4
4
|
Summary: An accelerating proxy for tile and web map services
|
|
5
5
|
Home-page: https://mapproxy.org
|
|
6
6
|
Author: Oliver Tonnhofer
|
|
@@ -34,6 +34,38 @@ The documentation is available at: http://mapproxy.github.io/mapproxy/latest/
|
|
|
34
34
|
|
|
35
35
|
Changes
|
|
36
36
|
-------
|
|
37
|
+
3.0.1 2024-08-27
|
|
38
|
+
~~~~~~~~~~~~~~~~
|
|
39
|
+
|
|
40
|
+
Fixes:
|
|
41
|
+
|
|
42
|
+
- Fix capabilities links in demo page and config template
|
|
43
|
+
- Trivy report format
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
3.0.0 2024-08-27
|
|
47
|
+
~~~~~~~~~~~~~~~~
|
|
48
|
+
|
|
49
|
+
Breaking:
|
|
50
|
+
|
|
51
|
+
- Add proper XML Exception when service parameter disabled / invalid or missing
|
|
52
|
+
In the past MapProxy returned WMS Capabilities when no explicit service parameter was given in
|
|
53
|
+
GetCapabilities requests. With this change, an OGC exception will be returned instead.
|
|
54
|
+
Invalid service types now also return a proper exception instead of an `internal error`.
|
|
55
|
+
Besides, the status code of exception responses now have a 400 or 500 code instead of 200
|
|
56
|
+
for better conformity.
|
|
57
|
+
|
|
58
|
+
Maintenance:
|
|
59
|
+
|
|
60
|
+
- Add test for seeding sqlite cache
|
|
61
|
+
- Documentation updates and clarifications
|
|
62
|
+
- Dependency updates
|
|
63
|
+
|
|
64
|
+
Fixes:
|
|
65
|
+
|
|
66
|
+
- Fix gh-pages workflow
|
|
67
|
+
|
|
68
|
+
|
|
37
69
|
2.2.0 2024-07-24
|
|
38
70
|
~~~~~~~~~~~~~~~~
|
|
39
71
|
|
|
@@ -114,53 +146,6 @@ Fixes:
|
|
|
114
146
|
- Fix mixed image format for file, S3 and azureblob caches
|
|
115
147
|
|
|
116
148
|
|
|
117
|
-
2.0.0 2023-12-19
|
|
118
|
-
~~~~~~~~~~~~~~~~~
|
|
119
|
-
Breaking:
|
|
120
|
-
|
|
121
|
-
- Removal of old unsupported python versions 3.7
|
|
122
|
-
- Tested python version range is now 3.8 to 3.11
|
|
123
|
-
- Lots of dependency updates
|
|
124
|
-
|
|
125
|
-
Improvements:
|
|
126
|
-
|
|
127
|
-
- Add S3 performance option to request via urllib2
|
|
128
|
-
- Allow md5 calls to work in FIPS environments
|
|
129
|
-
- Several Redis Cache enhancements
|
|
130
|
-
- Coverage support for caches
|
|
131
|
-
|
|
132
|
-
Fixes:
|
|
133
|
-
|
|
134
|
-
- Configure image options for caches (fixes erratically white tiles when requesting multiple cached layers)
|
|
135
|
-
- Fix for Legends in JSON Format
|
|
136
|
-
- Some more minor fixups
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
1.16.0 2023-04-13
|
|
140
|
-
~~~~~~~~~~~~~~~~~
|
|
141
|
-
Breaking:
|
|
142
|
-
|
|
143
|
-
- Removal of old unsupported python versions 2.7 and 3.6
|
|
144
|
-
- Tested python version range is now 3.7 to 3.11
|
|
145
|
-
- Lots of dependency updates
|
|
146
|
-
|
|
147
|
-
Improvements:
|
|
148
|
-
|
|
149
|
-
- New cache: Azure Blob storage
|
|
150
|
-
- Lots of dependency updates
|
|
151
|
-
- Support for JSON legends
|
|
152
|
-
- Updated layer preview to use latest openlayers
|
|
153
|
-
- Official docker images released, documentation updated
|
|
154
|
-
|
|
155
|
-
Fixes:
|
|
156
|
-
|
|
157
|
-
- Fixed issues with sqlite cache (#629 and #625)
|
|
158
|
-
- Dependency correction
|
|
159
|
-
- library detection difficulties on some operating systems
|
|
160
|
-
- encoding issues with umlauts in featureinfo
|
|
161
|
-
- Several minor bugfixes
|
|
162
|
-
- mapproxy-util export - derive image format from cache config
|
|
163
|
-
|
|
164
149
|
|
|
165
150
|
Older changes
|
|
166
151
|
-------------
|
|
@@ -167,6 +167,7 @@ mapproxy/service/template_helper.py
|
|
|
167
167
|
mapproxy/service/tile.py
|
|
168
168
|
mapproxy/service/wms.py
|
|
169
169
|
mapproxy/service/wmts.py
|
|
170
|
+
mapproxy/service/templates/ows_exception.xml
|
|
170
171
|
mapproxy/service/templates/tms_capabilities.xml
|
|
171
172
|
mapproxy/service/templates/tms_exception.xml
|
|
172
173
|
mapproxy/service/templates/tms_root_resource.xml
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: MapProxy
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.1
|
|
4
4
|
Summary: An accelerating proxy for tile and web map services
|
|
5
5
|
Home-page: https://mapproxy.org
|
|
6
6
|
Author: Oliver Tonnhofer
|
|
@@ -34,6 +34,38 @@ The documentation is available at: http://mapproxy.github.io/mapproxy/latest/
|
|
|
34
34
|
|
|
35
35
|
Changes
|
|
36
36
|
-------
|
|
37
|
+
3.0.1 2024-08-27
|
|
38
|
+
~~~~~~~~~~~~~~~~
|
|
39
|
+
|
|
40
|
+
Fixes:
|
|
41
|
+
|
|
42
|
+
- Fix capabilities links in demo page and config template
|
|
43
|
+
- Trivy report format
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
3.0.0 2024-08-27
|
|
47
|
+
~~~~~~~~~~~~~~~~
|
|
48
|
+
|
|
49
|
+
Breaking:
|
|
50
|
+
|
|
51
|
+
- Add proper XML Exception when service parameter disabled / invalid or missing
|
|
52
|
+
In the past MapProxy returned WMS Capabilities when no explicit service parameter was given in
|
|
53
|
+
GetCapabilities requests. With this change, an OGC exception will be returned instead.
|
|
54
|
+
Invalid service types now also return a proper exception instead of an `internal error`.
|
|
55
|
+
Besides, the status code of exception responses now have a 400 or 500 code instead of 200
|
|
56
|
+
for better conformity.
|
|
57
|
+
|
|
58
|
+
Maintenance:
|
|
59
|
+
|
|
60
|
+
- Add test for seeding sqlite cache
|
|
61
|
+
- Documentation updates and clarifications
|
|
62
|
+
- Dependency updates
|
|
63
|
+
|
|
64
|
+
Fixes:
|
|
65
|
+
|
|
66
|
+
- Fix gh-pages workflow
|
|
67
|
+
|
|
68
|
+
|
|
37
69
|
2.2.0 2024-07-24
|
|
38
70
|
~~~~~~~~~~~~~~~~
|
|
39
71
|
|
|
@@ -114,53 +146,6 @@ Fixes:
|
|
|
114
146
|
- Fix mixed image format for file, S3 and azureblob caches
|
|
115
147
|
|
|
116
148
|
|
|
117
|
-
2.0.0 2023-12-19
|
|
118
|
-
~~~~~~~~~~~~~~~~~
|
|
119
|
-
Breaking:
|
|
120
|
-
|
|
121
|
-
- Removal of old unsupported python versions 3.7
|
|
122
|
-
- Tested python version range is now 3.8 to 3.11
|
|
123
|
-
- Lots of dependency updates
|
|
124
|
-
|
|
125
|
-
Improvements:
|
|
126
|
-
|
|
127
|
-
- Add S3 performance option to request via urllib2
|
|
128
|
-
- Allow md5 calls to work in FIPS environments
|
|
129
|
-
- Several Redis Cache enhancements
|
|
130
|
-
- Coverage support for caches
|
|
131
|
-
|
|
132
|
-
Fixes:
|
|
133
|
-
|
|
134
|
-
- Configure image options for caches (fixes erratically white tiles when requesting multiple cached layers)
|
|
135
|
-
- Fix for Legends in JSON Format
|
|
136
|
-
- Some more minor fixups
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
1.16.0 2023-04-13
|
|
140
|
-
~~~~~~~~~~~~~~~~~
|
|
141
|
-
Breaking:
|
|
142
|
-
|
|
143
|
-
- Removal of old unsupported python versions 2.7 and 3.6
|
|
144
|
-
- Tested python version range is now 3.7 to 3.11
|
|
145
|
-
- Lots of dependency updates
|
|
146
|
-
|
|
147
|
-
Improvements:
|
|
148
|
-
|
|
149
|
-
- New cache: Azure Blob storage
|
|
150
|
-
- Lots of dependency updates
|
|
151
|
-
- Support for JSON legends
|
|
152
|
-
- Updated layer preview to use latest openlayers
|
|
153
|
-
- Official docker images released, documentation updated
|
|
154
|
-
|
|
155
|
-
Fixes:
|
|
156
|
-
|
|
157
|
-
- Fixed issues with sqlite cache (#629 and #625)
|
|
158
|
-
- Dependency correction
|
|
159
|
-
- library detection difficulties on some operating systems
|
|
160
|
-
- encoding issues with umlauts in featureinfo
|
|
161
|
-
- Several minor bugfixes
|
|
162
|
-
- mapproxy-util export - derive image format from cache config
|
|
163
|
-
|
|
164
149
|
|
|
165
150
|
Older changes
|
|
166
151
|
-------------
|
|
@@ -513,7 +513,7 @@ Available options:
|
|
|
513
513
|
When set to ``true``, requests to S3 ``GetObject`` will be fetched via urllib2 instead of boto, which decreases response times. Defaults to ``false``.
|
|
514
514
|
|
|
515
515
|
.. note::
|
|
516
|
-
The hierarchical ``directory_layouts`` can hit limitations of S3
|
|
516
|
+
The hierarchical ``directory_layouts`` can hit limitations of AWS S3 if you are routinely processing 3500 or more requests per second. ``directory_layout: reverse_tms`` can work around this limitation. Please read `S3 Request Rate and Performance Considerations <http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html>`_ for more information on this issue.
|
|
517
517
|
|
|
518
518
|
Example
|
|
519
519
|
-------
|
|
@@ -664,13 +664,13 @@ Example:
|
|
|
664
664
|
|
|
665
665
|
.. code-block:: yaml
|
|
666
666
|
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
667
|
+
caches:
|
|
668
|
+
osm_cache:
|
|
669
|
+
grids: ['osm_grid']
|
|
670
|
+
sources: [OSM]
|
|
671
|
+
disable_storage: false
|
|
672
|
+
refresh_before:
|
|
673
|
+
days: 1
|
|
674
674
|
|
|
675
675
|
|
|
676
676
|
``disable_storage``
|
|
@@ -685,7 +685,7 @@ even if the there are matching tiles in the cache. See :ref:`seed_only <wms_seed
|
|
|
685
685
|
"""""""""""""
|
|
686
686
|
|
|
687
687
|
Directory where MapProxy should store tiles for this cache. Uses the value of ``globals.cache.base_dir`` by default. MapProxy will store each cache in a subdirectory named after the cache and the grid SRS (e.g. ``cachename_EPSG1234``).
|
|
688
|
-
See :ref:`directory option<cache_file_directory>` on how configure a complete path.
|
|
688
|
+
See :ref:`directory option<cache_file_directory>` on how to configure a complete path.
|
|
689
689
|
|
|
690
690
|
``cache``
|
|
691
691
|
"""""""""
|
|
@@ -1004,7 +1004,7 @@ The following options define how tiles are created and stored. Most options can
|
|
|
1004
1004
|
.. _meta_size:
|
|
1005
1005
|
|
|
1006
1006
|
``meta_size``
|
|
1007
|
-
MapProxy does not make a single request for every tile it needs, but it will request a large meta-tile that consist of multiple tiles. ``meta_size`` defines how large a meta-tile is. A ``meta_size`` of ``[4, 4]`` will request 16 tiles in one pass. With a tile size of 256x256 this will result in 1024x1024 requests to the source. Tiled sources are still requested tile by tile, but you can configure MapProxy to load multiple tiles in bulk with ``bulk_meta_tiles``.
|
|
1007
|
+
MapProxy does not make a single request for every tile it needs, but it will request a large meta-tile that consist of multiple tiles. ``meta_size`` defines how large a meta-tile is. A ``meta_size`` of ``[4, 4]`` will request 16 tiles in one pass. With a tile size of 256x256 and 0 ``meta_buffer``, this will result in 1024x1024 requests to the source. (Note that the default value for ``meta_buffer`` is 80.) Tiled sources are still requested tile by tile, but you can configure MapProxy to load multiple tiles in bulk with ``bulk_meta_tiles``.
|
|
1008
1008
|
|
|
1009
1009
|
|
|
1010
1010
|
.. _bulk_meta_tiles:
|
|
@@ -1017,7 +1017,7 @@ The following options define how tiles are created and stored. Most options can
|
|
|
1017
1017
|
``meta_buffer``
|
|
1018
1018
|
MapProxy will increase the size of each meta-tile request by this number of
|
|
1019
1019
|
pixels in each direction. This can solve cases where labels are cut-off at
|
|
1020
|
-
the edge of tiles.
|
|
1020
|
+
the edge of tiles. Defaults to 80.
|
|
1021
1021
|
|
|
1022
1022
|
``base_dir``
|
|
1023
1023
|
The base directory where all cached tiles will be stored. The path can
|
|
@@ -24,6 +24,7 @@ from mapproxy.util.py import memoize
|
|
|
24
24
|
from mapproxy.config.spec import validate_options, add_source_to_mapproxy_yaml_spec, add_service_to_mapproxy_yaml_spec
|
|
25
25
|
from mapproxy.config.validator import validate
|
|
26
26
|
from mapproxy.config import load_default_config, finish_base_config, defaults
|
|
27
|
+
from mapproxy.service.ows import OWSServer
|
|
27
28
|
|
|
28
29
|
import os
|
|
29
30
|
import sys
|
|
@@ -2063,9 +2064,7 @@ class ServiceConfiguration(ConfigurationBase):
|
|
|
2063
2064
|
else:
|
|
2064
2065
|
services.append(new_service)
|
|
2065
2066
|
|
|
2066
|
-
|
|
2067
|
-
from mapproxy.service.ows import OWSServer
|
|
2068
|
-
services.append(OWSServer(ows_services))
|
|
2067
|
+
services.append(OWSServer(ows_services))
|
|
2069
2068
|
return services
|
|
2070
2069
|
|
|
2071
2070
|
def tile_layers(self, conf, use_grid_names=False):
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
# Demo:
|
|
11
11
|
# http://localhost:8080/demo
|
|
12
12
|
# WMS:
|
|
13
|
-
# capabilities: http://localhost:8080/service?REQUEST=GetCapabilities
|
|
13
|
+
# capabilities: http://localhost:8080/service?REQUEST=GetCapabilities&SERVICE=WMS
|
|
14
14
|
# WMTS:
|
|
15
15
|
# capabilities: http://localhost:8080/wmts/1.0.0/WMTSCapabilities.xml
|
|
16
16
|
# first tile: http://localhost:8080/wmts/osm/webmercator/0/0/0.png
|
|
@@ -19,6 +19,9 @@ Service exception handling (WMS exceptions, XML, in_image, etc.).
|
|
|
19
19
|
from html import escape
|
|
20
20
|
|
|
21
21
|
from mapproxy.response import Response
|
|
22
|
+
from mapproxy.template import template_loader
|
|
23
|
+
import mapproxy.service
|
|
24
|
+
get_template = template_loader(mapproxy.service.__package__, 'templates')
|
|
22
25
|
|
|
23
26
|
|
|
24
27
|
class RequestError(Exception):
|
|
@@ -29,13 +32,14 @@ class RequestError(Exception):
|
|
|
29
32
|
was valid (e.g. the source server is unreachable
|
|
30
33
|
"""
|
|
31
34
|
|
|
32
|
-
def __init__(self, message, code=None, request=None, internal=False, status=None):
|
|
35
|
+
def __init__(self, message, code=None, request=None, internal=False, status=None, locator=None):
|
|
33
36
|
Exception.__init__(self, message)
|
|
34
37
|
self.msg = message
|
|
35
38
|
self.code = code
|
|
36
39
|
self.request = request
|
|
37
40
|
self.internal = internal
|
|
38
41
|
self.status = status
|
|
42
|
+
self.locator = locator
|
|
39
43
|
|
|
40
44
|
def render(self):
|
|
41
45
|
"""
|
|
@@ -93,7 +97,7 @@ class XMLExceptionHandler(ExceptionHandler):
|
|
|
93
97
|
The content_type is sent as defined here.
|
|
94
98
|
"""
|
|
95
99
|
|
|
96
|
-
status_code =
|
|
100
|
+
status_code = 500
|
|
97
101
|
"""
|
|
98
102
|
The HTTP status code.
|
|
99
103
|
"""
|
|
@@ -122,7 +126,11 @@ class XMLExceptionHandler(ExceptionHandler):
|
|
|
122
126
|
|
|
123
127
|
:type request_error: `RequestError`
|
|
124
128
|
"""
|
|
125
|
-
|
|
129
|
+
if request_error.status is not None:
|
|
130
|
+
status_code = request_error.status
|
|
131
|
+
else:
|
|
132
|
+
status_code = self.status_codes.get(request_error.code, self.status_code)
|
|
133
|
+
|
|
126
134
|
# escape &<> in error message (e.g. URL params)
|
|
127
135
|
msg = escape(request_error.msg)
|
|
128
136
|
result = self.template.substitute(exception=msg,
|
|
@@ -138,6 +146,34 @@ class XMLExceptionHandler(ExceptionHandler):
|
|
|
138
146
|
return self.template_func(self.template_file)
|
|
139
147
|
|
|
140
148
|
|
|
149
|
+
class OWSExceptionHandler(XMLExceptionHandler):
|
|
150
|
+
"""
|
|
151
|
+
Exception handler for generic OWS ServiceExceptionReports
|
|
152
|
+
"""
|
|
153
|
+
template_file = 'ows_exception.xml'
|
|
154
|
+
template_func = get_template
|
|
155
|
+
mimetype = 'text/xml'
|
|
156
|
+
|
|
157
|
+
def render(self, request_error):
|
|
158
|
+
"""
|
|
159
|
+
Render the template of this exception handler. Passes the
|
|
160
|
+
``request_error.msg``, ``request_error.locator`` and ``request_error.code`` to the template.
|
|
161
|
+
|
|
162
|
+
:type request_error: `RequestError`
|
|
163
|
+
"""
|
|
164
|
+
if request_error.status is not None:
|
|
165
|
+
status_code = request_error.status
|
|
166
|
+
else:
|
|
167
|
+
status_code = self.status_codes.get(request_error.code, self.status_code)
|
|
168
|
+
|
|
169
|
+
# escape &<> in error message (e.g. URL params)
|
|
170
|
+
msg = escape(request_error.msg)
|
|
171
|
+
result = self.template.substitute(exception=msg,
|
|
172
|
+
code=request_error.code, locator=request_error.locator)
|
|
173
|
+
return Response(result, mimetype=self.mimetype, content_type=self.content_type,
|
|
174
|
+
status=status_code)
|
|
175
|
+
|
|
176
|
+
|
|
141
177
|
class PlainExceptionHandler(ExceptionHandler):
|
|
142
178
|
mimetype = 'text/plain'
|
|
143
179
|
status_code = 404
|
|
@@ -138,7 +138,7 @@ class DemoServer(Server):
|
|
|
138
138
|
elif 'wmts_layer' in req.args:
|
|
139
139
|
demo = self._render_wmts_template('demo/wmts_demo.html', req)
|
|
140
140
|
elif 'wms_capabilities' in req.args:
|
|
141
|
-
internal_url = '%s/service?REQUEST=GetCapabilities' % (req.server_script_url)
|
|
141
|
+
internal_url = '%s/service?REQUEST=GetCapabilities&SERVICE=WMS' % (req.server_script_url)
|
|
142
142
|
if 'type' in req.args and req.args['type'] == 'external':
|
|
143
143
|
url = internal_url.replace(req.server_script_url, req.script_url)
|
|
144
144
|
else:
|
|
@@ -146,7 +146,7 @@ class DemoServer(Server):
|
|
|
146
146
|
capabilities = urllib2.urlopen(url)
|
|
147
147
|
demo = self._render_capabilities_template('demo/capabilities_demo.html', capabilities, 'WMS', url)
|
|
148
148
|
elif 'wmsc_capabilities' in req.args:
|
|
149
|
-
internal_url = '%s/service?REQUEST=GetCapabilities&tiled=true' % (req.server_script_url)
|
|
149
|
+
internal_url = '%s/service?REQUEST=GetCapabilities&SERVICE=WMS&tiled=true' % (req.server_script_url)
|
|
150
150
|
if 'type' in req.args and req.args['type'] == 'external':
|
|
151
151
|
url = internal_url.replace(req.server_script_url, req.script_url)
|
|
152
152
|
else:
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"""
|
|
17
17
|
Wrapper service handler for all OWS services (/service?).
|
|
18
18
|
"""
|
|
19
|
+
from mapproxy.exception import OWSExceptionHandler, RequestError
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
class OWSServer(object):
|
|
@@ -33,7 +34,24 @@ class OWSServer(object):
|
|
|
33
34
|
self.services[service.service] = service
|
|
34
35
|
|
|
35
36
|
def handle(self, req):
|
|
36
|
-
service = req.args.get('service'
|
|
37
|
-
|
|
37
|
+
service = req.args.get('service')
|
|
38
|
+
wmtver = req.args.get('wmtver')
|
|
39
|
+
if not service:
|
|
40
|
+
if wmtver == '1.0.0':
|
|
41
|
+
# WMS version 1.0.0 did not have a mandatory service parameter
|
|
42
|
+
service = 'wms'
|
|
43
|
+
else:
|
|
44
|
+
req.exception_handler = OWSExceptionHandler()
|
|
45
|
+
|
|
46
|
+
error = RequestError('The service parameter is missing',
|
|
47
|
+
code='MissingParameterValue', request=req, locator='service', status=400)
|
|
48
|
+
return req.exception_handler.render(error)
|
|
49
|
+
|
|
50
|
+
service = service.lower()
|
|
51
|
+
if service not in self.services:
|
|
52
|
+
req.exception_handler = OWSExceptionHandler()
|
|
53
|
+
error = RequestError('The value of the service parameter "' + str(service) + '" is invalid',
|
|
54
|
+
code='InvalidParameterValue', request=req, locator='service', status=400)
|
|
55
|
+
return error.render()
|
|
38
56
|
|
|
39
57
|
return self.services[service].handle(req)
|
|
@@ -35,7 +35,7 @@ jscript_openlayers=None
|
|
|
35
35
|
{{if 'wms' in services}}
|
|
36
36
|
<div class="capabilities">
|
|
37
37
|
<span>Capabilities document</span>
|
|
38
|
-
<span><a href="../service?REQUEST=GetCapabilities">(download as xml)</a></span>
|
|
38
|
+
<span><a href="../service?REQUEST=GetCapabilities&SERVICE=WMS">(download as xml)</a></span>
|
|
39
39
|
<span><a href="../demo/?wms_capabilities">(view as html, internal)</a></span>
|
|
40
40
|
<span><a href="../demo/?wms_capabilities&type=external">(view as html, external)</a></span>
|
|
41
41
|
</div>
|
|
@@ -83,7 +83,7 @@ jscript_openlayers=None
|
|
|
83
83
|
{{if 'wms' in services}}
|
|
84
84
|
<div class="capabilities">
|
|
85
85
|
<span>Capabilities document</span>
|
|
86
|
-
<span><a href="../service?REQUEST=GetCapabilities&tiled=true">(download as xml)</a></span>
|
|
86
|
+
<span><a href="../service?REQUEST=GetCapabilities&SERVICE=WMS&tiled=true">(download as xml)</a></span>
|
|
87
87
|
<span><a href="../demo/?wmsc_capabilities">(view as html, internal)</a></span>
|
|
88
88
|
<span><a href="../demo/?wmsc_capabilities&type=external">(view as html, external)</a></span>
|
|
89
89
|
</div>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<ows:ExceptionReport xmlns:ows="http://www.opengis.net/ows/1.1"
|
|
3
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
4
|
+
xsi:schemaLocation="http://www.opengis.net/ows/1.1 http://schemas.opengis.net/ows/1.1.0/owsExceptionReport.xsd"
|
|
5
|
+
version="1.0.0" xml:lang="en">
|
|
6
|
+
<ows:Exception{{if code is not None}} exceptionCode="{{code}}"{{endif}}
|
|
7
|
+
{{if locator is not None}} locator="{{locator}}"{{endif}}>
|
|
8
|
+
<ows:ExceptionText>{{exception}}</ows:ExceptionText>
|
|
9
|
+
</ows:Exception>
|
|
10
|
+
</ows:ExceptionReport>
|
|
@@ -29,6 +29,11 @@ seeds:
|
|
|
29
29
|
refresh_before:
|
|
30
30
|
days: 1
|
|
31
31
|
|
|
32
|
+
sqlite_cache:
|
|
33
|
+
caches: [sqlite_cache]
|
|
34
|
+
grids: [GLOBAL_GEODETIC]
|
|
35
|
+
levels: [0]
|
|
36
|
+
|
|
32
37
|
with_empty_coverage:
|
|
33
38
|
caches: [mbtile_cache]
|
|
34
39
|
grids: [GLOBAL_GEODETIC]
|
|
@@ -58,7 +63,7 @@ cleanups:
|
|
|
58
63
|
levels: [1]
|
|
59
64
|
remove_all: true
|
|
60
65
|
|
|
61
|
-
|
|
66
|
+
cleanup_sqlite_cache:
|
|
62
67
|
caches: [sqlite_cache]
|
|
63
68
|
grids: [GLOBAL_GEODETIC]
|
|
64
69
|
levels: [3]
|
|
@@ -91,4 +96,4 @@ cleanups:
|
|
|
91
96
|
grids: [GLOBAL_GEODETIC]
|
|
92
97
|
levels: [0]
|
|
93
98
|
remove_before:
|
|
94
|
-
mtime: 'seed.yaml'
|
|
99
|
+
mtime: 'seed.yaml'
|
|
@@ -29,8 +29,8 @@ class TestDemo(SysTest):
|
|
|
29
29
|
def test_basic(self, app):
|
|
30
30
|
resp = app.get("/demo/", status=200)
|
|
31
31
|
assert resp.content_type == "text/html"
|
|
32
|
-
assert 'href="../service?REQUEST=GetCapabilities"' in resp
|
|
33
|
-
assert 'href="../service?REQUEST=GetCapabilities&tiled=true"' in resp
|
|
32
|
+
assert 'href="../service?REQUEST=GetCapabilities&SERVICE=WMS"' in resp
|
|
33
|
+
assert 'href="../service?REQUEST=GetCapabilities&SERVICE=WMS&tiled=true"' in resp
|
|
34
34
|
assert 'href="../demo/?wmts_layer=wms_cache&format=jpeg&srs=EPSG%3A900913"' in resp
|
|
35
35
|
assert 'href="../demo/?tms_layer=wms_cache&format=jpeg&srs=EPSG%3A900913"' in resp
|
|
36
36
|
|
|
@@ -45,8 +45,8 @@ class TestDemoWithExtraService(SysTest):
|
|
|
45
45
|
def test_basic(self, app):
|
|
46
46
|
resp = app.get("/demo/", status=200)
|
|
47
47
|
assert resp.content_type == "text/html"
|
|
48
|
-
assert 'href="../service?REQUEST=GetCapabilities"' in resp
|
|
49
|
-
assert 'href="../service?REQUEST=GetCapabilities&tiled=true"' in resp
|
|
48
|
+
assert 'href="../service?REQUEST=GetCapabilities&SERVICE=WMS"' in resp
|
|
49
|
+
assert 'href="../service?REQUEST=GetCapabilities&SERVICE=WMS&tiled=true"' in resp
|
|
50
50
|
assert 'href="../demo/?wmts_layer=wms_cache&format=jpeg&srs=EPSG%3A900913"' in resp
|
|
51
51
|
assert 'href="../demo/?tms_layer=wms_cache&format=jpeg&srs=EPSG%3A900913"' in resp
|
|
52
52
|
assert '<h2>My extra service</h2>' in resp
|
|
@@ -212,7 +212,7 @@ class TestWMSLegendgraphic(SysTest):
|
|
|
212
212
|
|
|
213
213
|
def test_get_legendgraphic_no_legend_111(self, app):
|
|
214
214
|
self.common_lg_req_111.params["layer"] = "wms_no_legend"
|
|
215
|
-
resp = app.get(self.common_lg_req_111)
|
|
215
|
+
resp = app.get(self.common_lg_req_111, expect_errors=True)
|
|
216
216
|
assert resp.content_type == "application/vnd.ogc.se_xml"
|
|
217
217
|
xml = resp.lxml
|
|
218
218
|
assert (
|
|
@@ -227,7 +227,7 @@ class TestWMSLegendgraphic(SysTest):
|
|
|
227
227
|
.replace("sld_version", "invalid")
|
|
228
228
|
.replace("format", "invalid")
|
|
229
229
|
)
|
|
230
|
-
resp = app.get(req)
|
|
230
|
+
resp = app.get(req, expect_errors=True)
|
|
231
231
|
assert resp.content_type == "application/vnd.ogc.se_xml"
|
|
232
232
|
xml = resp.lxml
|
|
233
233
|
assert "missing parameters" in xml.xpath("//ServiceException/text()")[0]
|
|
@@ -237,7 +237,7 @@ class TestWMSLegendgraphic(SysTest):
|
|
|
237
237
|
req = str(self.common_lg_req_111).replace(
|
|
238
238
|
"sld_version=1.1.0", "sld_version=1.0.0"
|
|
239
239
|
)
|
|
240
|
-
resp = app.get(req)
|
|
240
|
+
resp = app.get(req, expect_errors=True)
|
|
241
241
|
assert resp.content_type == "application/vnd.ogc.se_xml"
|
|
242
242
|
xml = resp.lxml
|
|
243
243
|
assert "invalid sld_version" in xml.xpath("//ServiceException/text()")[0]
|
|
@@ -245,7 +245,7 @@ class TestWMSLegendgraphic(SysTest):
|
|
|
245
245
|
|
|
246
246
|
def test_get_legendgraphic_no_legend_130(self, app):
|
|
247
247
|
self.common_lg_req_130.params["layer"] = "wms_no_legend"
|
|
248
|
-
resp = app.get(self.common_lg_req_130)
|
|
248
|
+
resp = app.get(self.common_lg_req_130, expect_errors=True)
|
|
249
249
|
assert resp.content_type == "text/xml"
|
|
250
250
|
xml = resp.lxml
|
|
251
251
|
assert_xpath_wms130(xml, "/ogc:ServiceExceptionReport/@version", "1.3.0")
|
|
@@ -258,7 +258,7 @@ class TestWMSLegendgraphic(SysTest):
|
|
|
258
258
|
|
|
259
259
|
def test_get_legendgraphic_missing_params_130(self, app):
|
|
260
260
|
req = str(self.common_lg_req_130).replace("format", "invalid")
|
|
261
|
-
resp = app.get(req)
|
|
261
|
+
resp = app.get(req, expect_errors=True)
|
|
262
262
|
assert resp.content_type == "text/xml"
|
|
263
263
|
xml = resp.lxml
|
|
264
264
|
assert_xpath_wms130(xml, "/ogc:ServiceExceptionReport/@version", "1.3.0")
|
|
@@ -271,7 +271,7 @@ class TestWMSLegendgraphic(SysTest):
|
|
|
271
271
|
req = str(self.common_lg_req_130).replace(
|
|
272
272
|
"sld_version=1.1.0", "sld_version=1.0.0"
|
|
273
273
|
)
|
|
274
|
-
resp = app.get(req)
|
|
274
|
+
resp = app.get(req, expect_errors=True)
|
|
275
275
|
assert resp.content_type == "text/xml"
|
|
276
276
|
xml = resp.lxml
|
|
277
277
|
assert_xpath_wms130(xml, "/ogc:ServiceExceptionReport/@version", "1.3.0")
|
|
@@ -179,14 +179,14 @@ class TestWMS111(SysTest):
|
|
|
179
179
|
|
|
180
180
|
with mock_single_req_httpd(("localhost", 42423), req_handler):
|
|
181
181
|
self.common_map_req.params["bbox"] = "0,0,9,9"
|
|
182
|
-
resp = app.get(self.common_map_req)
|
|
182
|
+
resp = app.get(self.common_map_req, expect_errors=True)
|
|
183
183
|
|
|
184
184
|
assert resp.content_type == "application/vnd.ogc.se_xml"
|
|
185
185
|
is_111_exception(resp.lxml, re_msg="Error from renderd: barf")
|
|
186
186
|
|
|
187
187
|
def test_get_map_connection_error(self, app):
|
|
188
188
|
self.common_map_req.params["bbox"] = "0,0,9,9"
|
|
189
|
-
resp = app.get(self.common_map_req)
|
|
189
|
+
resp = app.get(self.common_map_req, expect_errors=True)
|
|
190
190
|
|
|
191
191
|
assert resp.content_type == "application/vnd.ogc.se_xml"
|
|
192
192
|
is_111_exception(resp.lxml, re_msg="Error while communicating with renderd:")
|
|
@@ -210,7 +210,7 @@ class TestWMS111(SysTest):
|
|
|
210
210
|
|
|
211
211
|
with mock_single_req_httpd(("localhost", 42423), req_handler):
|
|
212
212
|
self.common_map_req.params["bbox"] = "0,0,9,9"
|
|
213
|
-
resp = app.get(self.common_map_req)
|
|
213
|
+
resp = app.get(self.common_map_req, expect_errors=True)
|
|
214
214
|
|
|
215
215
|
assert resp.content_type == "application/vnd.ogc.se_xml"
|
|
216
216
|
is_111_exception(
|
|
@@ -46,7 +46,7 @@ class TestResponseHeaders(SysTest):
|
|
|
46
46
|
assert resp.vary == ('X-Script-Name', 'X-Forwarded-Host', 'X-Forwarded-Proto')
|
|
47
47
|
|
|
48
48
|
def test_no_endpoint(self, app):
|
|
49
|
-
resp = app.get('http://localhost/service?')
|
|
49
|
+
resp = app.get('http://localhost/service?', expect_errors=True)
|
|
50
50
|
assert resp.vary == ('X-Script-Name', 'X-Forwarded-Host', 'X-Forwarded-Proto')
|
|
51
51
|
|
|
52
52
|
def test_image_response(self, app):
|