Skip to content

Commit

Permalink
Fix tests for QGIS 3.36, "name" is now provided in GetFeatureInfo
Browse files Browse the repository at this point in the history
  • Loading branch information
Gustry committed Mar 15, 2024
1 parent d732db6 commit b0d0690
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 60 deletions.
1 change: 1 addition & 0 deletions lizmap_server/get_legend_graphic.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import json
import re

from typing import Optional

from qgis.core import Qgis, QgsDataSourceUri, QgsProject
Expand Down
131 changes: 72 additions & 59 deletions test/test_get_feature_info.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import logging
import xml.etree.ElementTree as ET

from qgis.core import Qgis
from xmldiff import main as xml_diff

LOGGER = logging.getLogger('server')
Expand Down Expand Up @@ -52,10 +53,12 @@ def test_no_get_feature_info_default_popup(client):
rv = client.get(qs, PROJECT)
assert rv.status_code == 200
assert rv.headers.get('Content-Type', '').find('text/xml') == 0
expected = f'''<GetFeatureInfoResponse>
<Layer name="{LAYER_DEFAULT_POPUP}"/>
</GetFeatureInfoResponse>
'''
title_attribute = f'title="{LAYER_DEFAULT_POPUP}"' if Qgis.QGIS_VERSION_INT >= 33600 else ''
expected = f'''
<GetFeatureInfoResponse>
<Layer name="{LAYER_DEFAULT_POPUP}" {title_attribute}/>
</GetFeatureInfoResponse>
'''
diff = xml_diff.diff_texts(expected, rv.content)
assert diff == [], diff

Expand All @@ -66,21 +69,23 @@ def test_single_get_feature_info_default_popup(client):
rv = client.get(qs, PROJECT)
assert rv.status_code == 200
assert rv.headers.get('Content-Type', '').find('text/xml') == 0
expected = f'''<GetFeatureInfoResponse>
<Layer name="{LAYER_DEFAULT_POPUP}">
<Feature id="1">
<Attribute name="OBJECTID" value="2662"/>
<Attribute name="NAME_0" value="France"/>
<Attribute name="VARNAME_1" value="Bretaa|Brittany"/>
<Attribute name="Region" value="Bretagne"/>
<Attribute name="Shape_Leng" value="18.39336934850"/>
<Attribute name="Shape_Area" value="3.30646936365"/>
<Attribute name="lwc_user" value="No user provided"/>
<Attribute name="lwc_groups" value="No user groups provided"/>
</Feature>
</Layer>
</GetFeatureInfoResponse>
'''
title_attribute = f'title="{LAYER_DEFAULT_POPUP}"' if Qgis.QGIS_VERSION_INT >= 33600 else ''
expected = f'''
<GetFeatureInfoResponse>
<Layer name="{LAYER_DEFAULT_POPUP}" {title_attribute}>
<Feature id="1">
<Attribute name="OBJECTID" value="2662"/>
<Attribute name="NAME_0" value="France"/>
<Attribute name="VARNAME_1" value="Bretaa|Brittany"/>
<Attribute name="Region" value="Bretagne"/>
<Attribute name="Shape_Leng" value="18.39336934850"/>
<Attribute name="Shape_Area" value="3.30646936365"/>
<Attribute name="lwc_user" value="No user provided"/>
<Attribute name="lwc_groups" value="No user groups provided"/>
</Feature>
</Layer>
</GetFeatureInfoResponse>
'''
diff = xml_diff.diff_texts(expected, rv.content)
assert diff == [], diff

Expand All @@ -92,21 +97,23 @@ def test_single_get_feature_info_default_popup_user(client):
rv = client.get(qs, PROJECT, headers)
assert rv.status_code == 200
assert rv.headers.get('Content-Type', '').find('text/xml') == 0
expected = f'''<GetFeatureInfoResponse>
<Layer name="{LAYER_DEFAULT_POPUP}">
<Feature id="1">
<Attribute name="OBJECTID" value="2662"/>
<Attribute name="NAME_0" value="France"/>
<Attribute name="VARNAME_1" value="Bretaa|Brittany"/>
<Attribute name="Region" value="Bretagne"/>
<Attribute name="Shape_Leng" value="18.39336934850"/>
<Attribute name="Shape_Area" value="3.30646936365"/>
<Attribute name="lwc_user" value="Bretagne"/>
<Attribute name="lwc_groups" value="test1"/>
</Feature>
</Layer>
</GetFeatureInfoResponse>
'''
title_attribute = f'title="{LAYER_DEFAULT_POPUP}"' if Qgis.QGIS_VERSION_INT >= 33600 else ''
expected = f'''
<GetFeatureInfoResponse>
<Layer name="{LAYER_DEFAULT_POPUP}" {title_attribute}>
<Feature id="1">
<Attribute name="OBJECTID" value="2662"/>
<Attribute name="NAME_0" value="France"/>
<Attribute name="VARNAME_1" value="Bretaa|Brittany"/>
<Attribute name="Region" value="Bretagne"/>
<Attribute name="Shape_Leng" value="18.39336934850"/>
<Attribute name="Shape_Area" value="3.30646936365"/>
<Attribute name="lwc_user" value="Bretagne"/>
<Attribute name="lwc_groups" value="test1"/>
</Feature>
</Layer>
</GetFeatureInfoResponse>
'''
diff = xml_diff.diff_texts(expected, rv.content)
assert diff == [], diff

Expand All @@ -118,21 +125,24 @@ def test_single_get_feature_info_qgis_popup(client):
assert rv.status_code == 200
assert rv.headers.get('Content-Type', '').find('text/xml') == 0

title_attribute = f'title="{LAYER_QGIS_POPUP}"' if Qgis.QGIS_VERSION_INT >= 33600 else ''

# Note the line <TH>maptip</TH>
expected = f'''<GetFeatureInfoResponse>
<Layer name="{LAYER_QGIS_POPUP}">
<Feature id="1">
<Attribute name="OBJECTID" value="2662"/>
<Attribute name="NAME_0" value="France"/>
<Attribute name="VARNAME_1" value="Bretaa|Brittany"/>
<Attribute name="Region" value="Bretagne"/>
<Attribute name="Shape_Leng" value="18.39336934850"/>
<Attribute name="Shape_Area" value="3.30646936365"/>
<Attribute name="maptip" value="&lt;p>France&lt;/p>"/>
</Feature>
</Layer>
</GetFeatureInfoResponse>
'''
expected = f'''
<GetFeatureInfoResponse>
<Layer name="{LAYER_QGIS_POPUP}" {title_attribute}>
<Feature id="1">
<Attribute name="OBJECTID" value="2662"/>
<Attribute name="NAME_0" value="France"/>
<Attribute name="VARNAME_1" value="Bretaa|Brittany"/>
<Attribute name="Region" value="Bretagne"/>
<Attribute name="Shape_Leng" value="18.39336934850"/>
<Attribute name="Shape_Area" value="3.30646936365"/>
<Attribute name="maptip" value="&lt;p>France&lt;/p>"/>
</Feature>
</Layer>
</GetFeatureInfoResponse>
'''
diff = xml_diff.diff_texts(expected, rv.content)
assert diff == [], diff

Expand All @@ -156,17 +166,20 @@ def test_single_get_feature_info_form_popup(client):
xml_lines = ET.tostring(root, encoding='utf8', method='xml').decode("utf-8").split('\n')
xml_string = '\n'.join(xml_lines[1:])

expected = f'''<GetFeatureInfoResponse>
<Layer name="{LAYER_QGIS_FORM}">
<Feature id="1">
<Attribute name="OBJECTID" value="2662"/>
<Attribute name="NAME_0" value="France"/>
<Attribute name="VARNAME_1" value="Bretaa|Brittany"/>
<Attribute name="Region" value="Bretagne"/>
<Attribute name="Shape_Leng" value="18.39336934850"/>
<Attribute name="Shape_Area" value="3.30646936365"/>
</Feature>
</Layer>
title_attribute = f'title="{LAYER_QGIS_FORM}"' if Qgis.QGIS_VERSION_INT >= 33600 else ''

expected = f'''
<GetFeatureInfoResponse>
<Layer name="{LAYER_QGIS_FORM}" {title_attribute}>
<Feature id="1">
<Attribute name="OBJECTID" value="2662"/>
<Attribute name="NAME_0" value="France"/>
<Attribute name="VARNAME_1" value="Bretaa|Brittany"/>
<Attribute name="Region" value="Bretagne"/>
<Attribute name="Shape_Leng" value="18.39336934850"/>
<Attribute name="Shape_Area" value="3.30646936365"/>
</Feature>
</Layer>
</GetFeatureInfoResponse>
'''
diff = xml_diff.diff_texts(expected, xml_string.strip())
Expand Down
3 changes: 2 additions & 1 deletion test/test_legend.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import logging

from test.utils import _build_query_string, _check_request
from lizmap_server.get_legend_graphic import GetLegendGraphicFilter

from qgis.core import Qgis

from lizmap_server.get_legend_graphic import GetLegendGraphicFilter

LOGGER = logging.getLogger('server')

__copyright__ = 'Copyright 2023, 3Liz'
Expand Down

0 comments on commit b0d0690

Please sign in to comment.