X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/cce57139cf47ffe7d857a4c0a5743c100262ce5e..9454761cca4bb3a2b0fa997797054d67078a2fcc:/test/bdd/steps/queries.py?ds=inline diff --git a/test/bdd/steps/queries.py b/test/bdd/steps/queries.py index 443342b0..5779c763 100644 --- a/test/bdd/steps/queries.py +++ b/test/bdd/steps/queries.py @@ -232,12 +232,17 @@ class DetailsResponse(GenericResponse): options={'char-encoding' : 'utf8'}) self.result = {} + def parse_json(self): + self.result = [json.JSONDecoder(object_pairs_hook=OrderedDict).decode(self.page)] + + @when(u'searching for "(?P.*)"(?P with dups)?') def query_cmd(context, query, dups): """ Query directly via PHP script. """ - cmd = [os.path.join(context.nominatim.build_dir, 'utils', 'query.php'), - '--search', query] + cmd = ['/usr/bin/env', 'php'] + cmd.append(os.path.join(context.nominatim.build_dir, 'utils', 'query.php')) + cmd.extend(['--search', query]) # add more parameters in table form if context.table: for h in context.table.headings: @@ -282,7 +287,7 @@ def send_api_query(endpoint, params, fmt, context): if hasattr(context, 'http_headers'): env.update(context.http_headers) - cmd = ['/usr/bin/php-cgi', '-f'] + cmd = ['/usr/bin/env', 'php-cgi', '-f'] if context.nominatim.code_coverage_path: env['COV_SCRIPT_FILENAME'] = env['SCRIPT_FILENAME'] env['COV_PHP_DIR'] = os.path.join(context.nominatim.src_dir, "lib") @@ -307,7 +312,7 @@ def send_api_query(endpoint, params, fmt, context): + outp + "\n===============================\n") assert_equals(0, proc.returncode, - "query.php failed with message: %s\noutput: %s" % (err, outp)) + "%s failed with message: %s\noutput: %s" % (env['SCRIPT_FILENAME'], err, outp)) assert_equals(0, len(err), "Unexpected PHP error: %s" % (err)) @@ -349,7 +354,7 @@ def website_search_request(context, fmt, query, addr): context.response = SearchResponse(outp, outfmt, status) -@when(u'sending (?P\S+ )?reverse coordinates (?P[0-9.-]+)?,(?P[0-9.-]+)?') +@when(u'sending (?P\S+ )?reverse coordinates (?P.+)?,(?P.+)?') def website_reverse_request(context, fmt, lat, lon): params = {} if lat is not None: @@ -378,7 +383,12 @@ def website_details_request(context, fmt, query): params['place_id'] = query outp, status = send_api_query('details', params, fmt, context) - context.response = DetailsResponse(outp, 'html', status) + if fmt is None: + outfmt = 'html' + else: + outfmt = fmt.strip() + + context.response = DetailsResponse(outp, outfmt, status) @when(u'sending (?P\S+ )?lookup query for (?P.*)') def website_lookup_request(context, fmt, query): @@ -392,7 +402,6 @@ def website_lookup_request(context, fmt, query): context.response = SearchResponse(outp, outfmt, status) - @step(u'(?Pless than|more than|exactly|at least|at most) (?P\d+) results? (?:is|are) returned') def validate_result_number(context, operator, number): eq_(context.response.errorcode, 200)