mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-16 15:47:58 +00:00
add JSON format to /status endpoint (#1013)
add JSON format to /status endpoint
This commit is contained in:
@@ -236,6 +236,20 @@ class DetailsResponse(GenericResponse):
|
||||
self.result = [json.JSONDecoder(object_pairs_hook=OrderedDict).decode(self.page)]
|
||||
|
||||
|
||||
class StatusResponse(GenericResponse):
|
||||
|
||||
def __init__(self, page, fmt='text', errorcode=200):
|
||||
self.page = page
|
||||
self.format = fmt
|
||||
self.errorcode = errorcode
|
||||
|
||||
if errorcode == 200 and fmt != 'text':
|
||||
getattr(self, 'parse_' + fmt)()
|
||||
|
||||
def parse_json(self):
|
||||
self.result = [json.JSONDecoder(object_pairs_hook=OrderedDict).decode(self.page)]
|
||||
|
||||
|
||||
@when(u'searching for "(?P<query>.*)"(?P<dups> with dups)?')
|
||||
def query_cmd(context, query, dups):
|
||||
""" Query directly via PHP script.
|
||||
@@ -402,6 +416,18 @@ def website_lookup_request(context, fmt, query):
|
||||
|
||||
context.response = SearchResponse(outp, outfmt, status)
|
||||
|
||||
@when(u'sending (?P<fmt>\S+ )?status query')
|
||||
def website_status_request(context, fmt):
|
||||
params = {}
|
||||
outp, status = send_api_query('status', params, fmt, context)
|
||||
|
||||
if fmt is None:
|
||||
outfmt = 'text'
|
||||
else:
|
||||
outfmt = fmt.strip()
|
||||
|
||||
context.response = StatusResponse(outp, outfmt, status)
|
||||
|
||||
@step(u'(?P<operator>less than|more than|exactly|at least|at most) (?P<number>\d+) results? (?:is|are) returned')
|
||||
def validate_result_number(context, operator, number):
|
||||
eq_(context.response.errorcode, 200)
|
||||
@@ -413,6 +439,10 @@ def validate_result_number(context, operator, number):
|
||||
def check_http_return_status(context, status):
|
||||
eq_(context.response.errorcode, int(status))
|
||||
|
||||
@then(u'the page contents equals "(?P<text>.+)"')
|
||||
def check_page_content_equals(context, text):
|
||||
eq_(context.response.page, text)
|
||||
|
||||
@then(u'the result is valid (?P<fmt>\w+)')
|
||||
def step_impl(context, fmt):
|
||||
context.execute_steps("Then a HTTP 200 is returned")
|
||||
|
||||
Reference in New Issue
Block a user