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

Add basic data api unit test

parent 931cb053
No related branches found
No related tags found
No related merge requests found
import json
import unittest
from unittest import mock
import metobsapi
def fake_data(interval, symbols, num_vals):
import random
from datetime import datetime, timedelta
from influxdb.resultset import ResultSet
now = datetime(2017, 3, 5, 19, 0, 0)
t_format = "%Y-%m-%dT%H:%M:%SZ"
measurement_name = "metobs_" + interval
series = []
for (site, inst), columns in symbols.items():
tags = {'site': site, 'inst': inst}
vals = []
for i in range(num_vals):
vals.append(
[(now + timedelta(minutes=i)).strftime(t_format)] + \
[random.random()] * (len(columns) - 1)
)
s = {
'name': measurement_name,
'columns': columns,
'tags': tags,
'values': vals,
}
series.append(s)
ret = {
'series': series,
'statement_id': 0,
}
return ResultSet(ret)
class TestDataAPI(unittest.TestCase):
def setUp(self):
metobsapi.app.config['TESTING'] = True
self.app = metobsapi.app.test_client()
def test_doc(self):
res = self.app.get('/api/data')
assert b'Data Request Application' in res.data
@mock.patch('metobsapi.modifyData.query')
def test_tower_shorthand_one_symbol_json(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')
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']['timestamps']), 9)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment