Skip to content
Snippets Groups Projects
Unverified Commit d07993c6 authored by David Hoese's avatar David Hoese
Browse files

Add test for data api with row-major order

parent 9f72fbc2
Branches
No related tags found
No related merge requests found
......@@ -195,19 +195,7 @@ def handle_json(frame, symbols, epoch, order='columns', **kwargs):
package['data'] = dict(frame[symbols])
else:
package['symbols'] = symbols
dataList = []
for date in frame:
row = frame[date]
newRow = []
for symbol in symbols:
if row[symbol]:
newRow.append(float(row[symbol]))
else:
newRow.append(row[symbol])
dataList.append(newRow)
package['data'] = dataList
package['data'] = [frame.iloc[i].values[1:] for i in range(frame.shape[0])]
output['results'] = package
return output
......
......@@ -281,7 +281,7 @@ def handle_single_site(fmt):
symbols = request.args.get('symbols')
interval = request.args.get('interval')
sep = request.args.get('sep', ',')
order = request.args.get('order', 'column')
order = request.args.get('order', 'row')
epoch = request.args.get('epoch')
result = modifyData.modify_data(fmt, begin_time,
......
......@@ -44,12 +44,27 @@ class TestDataAPI(unittest.TestCase):
assert b'Data Request Application' in res.data
@mock.patch('metobsapi.modifyData.query')
def test_tower_shorthand_one_symbol_json(self, query_func):
def test_tower_shorthand_one_symbol_json_row(self, query_func):
r = fake_data('1m', {('aoss', 'tower'): ['time', 'air_temp']}, 9)
query_func.return_value = r
# row should be the default
res = self.app.get('/api/data.json?site=aoss&inst=tower&symbols=air_temp&begin=-00:10:00')
res = json.loads(res.data.decode())
self.assertEqual(res['code'], 200)
self.assertEqual(res['num_results'], 9)
self.assertListEqual(res['results']['symbols'], ['aoss.tower.air_temp'])
self.assertEqual(len(res['results']['timestamps']), 9)
self.assertEqual(len(res['results']['data']), 9)
self.assertEqual(len(res['results']['data'][0]), 1)
@mock.patch('metobsapi.modifyData.query')
def test_tower_shorthand_one_symbol_json_column(self, query_func):
r = fake_data('1m', {('aoss', 'tower'): ['time', 'air_temp']}, 9)
query_func.return_value = r
res = self.app.get('/api/data.json?site=aoss&inst=tower&symbols=air_temp&begin=-00:10:00&order=column')
res = json.loads(res.data.decode())
self.assertEqual(res['code'], 200)
self.assertEqual(res['num_results'], 9)
self.assertIn('aoss.tower.air_temp', res['results']['data'])
self.assertEqual(len(res['results']['data']['aoss.tower.air_temp']), 9)
self.assertEqual(len(res['results']['timestamps']), 9)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment