details support json output

This commit is contained in:
Marc Tobias Metten
2018-03-09 02:27:24 +01:00
committed by Sarah Hoffmann
parent 3cdbcbff8f
commit 1e28f2478c
4 changed files with 152 additions and 53 deletions

View File

@@ -18,3 +18,36 @@ Feature: Object details
| keywords |
| 1 |
Then the result is valid html
Scenario: JSON Details
When sending json details query for W78099902
Then the result is valid json
And result has not attributes place_search_name_keywords,place_search_address_keywords,address_lines,linked_lines,parentof_lines
Scenario: JSON Details with keywords
When sending json details query for W78099902
| keywords |
| 1 |
Then the result is valid json
And result has attributes place_search_name_keywords,place_search_address_keywords
Scenario: JSON Details with addressdetails
When sending json details query for W78099902
| addressdetails |
| 1 |
Then the result is valid json
And result has attributes address_lines
Scenario: JSON Details with linkedplaces
When sending json details query for R123924
| linkedplaces |
| 1 |
Then the result is valid json
And result has attributes linked_lines
Scenario: JSON Details with childplaces
When sending json details query for W78099902
| childplaces |
| 1 |
Then the result is valid json
And result has attributes parentof_lines

View File

@@ -232,6 +232,10 @@ class DetailsResponse(GenericResponse):
options={'char-encoding' : 'utf8'})
self.result = {}
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.
@@ -379,7 +383,12 @@ def website_details_request(context, fmt, query):
params['place_id'] = query
outp, status = send_api_query('details', params, fmt, context)
context.response = DetailsResponse(outp, 'html', status)
if fmt is None:
outfmt = 'html'
else:
outfmt = fmt.strip()
context.response = DetailsResponse(outp, outfmt, status)
@when(u'sending (?P<fmt>\S+ )?lookup query for (?P<query>.*)')
def website_lookup_request(context, fmt, query):