Skip to content

Commit c86bfc7

Browse files
committed
defensive outputFormat check in capabilities.py
1 parent 03c531f commit c86bfc7

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

hapiclient/capabilities.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,19 @@ def get_format(SERVER, format):
3131

3232
if format != 'csv':
3333
caps = capabilities(SERVER)
34-
sformats = caps["outputFormats"] # Server formats
35-
if format not in sformats:
34+
if "outputFormats" not in caps:
35+
return 'csv'
36+
37+
formats = caps.get("outputFormats", []) # Server formats
38+
if len(formats) == 0:
39+
return 'csv'
40+
41+
if format not in formats:
3642
msg = 'Requested transport format "%s" not avaiable from %s. Will use "csv". Available options: %s'
37-
warning(msg % (format, SERVER, ', '.join(sformats)))
43+
warning(msg % (format, SERVER, ', '.join(formats)))
3844
format = 'csv'
39-
if 'binary' not in sformats:
45+
46+
if 'binary' not in formats:
4047
format = 'csv'
4148

4249
return format

test/test_hapi_metadata_requests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
'cache': False,
1414
'usecache': False,
1515
'cachedir': '/tmp/hapi-data',
16-
'logging': logger.getEffectiveLevel() >= logging.INFO
16+
'logging': False
1717
}
1818

1919
serverbad = 'http://hapi-server.org/servers/TestData/xhapi'

0 commit comments

Comments
 (0)