mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
import os
|
|
from owslib.etree import etree
|
|
|
|
def resource_file(filepath):
|
|
return os.path.join(test_directory(), 'resources', filepath)
|
|
|
|
def test_directory():
|
|
"""Helper function to return path to the tests directory"""
|
|
return os.path.dirname(__file__)
|
|
|
|
def scratch_directory():
|
|
"""Helper function to return path to the tests scratch directory"""
|
|
return os.path.join(test_directory(), 'scratch')
|
|
|
|
def scratch_file(filename):
|
|
"""Helper function to return file path in the tests scratch directory"""
|
|
return os.path.join(scratch_directory(), filename)
|
|
|
|
def compare_xml(a,b):
|
|
if not isinstance(a, etree._Element):
|
|
a = etree.fromstring(a)
|
|
if not isinstance(b, etree._Element):
|
|
b = etree.fromstring(b)
|
|
|
|
return compare_elements(a,b)
|
|
|
|
def compare_elements(a,b):
|
|
# Tag
|
|
if a.tag != b.tag:
|
|
return False
|
|
# Value
|
|
if a.text != b.text:
|
|
return False
|
|
# Attributes
|
|
if sorted(a.items()) != sorted(b.items()):
|
|
return False
|
|
# Children
|
|
if len(list(a)) != len(list(b)):
|
|
return False
|
|
# Recurse
|
|
for ac, bc in zip(list(a), list(b)):
|
|
if not compare_elements(ac, bc):
|
|
return False
|
|
|
|
return True
|
|
|
|
def cast_tuple_int_list(tup):
|
|
"""Set tuple float values to int for more predictable test results"""
|
|
return [int(a) for a in tup]
|
|
|
|
def cast_tuple_int_list_srs(tup):
|
|
tup2 = cast_tuple_int_list(tup[:4])
|
|
tup2.append(tup[-1])
|
|
return tup2
|