From c2231300a0cc3ed95b3a8d9e30af00bc20341046 Mon Sep 17 00:00:00 2001 From: rldhont Date: Wed, 24 Jun 2020 15:39:44 +0200 Subject: [PATCH] Isolate test_wms_getprint_atlas --- tests/src/python/CMakeLists.txt | 1 + .../src/python/test_qgsserver_wms_getprint.py | 26 -------- .../test_qgsserver_wms_getprint_atlas.py | 60 +++++++++++++++++++ 3 files changed, 61 insertions(+), 26 deletions(-) create mode 100644 tests/src/python/test_qgsserver_wms_getprint_atlas.py diff --git a/tests/src/python/CMakeLists.txt b/tests/src/python/CMakeLists.txt index 7b33d9a253e2..b26471944ade 100644 --- a/tests/src/python/CMakeLists.txt +++ b/tests/src/python/CMakeLists.txt @@ -360,6 +360,7 @@ IF (WITH_SERVER) ADD_PYTHON_TEST(PyQgsServerWMSGetLegendGraphic test_qgsserver_wms_getlegendgraphic.py) ADD_PYTHON_TEST(PyQgsServerWMSGetPrint test_qgsserver_wms_getprint.py) ADD_PYTHON_TEST(PyQgsServerWMSGetPrintOutputs test_qgsserver_wms_getprint_outputs.py) + ADD_PYTHON_TEST(PyQgsServerWMSGetPrintAtlas test_qgsserver_wms_getprint_atlas.py) ADD_PYTHON_TEST(PyQgsServerWMSDimension test_qgsserver_wms_dimension.py) ADD_PYTHON_TEST(PyQgsServerSettings test_qgsserver_settings.py) ADD_PYTHON_TEST(PyQgsServerProjectUtils test_qgsserver_projectutils.py) diff --git a/tests/src/python/test_qgsserver_wms_getprint.py b/tests/src/python/test_qgsserver_wms_getprint.py index 52e0d0e30d90..a2cbfff5178a 100644 --- a/tests/src/python/test_qgsserver_wms_getprint.py +++ b/tests/src/python/test_qgsserver_wms_getprint.py @@ -444,32 +444,6 @@ def test_wms_getprint_two_maps(self): r, h = self._result(self._execute_request(qs)) self._img_diff_error(r, h, "WMS_GetPrint_TwoMaps") - def test_wms_getprint_atlas(self): - qs = "?" + "&".join(["%s=%s" % i for i in list({ - "MAP": urllib.parse.quote(self.projectPath), - "SERVICE": "WMS", - "VERSION": "1.3.0", - "REQUEST": "GetPrint", - "TEMPLATE": "layoutA4", - "FORMAT": "png", - "CRS": "EPSG:3857", - "ATLAS_PK": "3", - "map0:LAYERS": "Country,Hello", - }.items())]) - r, h = self._result(self._execute_request(qs)) - self._img_diff_error(r, h, "WMS_GetPrint_Atlas") - - def test_wms_getprint_atlas_getProjectSettings(self): - qs = "?" + "&".join(["%s=%s" % i for i in list({ - "MAP": urllib.parse.quote(self.projectPath), - "SERVICE": "WMS", - "VERSION": "1.3.0", - "REQUEST": "GetProjectSettings", - }.items())]) - r, h = self._result(self._execute_request(qs)) - self.assertTrue('atlasEnabled="1"' in str(r)) - self.assertTrue('' in str(r)) - @unittest.skipIf(os.environ.get('TRAVIS', '') == 'true', 'Can\'t rely on external resources for continuous integration') def test_wms_getprint_external(self): diff --git a/tests/src/python/test_qgsserver_wms_getprint_atlas.py b/tests/src/python/test_qgsserver_wms_getprint_atlas.py new file mode 100644 index 000000000000..9251982ff281 --- /dev/null +++ b/tests/src/python/test_qgsserver_wms_getprint_atlas.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +"""QGIS Unit tests for QgsServer WMS GetPrint. + +From build dir, run: ctest -R PyQgsServerWMSGetPrintAtlas -V + + +.. note:: This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +""" +__author__ = 'René-Luc DHONT' +__date__ = '24/06/2020' +__copyright__ = 'Copyright 2020, The QGIS Project' + +import os + +# Needed on Qt 5 so that the serialization of XML is consistent among all executions +os.environ['QT_HASH_SEED'] = '1' + +import urllib.parse + +from qgis.testing import unittest + +from test_qgsserver import QgsServerTestBase + + +class TestQgsServerWMSGetPrintAtlas(QgsServerTestBase): + """QGIS Server WMS Tests for GetPrint atlas request""" + + def test_wms_getprint_atlas(self): + qs = "?" + "&".join(["%s=%s" % i for i in list({ + "MAP": urllib.parse.quote(self.projectPath), + "SERVICE": "WMS", + "VERSION": "1.3.0", + "REQUEST": "GetPrint", + "TEMPLATE": "layoutA4", + "FORMAT": "png", + "CRS": "EPSG:3857", + "ATLAS_PK": "3", + "map0:LAYERS": "Country,Hello", + }.items())]) + r, h = self._result(self._execute_request(qs)) + self._img_diff_error(r, h, "WMS_GetPrint_Atlas") + + def test_wms_getprint_atlas_getProjectSettings(self): + qs = "?" + "&".join(["%s=%s" % i for i in list({ + "MAP": urllib.parse.quote(self.projectPath), + "SERVICE": "WMS", + "VERSION": "1.3.0", + "REQUEST": "GetProjectSettings", + }.items())]) + r, h = self._result(self._execute_request(qs)) + self.assertTrue('atlasEnabled="1"' in str(r)) + self.assertTrue('' in str(r)) + + +if __name__ == '__main__': + unittest.main()