Skip to content

Commit 29b60fd

Browse files
committed
tests/common.py - use cache with get_schema tests/test_execute.py - save schema_wps_url as const string tests/test_describe.py - reformat tests/test_capabilities.py - remove unnecessary imports
1 parent 4b0b108 commit 29b60fd

File tree

4 files changed

+29
-13
lines changed

4 files changed

+29
-13
lines changed

tests/common.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
# server_wps_url, server_base_url are used in the tests
88
from app_config import server_wps_url, server_base_url
99

10+
schema_wps_url = 'http://schemas.opengis.net/wps/1.0.0/wpsExecute_response.xsd'
11+
1012
NAMESPACES = {
1113
'xlink': "http://www.w3.org/1999/xlink",
1214
'wps': "http://www.opengis.net/wps/1.0.0",
@@ -32,9 +34,14 @@ def get_response(url, post_data=None):
3234

3335

3436
def get_schema(url):
35-
schema = get_response(url)
36-
xmlschema_doc = etree.parse(schema)
37-
return etree.XMLSchema(xmlschema_doc)
37+
if not hasattr(get_schema, "cache"):
38+
get_schema.cache = dict()
39+
if url not in get_schema.cache:
40+
schema_response = get_response(url)
41+
xmlschema_doc = etree.parse(schema_response)
42+
# etree.XMLSchema takes ages, so I cache the result
43+
get_schema.cache[url] = etree.XMLSchema(xmlschema_doc)
44+
return get_schema.cache[url]
3845

3946

4047
def validate_file(path, schema):
@@ -57,3 +64,11 @@ def validate(url, schema, post_data=None):
5764
print(info)
5865
print(body)
5966
return False
67+
68+
69+
if __name__ == '__main__':
70+
schema = get_schema(schema_wps_url)
71+
print(schema)
72+
schema = get_schema(schema_wps_url)
73+
print(schema)
74+

tests/test_capabilities.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
11
import unittest
2-
import lxml.etree as etree
3-
import urllib
4-
import subprocess
52

63
from tests.common import validate, server_wps_url
74

5+
86
class CapabilitiesTest(unittest.TestCase):
97

108
def setUp(self):
11-
129
self.url = server_wps_url + "?service=wps&request=getcapabilities"
1310
self.schema_url = 'http://schemas.opengis.net/wps/1.0.0/wpsGetCapabilities_response.xsd'
1411

1512
def test_valid(self):
1613
assert validate(self.url, self.schema_url)
1714

15+
1816
def load_tests(loader=None, tests=None, pattern=None):
1917
if not loader:
2018
loader = unittest.TestLoader()

tests/test_describe.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,17 @@
44

55
from tests.common import validate, server_wps_url
66

7+
78
class DescribeTest(unittest.TestCase):
89

910
def setUp(self):
10-
1111
self.url = server_wps_url + '?service=wps&request=describeprocess&version=1.0.0&identifier=all'
1212
self.schema_url = 'http://schemas.opengis.net/wps/1.0.0/wpsDescribeProcess_response.xsd'
1313

1414
def test_valid(self):
1515
assert validate(self.url, self.schema_url)
1616

17+
1718
def load_tests(loader=None, tests=None, pattern=None):
1819
if not loader:
1920
loader = unittest.TestLoader()

tests/test_execute.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
import lxml.etree as etree
55
import time
66

7-
from tests.common import validate, server_wps_url, get_response
8-
9-
from tests.common import NAMESPACES, server_base_url
7+
from tests.common import NAMESPACES, validate, server_wps_url, server_base_url, get_response, schema_wps_url
108

119

1210
process_succeeded = '//wps:ExecuteResponse/wps:Status/wps:ProcessSucceeded'
@@ -22,7 +20,7 @@ class SayHello(unittest.TestCase):
2220
"""
2321

2422
def setUp(self):
25-
self.schema_url = 'http://schemas.opengis.net/wps/1.0.0/wpsExecute_response.xsd'
23+
self.schema_url = schema_wps_url
2624

2725
def test_valid(self):
2826
"""GET Execute request"""
@@ -37,7 +35,7 @@ class Buffer(unittest.TestCase):
3735
"""
3836

3937
def setUp(self):
40-
self.schema_url = 'http://schemas.opengis.net/wps/1.0.0/wpsExecute_response.xsd'
38+
self.schema_url = schema_wps_url
4139
self.url = server_wps_url
4240
resp = get_response(server_base_url + '/static/requests/buffer.xml')
4341
self.request_data = resp.read()
@@ -169,3 +167,7 @@ def load_tests(loader=None, tests=None, pattern=None):
169167
loader.loadTestsFromTestCase(Buffer)
170168
]
171169
return unittest.TestSuite(suite_list)
170+
171+
172+
if __name__ == "__main__":
173+
load_tests()

0 commit comments

Comments
 (0)