]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/bdd/steps/queries.py
add JSON format to /status endpoint (#1013)
[nominatim.git] / test / bdd / steps / queries.py
index 5779c7637b301b188a443fb6e85835345d7cf89d..7266be55913fc3cff9962819e4cf781b725de823 100644 (file)
@@ -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")