logger = logging.getLogger(__name__)
def api_call(requesttype):
+ world.request_type = requesttype
world.json_callback = None
data = urllib.urlencode(world.params)
url = "%s/%s?%s" % (world.config.base_url, requesttype, data)
world.response_format = fmt
elif fmt in ('json', 'jsonv2'):
if 'json_callback' in world.params:
- world.json_callback = world.params['json_callback']
+ world.json_callback = world.params['json_callback'].encode('utf8')
assert world.page.startswith(world.json_callback + '(')
assert world.page.endswith(')')
world.page = world.page[(len(world.json_callback)+1):-1]
world.params['format'] = fmt.strip()
api_call('reverse')
+@step(u'looking up place ([NRW]?\d+)')
+def api_setup_details_reverse(step, obj):
+ if obj[0] in ('N', 'R', 'W'):
+ # an osm id
+ world.params['osm_type'] = obj[0]
+ world.params['osm_id'] = obj[1:]
+ else:
+ world.params['place_id'] = obj
+ api_call('reverse')
+
@step(u'looking up details for ([NRW]?\d+)')
def api_setup_details(step, obj):
if obj[0] in ('N', 'R', 'W'):
else:
world.params['place_id'] = obj
api_call('details')
+
+@step(u'looking up (\w+) places ((?:[a-z]\d+,*)+)')
+def api_setup_lookup(step, fmt, ids):
+ world.params['osm_ids'] = ids
+ if fmt and fmt.strip():
+ world.params['format'] = fmt.strip()
+ api_call('lookup')
+
+@step(u'sending an API call (\w+)')
+def api_general_call(step, call):
+ api_call(call)