Skip to content

Commit 752fe5e

Browse files
committed
add unit tests
Signed-off-by: hwassman <[email protected]>
1 parent 39a0ad5 commit 752fe5e

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed

source/opentsdb.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,8 @@ def to_dict(self, dps: T = None):
461461
# first convert object to dict and then fetch the dict of dps to it
462462
if dps:
463463
res['dps'] = dps
464+
elif isinstance(dps, list):
465+
res['dps'] = []
464466
return res
465467

466468

tests/test_opentsdb.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,34 @@ def query_last_setup():
7676
'index': 0}}
7777

7878

79+
def query_arrays_setup():
80+
global key1, col1, labels, filtersMap, dps1, ts1, ts2, metricTS, metricTS1, data, data1, jreq
81+
82+
key1 = Key._from_string('scale-11|CPU|cpu_system', '')
83+
col1 = ColumnInfo(name='cpu_user', semType=1, keys=(key1,), column=0)
84+
filtersMap = [{'node': 'scale-11'}, {'node': 'scale-12'}, {'node': 'scale-13'}, {'node': 'scale-14'}, {'node': 'scale-15'}, {'node': 'scale-16'}]
85+
labels = ['node']
86+
dps1 = [[1739214990, 3], [1739215050, 2], [1739215110, 3], [1739215170, 4], [1739215230, 3]]
87+
dps2 = []
88+
ts1 = TimeSeries(col1, dps1, filtersMap, labels)
89+
ts2 = TimeSeries(col1, dps2, filtersMap, labels)
90+
metricTS = MetricTimeSeries('cpu_system', '')
91+
metricTS.timeseries = [ts1]
92+
data = {'cpu_user': metricTS}
93+
metricTS1 = MetricTimeSeries('cpu_system', '')
94+
metricTS1.timeseries = [ts2]
95+
data1 = {'cpu_user': metricTS1}
96+
jreq = {'start': 1739214930519, 'end': 1739215230519, 'arrays': True,
97+
'inputQuery': {'aggregator': 'noop', 'downsample': '1m-avg',
98+
'filters': [
99+
{'filter': 'scale-11', 'groupBy': False,
100+
'tagk': 'node', 'type': 'pm_filter'
101+
}],
102+
'metric': 'cpu_system', 'index': 0
103+
}
104+
}
105+
106+
79107
@with_setup(my_setup)
80108
def test_case01():
81109
ts = TimeSeries(col3, dps2, filtersMap, labels)
@@ -110,6 +138,7 @@ def test_case03():
110138
assert 'gpfs_fs_name' in resp[0].get('tags')
111139
assert 'node' in resp[0].get('tags')
112140
assert 'gpfs_cluster_name' in resp[0].get('tags')
141+
assert isinstance(resp[0].get('dps'), dict)
113142

114143

115144
@with_setup(my_setup)
@@ -139,3 +168,30 @@ def test_case05():
139168
assert resp[0].get('metric') == "cpu_user"
140169
assert 'gpfs_fs_name' not in resp[0].get('tags')
141170
assert 'node' in resp[0].get('tags')
171+
172+
173+
@with_setup(query_arrays_setup)
174+
def test_case06():
175+
with mock.patch('source.metadata.MetadataHandler') as md:
176+
md_instance = md.return_value
177+
logger = logging.getLogger(__name__)
178+
opentsdb = OpenTsdbApi(logger, md_instance, '9999')
179+
resp = opentsdb.format_response(data, jreq)
180+
assert set(resp[0].keys()) == set(['metric', 'dps', 'tags', 'aggregatedTags'])
181+
assert resp[0].get('metric') == "cpu_system"
182+
assert 'node' in resp[0].get('tags')
183+
assert isinstance(resp[0].get('dps'), list)
184+
185+
186+
@with_setup(query_arrays_setup)
187+
def test_case07():
188+
with mock.patch('source.metadata.MetadataHandler') as md:
189+
md_instance = md.return_value
190+
logger = logging.getLogger(__name__)
191+
opentsdb = OpenTsdbApi(logger, md_instance, '9999')
192+
resp = opentsdb.format_response(data1, jreq)
193+
assert set(resp[0].keys()) == set(['metric', 'dps', 'tags', 'aggregatedTags'])
194+
assert resp[0].get('metric') == "cpu_system"
195+
assert 'node' in resp[0].get('tags')
196+
assert isinstance(resp[0].get('dps'), list)
197+
assert len(resp[0].get('dps')) == 0

0 commit comments

Comments
 (0)