]> git.openstreetmap.org Git - nominatim.git/commitdiff
add tests for geocodejson address fields
authorSarah Hoffmann <lonvia@denofr.de>
Wed, 1 Apr 2020 09:14:48 +0000 (11:14 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Wed, 1 Apr 2020 09:14:48 +0000 (11:14 +0200)
test/bdd/api/reverse/geocodejson.feature [new file with mode: 0644]
test/bdd/api/search/geocodejson.feature [new file with mode: 0644]
test/bdd/steps/queries.py

diff --git a/test/bdd/api/reverse/geocodejson.feature b/test/bdd/api/reverse/geocodejson.feature
new file mode 100644 (file)
index 0000000..ef2053a
--- /dev/null
@@ -0,0 +1,27 @@
+@APIDB
+Feature: Parameters for Reverse API
+    Testing correctness of geocodejson output.
+
+    Scenario: City housenumber-level address with street
+        When sending geocodejson reverse coordinates 53.556,9.9607
+        Then results contain
+          | housenumber | street           | postcode | city    | country |
+          | 10          | Brunnenhofstraße | 22767    | Hamburg | Deutschland | 
+
+    Scenario: Town street-level address with street
+        When sending geocodejson reverse coordinates 47.066,9.504
+        Then results contain
+          | street  | city    | postcode | country |
+          | Gnetsch | Balzers | 9496     | Liechtenstein |
+
+    Scenario: Town street-level address with footway
+        When sending geocodejson reverse coordinates 47.0653,9.5007
+        Then results contain
+          | street  | city    | postcode | country |
+          | Burgweg | Balzers | 9496     | Liechtenstein |
+
+    Scenario: City address with suburb
+        When sending geocodejson reverse coordinates 53.5822,10.0805
+        Then results contain
+          | housenumber | street                | locality  | city    | postcode | country |
+          | 64          | Hinschenfelder Straße | Wandsbek  | Hamburg | 22047    | Deutschland |
diff --git a/test/bdd/api/search/geocodejson.feature b/test/bdd/api/search/geocodejson.feature
new file mode 100644 (file)
index 0000000..f9132f7
--- /dev/null
@@ -0,0 +1,27 @@
+@APIDB
+Feature: Parameters for Search API
+    Testing correctness of geocodejson output.
+
+    Scenario: City housenumber-level address with street
+        When sending geocodejson search query "Brunnenhofstr 10, Hamburg" with address
+        Then results contain
+          | housenumber | street           | postcode | city    | country |
+          | 10          | Brunnenhofstraße | 22767    | Hamburg | Deutschland | 
+
+    Scenario: Town street-level address with street
+        When sending geocodejson search query "Gnetsch, Balzers" with address
+        Then results contain
+          | street  | city    | postcode | country |
+          | Gnetsch | Balzers | 9496     | Liechtenstein |
+
+    Scenario: Town street-level address with footway
+        When sending geocodejson search query "burg gutenberg 6000 jahre geschichte" with address
+        Then results contain
+          | street  | city    | postcode | country |
+          | Burgweg | Balzers | 9496     | Liechtenstein |
+
+    Scenario: City address with suburb
+        When sending geocodejson search query "hinschenfelder str 64, wandsbek" with address
+        Then results contain
+          | housenumber | street                | locality  | city    | postcode | country |
+          | 64          | Hinschenfelder Straße | Wandsbek  | Hamburg | 22047    | Deutschland |
index 4e6ec1ff5ab02c6d3556cd17877ca48376c370d6..d3b1203b47ae7a0c0cf1897b3bc7ec34c09988a6 100644 (file)
@@ -115,7 +115,9 @@ class SearchResponse(GenericResponse):
         self.result = geojson_results_to_json_results(self.result)
 
     def parse_geocodejson(self):
-        return self.parse_geojson()
+        self.parse_geojson()
+        if self.result is not None:
+            self.result = [r['geocoding'] for r in self.result]
 
     def parse_html(self):
         content, errors = tidy_document(self.page,
@@ -203,7 +205,9 @@ class ReverseResponse(GenericResponse):
         self.result = geojson_results_to_json_results(self.result[0])
 
     def parse_geocodejson(self):
-        return self.parse_geojson()
+        self.parse_geojson()
+        if self.result is not None:
+            self.result = [r['geocoding'] for r in self.result]
 
     def parse_xml(self):
         et = ET.fromstring(self.page)