]> git.openstreetmap.org Git - nominatim.git/blob - test/bdd/steps/queries.py
d91879287a8308d24abb6b2b73fbbb62fede8694
[nominatim.git] / test / bdd / steps / queries.py
1 """ Steps that run search queries.
2
3     Queries may either be run directly via PHP using the query script
4     or via the HTTP interface.
5 """
6
7 import os
8 import subprocess
9
10 class SearchResponse(object):
11
12     def __init__(response, 
13
14 @when(u'searching for "(?P<query>.*)"( with params)?$')
15 def query_cmd(context, query):
16     """ Query directly via PHP script.
17     """
18     cmd = [os.path.join(context.nominatim.build_dir, 'utils', 'query.php'),
19            '--search', query]
20     # add more parameters in table form
21     if context.table:
22         for h in context.table.headings:
23             value = context.table[0][h].strip()
24             if value:
25                 cmd.extend(('--' + h, value))
26
27     proc = subprocess.Popen(cmd, cwd=context.nominatim.build_dir,
28                             stdout=subprocess.PIPE, stderr=subprocess.PIPE)
29     (outp, err) = proc.communicate()
30
31     assert_equals (0, proc.returncode), "query.php failed with message: %s" % err
32
33     context.
34     world.page = outp
35     world.response_format = 'json'
36     world.request_type = 'search'
37     world.returncode = 200
38