mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
remove tests for HTML output
This commit is contained in:
@@ -30,7 +30,6 @@ unit tests (using PHPUnit). It has the following additional requirements:
|
|||||||
|
|
||||||
* [behave test framework](https://behave.readthedocs.io) >= 1.2.5
|
* [behave test framework](https://behave.readthedocs.io) >= 1.2.5
|
||||||
* [nose](https://nose.readthedocs.io)
|
* [nose](https://nose.readthedocs.io)
|
||||||
* [pytidylib](http://countergram.com/open-source/pytidylib)
|
|
||||||
* [phpunit](https://phpunit.de) >= 7.3
|
* [phpunit](https://phpunit.de) >= 7.3
|
||||||
* [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer)
|
* [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer)
|
||||||
|
|
||||||
|
|||||||
@@ -43,10 +43,10 @@ Feature: Object details
|
|||||||
Then the result is valid json
|
Then the result is valid json
|
||||||
|
|
||||||
Scenario Outline: HTML Details with keywords
|
Scenario Outline: HTML Details with keywords
|
||||||
When sending html details query for <osmid>
|
When sending json details query for <osmid>
|
||||||
| keywords |
|
| keywords |
|
||||||
| 1 |
|
| 1 |
|
||||||
Then the result is valid html
|
Then the result is valid json
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
| osmid |
|
| osmid |
|
||||||
|
|||||||
@@ -8,13 +8,9 @@ Feature: Object details
|
|||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
| format | object |
|
| format | object |
|
||||||
| html | 492887 |
|
|
||||||
| json | 492887 |
|
| json | 492887 |
|
||||||
| html | N4267356889 |
|
|
||||||
| json | N4267356889 |
|
| json | N4267356889 |
|
||||||
| html | W230804120 |
|
|
||||||
| json | W230804120 |
|
| json | W230804120 |
|
||||||
| html | R123924 |
|
|
||||||
| json | R123924 |
|
| json | R123924 |
|
||||||
|
|
||||||
Scenario Outline: Details via unknown OSM id
|
Scenario Outline: Details via unknown OSM id
|
||||||
@@ -23,21 +19,19 @@ Feature: Object details
|
|||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
| format | object |
|
| format | object |
|
||||||
| html | 1 |
|
|
||||||
| json | 1 |
|
| json | 1 |
|
||||||
| html | R1 |
|
|
||||||
| json | R1 |
|
| json | R1 |
|
||||||
|
|
||||||
Scenario: Details with keywords
|
Scenario: Details with keywords
|
||||||
When sending details query for W78099902
|
When sending details query for W78099902
|
||||||
| keywords |
|
| keywords |
|
||||||
| 1 |
|
| 1 |
|
||||||
Then the result is valid html
|
Then the result is valid json
|
||||||
|
|
||||||
# ticket #1343
|
# ticket #1343
|
||||||
Scenario: Details of a country with keywords
|
Scenario: Details of a country with keywords
|
||||||
When sending details query for R287072
|
When sending details query for R287072
|
||||||
| keywords |
|
| keywords |
|
||||||
| 1 |
|
| 1 |
|
||||||
Then the result is valid html
|
Then the result is valid json
|
||||||
|
|
||||||
|
|||||||
@@ -13,8 +13,6 @@ Feature: Simple Reverse Tests
|
|||||||
Then the result is valid json
|
Then the result is valid json
|
||||||
When sending geojson reverse coordinates <lat>,<lon>
|
When sending geojson reverse coordinates <lat>,<lon>
|
||||||
Then the result is valid geojson
|
Then the result is valid geojson
|
||||||
When sending html reverse coordinates <lat>,<lon>
|
|
||||||
Then the result is valid html
|
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
| lat | lon |
|
| lat | lon |
|
||||||
@@ -28,10 +26,6 @@ Feature: Simple Reverse Tests
|
|||||||
| param | value |
|
| param | value |
|
||||||
| <parameter> | <value> |
|
| <parameter> | <value> |
|
||||||
Then the result is valid xml
|
Then the result is valid xml
|
||||||
When sending html reverse coordinates 53.603,10.041
|
|
||||||
| param | value |
|
|
||||||
| <parameter> | <value> |
|
|
||||||
Then the result is valid html
|
|
||||||
When sending xml reverse coordinates 53.603,10.041
|
When sending xml reverse coordinates 53.603,10.041
|
||||||
| param | value |
|
| param | value |
|
||||||
| <parameter> | <value> |
|
| <parameter> | <value> |
|
||||||
@@ -100,7 +94,6 @@ Feature: Simple Reverse Tests
|
|||||||
| json |
|
| json |
|
||||||
| jsonv2 |
|
| jsonv2 |
|
||||||
| geojson |
|
| geojson |
|
||||||
| html |
|
|
||||||
| xml |
|
| xml |
|
||||||
|
|
||||||
Scenario: Missing lon parameter
|
Scenario: Missing lon parameter
|
||||||
|
|||||||
@@ -7,10 +7,6 @@ Feature: Simple Tests
|
|||||||
| param | value |
|
| param | value |
|
||||||
| <parameter> | <value> |
|
| <parameter> | <value> |
|
||||||
Then at least 1 result is returned
|
Then at least 1 result is returned
|
||||||
When sending html search query "Hamburg"
|
|
||||||
| param | value |
|
|
||||||
| <parameter> | <value> |
|
|
||||||
Then at least 1 result is returned
|
|
||||||
When sending xml search query "Hamburg"
|
When sending xml search query "Hamburg"
|
||||||
| param | value |
|
| param | value |
|
||||||
| <parameter> | <value> |
|
| <parameter> | <value> |
|
||||||
@@ -65,9 +61,7 @@ Feature: Simple Tests
|
|||||||
|
|
||||||
Scenario Outline: Simple Searches
|
Scenario Outline: Simple Searches
|
||||||
When sending search query "<query>"
|
When sending search query "<query>"
|
||||||
Then the result is valid html
|
Then the result is valid json
|
||||||
When sending html search query "<query>"
|
|
||||||
Then the result is valid html
|
|
||||||
When sending xml search query "<query>"
|
When sending xml search query "<query>"
|
||||||
Then the result is valid xml
|
Then the result is valid xml
|
||||||
When sending json search query "<query>"
|
When sending json search query "<query>"
|
||||||
@@ -185,10 +179,6 @@ Feature: Simple Tests
|
|||||||
| json_callback |
|
| json_callback |
|
||||||
| 234 |
|
| 234 |
|
||||||
Then the result is valid xml
|
Then the result is valid xml
|
||||||
When sending html search query "Malibu"
|
|
||||||
| json_callback |
|
|
||||||
| 234 |
|
|
||||||
Then the result is valid html
|
|
||||||
|
|
||||||
Scenario: Empty JSON search
|
Scenario: Empty JSON search
|
||||||
When sending json search query "YHlERzzx"
|
When sending json search query "YHlERzzx"
|
||||||
@@ -209,14 +199,3 @@ Feature: Simple Tests
|
|||||||
Then result header contains
|
Then result header contains
|
||||||
| attr | value |
|
| attr | value |
|
||||||
| more_url | .*&countrycodes=pl%2Cbo&.* |
|
| more_url | .*&countrycodes=pl%2Cbo&.* |
|
||||||
|
|
||||||
Scenario Outline: Search with debug prints valid HTML
|
|
||||||
When sending html search query "<query>"
|
|
||||||
| extratags | addressdetails | namedetails | debug |
|
|
||||||
| 1 | 1 | 1 | 1 |
|
|
||||||
Then the result is valid html
|
|
||||||
|
|
||||||
Examples:
|
|
||||||
| query |
|
|
||||||
| 10, Alvierweg, 9490, Vaduz |
|
|
||||||
| Hamburg |
|
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import os
|
|||||||
import io
|
import io
|
||||||
import re
|
import re
|
||||||
import logging
|
import logging
|
||||||
from tidylib import tidy_document
|
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
import subprocess
|
import subprocess
|
||||||
from urllib.parse import urlencode
|
from urllib.parse import urlencode
|
||||||
@@ -119,23 +118,6 @@ class SearchResponse(GenericResponse):
|
|||||||
if self.result is not None:
|
if self.result is not None:
|
||||||
self.result = [r['geocoding'] for r in self.result]
|
self.result = [r['geocoding'] for r in self.result]
|
||||||
|
|
||||||
def parse_html(self):
|
|
||||||
content, errors = tidy_document(self.page,
|
|
||||||
options={'char-encoding' : 'utf8'})
|
|
||||||
#eq_(len(errors), 0 , "Errors found in HTML document:\n%s" % errors)
|
|
||||||
|
|
||||||
self.result = []
|
|
||||||
b = content.find('nominatim_results =')
|
|
||||||
e = content.find('</script>')
|
|
||||||
if b >= 0 and e >= 0:
|
|
||||||
content = content[b:e]
|
|
||||||
|
|
||||||
b = content.find('[')
|
|
||||||
e = content.rfind(']')
|
|
||||||
if b >= 0 and e >= 0:
|
|
||||||
self.result = json.JSONDecoder(object_pairs_hook=OrderedDict)\
|
|
||||||
.decode(content[b:e+1])
|
|
||||||
|
|
||||||
def parse_xml(self):
|
def parse_xml(self):
|
||||||
et = ET.fromstring(self.page)
|
et = ET.fromstring(self.page)
|
||||||
|
|
||||||
@@ -176,19 +158,6 @@ class ReverseResponse(GenericResponse):
|
|||||||
if errorcode == 200:
|
if errorcode == 200:
|
||||||
getattr(self, 'parse_' + fmt)()
|
getattr(self, 'parse_' + fmt)()
|
||||||
|
|
||||||
def parse_html(self):
|
|
||||||
content, errors = tidy_document(self.page,
|
|
||||||
options={'char-encoding' : 'utf8'})
|
|
||||||
#eq_(len(errors), 0 , "Errors found in HTML document:\n%s" % errors)
|
|
||||||
|
|
||||||
b = content.find('nominatim_results =')
|
|
||||||
e = content.find('</script>')
|
|
||||||
content = content[b:e]
|
|
||||||
b = content.find('[')
|
|
||||||
e = content.rfind(']')
|
|
||||||
|
|
||||||
self.result = json.JSONDecoder(object_pairs_hook=OrderedDict).decode(content[b:e+1])
|
|
||||||
|
|
||||||
def parse_json(self):
|
def parse_json(self):
|
||||||
m = re.fullmatch(r'([\w$][^(]*)\((.*)\)', self.page)
|
m = re.fullmatch(r'([\w$][^(]*)\((.*)\)', self.page)
|
||||||
if m is None:
|
if m is None:
|
||||||
@@ -251,11 +220,6 @@ class DetailsResponse(GenericResponse):
|
|||||||
if errorcode == 200:
|
if errorcode == 200:
|
||||||
getattr(self, 'parse_' + fmt)()
|
getattr(self, 'parse_' + fmt)()
|
||||||
|
|
||||||
def parse_html(self):
|
|
||||||
content, errors = tidy_document(self.page,
|
|
||||||
options={'char-encoding' : 'utf8'})
|
|
||||||
self.result = {}
|
|
||||||
|
|
||||||
def parse_json(self):
|
def parse_json(self):
|
||||||
self.result = [json.JSONDecoder(object_pairs_hook=OrderedDict).decode(self.page)]
|
self.result = [json.JSONDecoder(object_pairs_hook=OrderedDict).decode(self.page)]
|
||||||
|
|
||||||
@@ -408,9 +372,7 @@ def website_search_request(context, fmt, query, addr):
|
|||||||
|
|
||||||
outp, status = send_api_query('search', params, fmt, context)
|
outp, status = send_api_query('search', params, fmt, context)
|
||||||
|
|
||||||
if fmt is None:
|
if fmt is None or fmt == 'jsonv2 ':
|
||||||
outfmt = 'html'
|
|
||||||
elif fmt == 'jsonv2 ':
|
|
||||||
outfmt = 'json'
|
outfmt = 'json'
|
||||||
else:
|
else:
|
||||||
outfmt = fmt.strip()
|
outfmt = fmt.strip()
|
||||||
@@ -447,7 +409,7 @@ def website_details_request(context, fmt, query):
|
|||||||
outp, status = send_api_query('details', params, fmt, context)
|
outp, status = send_api_query('details', params, fmt, context)
|
||||||
|
|
||||||
if fmt is None:
|
if fmt is None:
|
||||||
outfmt = 'html'
|
outfmt = 'json'
|
||||||
else:
|
else:
|
||||||
outfmt = fmt.strip()
|
outfmt = fmt.strip()
|
||||||
|
|
||||||
@@ -508,9 +470,7 @@ def check_page_error(context, fmt):
|
|||||||
context.execute_steps("Then a HTTP 400 is returned")
|
context.execute_steps("Then a HTTP 400 is returned")
|
||||||
eq_(context.response.format, fmt)
|
eq_(context.response.format, fmt)
|
||||||
|
|
||||||
if fmt == 'html':
|
if fmt == 'xml':
|
||||||
assert_is_not_none(re.search(r'<html( |>).+</html>', context.response.page, re.DOTALL))
|
|
||||||
elif fmt == 'xml':
|
|
||||||
assert_is_not_none(re.search(r'<error>.+</error>', context.response.page, re.DOTALL))
|
assert_is_not_none(re.search(r'<error>.+</error>', context.response.page, re.DOTALL))
|
||||||
else:
|
else:
|
||||||
assert_is_not_none(re.search(r'({"error":)', context.response.page, re.DOTALL))
|
assert_is_not_none(re.search(r'({"error":)', context.response.page, re.DOTALL))
|
||||||
|
|||||||
Reference in New Issue
Block a user