-
Notifications
You must be signed in to change notification settings - Fork 0
/
yacc_test.py
36 lines (27 loc) · 1.36 KB
/
yacc_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import unittest
from promql_ast import recur_add_label
from yacc import parser
class MyTestCase(unittest.TestCase):
def test_a(self):
root = parser.parse('cpu')
recur_add_label(root, 'userId', '"3"')
return self.assertEqual(str(root), 'cpu{userId="3"}')
def test_b(self):
root = parser.parse('cpu{cluster="C-123"}[5m]')
recur_add_label(root, 'userId', '"3"')
return self.assertEqual(str(root), 'cpu{cluster="C-123",userId="3"}[5m]')
def test_c(self):
root = parser.parse('count(instance_cpu_time_ns) by (app)')
recur_add_label(root, 'userId', '"3"')
return self.assertEqual(str(root), 'count(instance_cpu_time_ns{userId="3"})by(app)')
def test_d(self):
root = parser.parse('100 - avg(irate(node_cpu_seconds_total{jmode="idle"}[5m])) by (instance) * 100')
recur_add_label(root, 'userId', '"3"')
return self.assertEqual(str(root),
'100-avg(irate(node_cpu_seconds_total{jmode="idle",userId="3"}[5m]))by(instance)*100')
def test_e(self):
root = parser.parse('topk(3, sum(rate(instance_cpu_time_ns[5m])) by (app, proc))')
recur_add_label(root, 'userId', '"3"')
return self.assertEqual(str(root), 'topk(3,sum(rate(instance_cpu_time_ns{userId="3"}[5m]))by(app,proc))')
if __name__ == '__main__':
unittest.main()