X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/f50f46c1ce3fe44d8de55071d2fe1126ecb1d0ac..71ae7f10f74251ebef13abe8d186276e6255b5d4:/test/bdd/steps/queries.py?ds=inline diff --git a/test/bdd/steps/queries.py b/test/bdd/steps/queries.py index 1584d1ed..fd13dd13 100644 --- a/test/bdd/steps/queries.py +++ b/test/bdd/steps/queries.py @@ -114,6 +114,9 @@ class SearchResponse(GenericResponse): self.parse_json() self.result = geojson_results_to_json_results(self.result) + def parse_geocodejson(self): + return self.parse_geojson() + def parse_html(self): content, errors = tidy_document(self.page, options={'char-encoding' : 'utf8'}) @@ -195,6 +198,9 @@ class ReverseResponse(GenericResponse): return self.result = geojson_results_to_json_results(self.result[0]) + def parse_geocodejson(self): + return self.parse_geojson() + def parse_xml(self): et = ET.fromstring(self.page) @@ -587,6 +593,27 @@ def step_impl(context, lid, coords): assert_greater_equal(bbox[2], coord[2]) assert_less_equal(bbox[3], coord[3]) +@then(u'result (?P\d+ )?has centroid in (?P[\d,.-]+)') +def step_impl(context, lid, coords): + if lid is None: + context.execute_steps("then at least 1 result is returned") + bboxes = zip(context.response.property_list('lat'), + context.response.property_list('lon')) + else: + context.execute_steps("then more than %sresults are returned" % lid) + res = context.response.result[int(lid)] + bboxes = [ (res['lat'], res['lon']) ] + + coord = [ float(x) for x in coords.split(',') ] + + for lat, lon in bboxes: + lat = float(lat) + lon = float(lon) + assert_greater_equal(lat, coord[0]) + assert_less_equal(lat, coord[1]) + assert_greater_equal(lon, coord[2]) + assert_less_equal(lon, coord[3]) + @then(u'there are(?P no)? duplicates') def check_for_duplicates(context, neg): context.execute_steps("then at least 1 result is returned")