4
4
from unittest import mock
5
5
from source .bridgeLogger import configureLogging
6
6
from source .queryHandler .Topo import Topo
7
- from nose2 .tools .decorators import with_setup
8
7
from source .collector import QueryPolicy , SensorCollector
8
+ from nose2 .tools .such import helper as assert_helper
9
+ from nose2 .tools .decorators import with_setup
10
+
9
11
10
12
11
13
def my_setup ():
12
- global path , topo , logger , prometheus_attrs , pfilters , pquery_filters
14
+ global path , topo , logger , prometheus_attrs , pfilters , pquery_filters , wrong_pfilters
13
15
path = os .getcwd ()
14
16
topoStrFile = os .path .join (path , "tests" , "test_data" , 'topoStr.json' )
15
17
with open (topoStrFile ) as f :
@@ -18,8 +20,9 @@ def my_setup():
18
20
logger = configureLogging (path , None )
19
21
prometheus_attrs = {'sensor' : 'GPFSFilesystem' , 'period' : 300 ,
20
22
'nsamples' : 300 , 'rawData' : True }
21
- pfilters = {'node' : 'scale-16' , 'gpfs_filesystem_name ' : 'afmCacheFS' }
23
+ pfilters = {'node' : 'scale-16' , 'gpfs_fs_name ' : 'afmCacheFS' }
22
24
pquery_filters = [f"{ k } ={ v } " for k , v in pfilters .items ()]
25
+ wrong_pfilters = {'node' : 'scale-16' , 'gpfs_filesystem_name' : 'afmCacheFS' }
23
26
24
27
25
28
@with_setup (my_setup )
@@ -128,7 +131,42 @@ def test_case05(col_md, sts_md, md):
128
131
collector = SensorCollector (sensor , period , logger , request )
129
132
collector .md = md_instance
130
133
collector .labels = collector ._get_sensor_labels ()
134
+ collector .filtersMap = collector ._get_all_filters ()
135
+ assert collector .sensor == sensor
136
+ assert collector .period == period
137
+ assert collector .request == request
138
+ assert collector .labels == topo .getSensorLabels (sensor )
139
+ assert len (collector .filtersMap ) > 0
140
+ assert all (i in collector .labels for i in pfilters .keys ())
141
+
142
+
143
+ @with_setup (my_setup )
144
+ @mock .patch ('source.collector.QueryPolicy.md' )
145
+ @mock .patch ('source.collector.SensorTimeSeries.md' )
146
+ @mock .patch ('source.collector.SensorCollector.md' )
147
+ def test_case06 (col_md , sts_md , md ):
148
+ sensor = prometheus_attrs .get ('sensor' )
149
+ period = prometheus_attrs .get ('period' )
150
+ logger = logging .getLogger (__name__ )
151
+ prometheus_attrs .update ({'filters' : wrong_pfilters })
152
+ prometheus_attrs .update ({'nsamples' : 1 , 'rawData' : False })
153
+
154
+ md_instance = md .return_value
155
+ md_instance .includeDiskData .return_value = False
156
+ md_instance .logger .return_value = logger
157
+ md_instance .metaData = topo
158
+ # md_instance1 = sts_md.return_value
159
+ # md_instance2 = col_md.return_value
160
+ request = QueryPolicy (** prometheus_attrs )
161
+ collector = SensorCollector (sensor , period , logger , request )
162
+ collector .md = md_instance
163
+ collector .labels = collector ._get_sensor_labels ()
164
+ collector .filtersMap = collector ._get_all_filters ()
131
165
assert collector .sensor == sensor
132
166
assert collector .period == period
133
167
assert collector .request == request
134
168
assert collector .labels == topo .getSensorLabels (sensor )
169
+ assert len (collector .filtersMap ) > 0
170
+ assert not all (i in collector .labels for i in wrong_pfilters .keys ())
171
+ with assert_helper .assertRaises (Exception ):
172
+ assert collector .validate_query_filters ()
0 commit comments