Coverage for tests/routers/test_monitor_router.py: 100%
149 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-25 05:47 +0000
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-25 05:47 +0000
1import json
2import pytest
3from zenossapi.apiclient import ZenossAPIClientError
4from zenossapi.routers.monitor import MonitorRouter, ZenossHub, ZenossCollector
5import monitor_resp
8pytest_plugins = "pytest-responses"
9url = 'https://zenoss/zport/dmd'
10headers = dict(
11 ContentType='application/json'
12)
13resp_body_template = dict(
14 result=dict(
15 success=True,
16 data=[],
17 )
18)
21def request_callback(request):
22 rdata = json.loads(request.body)
23 resp_headers = dict(ContentType='application/json')
25 def getTree(rdata):
26 return monitor_resp.tree
28 def getInfo(rdata):
29 if rdata['id'] == "newcollector":
30 return monitor_resp.newcollector
31 return monitor_resp.testcollector
33 def getCollector(rdata):
34 return monitor_resp.params
36 def addCollector(rdata):
37 return monitor_resp.add
39 method = locals()[rdata['method']]
40 resp_body = method(rdata['data'][0])
42 return (200, resp_headers, json.dumps(resp_body))
45def responses_callback(responses):
46 responses.add_callback(
47 responses.POST,
48 '{0}/monitor_router'.format(url),
49 callback=request_callback,
50 content_type='application/json',
51 )
54class TestMonitorRouter(object):
56 def test_monitor_router_init(self):
57 mr = MonitorRouter(url, headers, False)
58 assert mr.id is None
60 def test_monitor_router_tree(self, responses):
61 responses_callback(responses)
63 mr = MonitorRouter(url, headers, False)
64 resp = mr.tree()
65 assert len(resp) == 2
66 assert len(resp[0]['children']) == 1
67 assert resp[0]['name'] == "localhost"
68 assert resp[1]['name'] == "testhub"
70 def test_monitor_router_list_hubs(self, responses):
71 responses_callback(responses)
73 mr = MonitorRouter(url, headers, False)
74 resp = mr.list_hubs()
75 assert len(resp) == 2
76 assert resp[0]['name'] == "localhost"
77 assert resp[1]['name'] == "testhub"
78 assert resp[0]['uid'] == "Monitors/Hub/localhost"
79 assert resp[1]['uid'] == "Monitors/Hub/testhub"
81 def test_monitor_router_list_collectors(self, responses):
82 responses_callback(responses)
84 mr = MonitorRouter(url, headers, False)
85 resp = mr.list_collectors()
86 assert len(resp) == 2
87 assert resp[0]['name'] == "localhost"
88 assert resp[0]['devcount'] == 0
89 assert resp[0]['hub'] == "localhost"
90 assert resp[0]['uid'] == "Monitors/Performance/localhost"
91 assert resp[1]['name'] == "testcollector"
92 assert resp[1]['devcount'] == 179
93 assert resp[1]['hub'] == "testhub"
94 assert resp[1]['uid'] == "Monitors/Performance/testcollector"
96 def test_monitor_router_get_hubs(self, responses):
97 responses_callback(responses)
99 mr = MonitorRouter(url, headers, False)
100 resp = mr.get_hubs()
101 assert len(resp) == 2
102 assert isinstance(resp[0], ZenossHub)
103 assert isinstance(resp[1], ZenossHub)
105 def test_monitor_router_get_hub(self, responses):
106 responses_callback(responses)
108 mr = MonitorRouter(url, headers, False)
109 resp = mr.get_hub('testhub')
110 assert isinstance(resp, ZenossHub)
111 assert resp.name == "testhub"
112 assert resp.devcount == 0
113 assert len(resp.collectors) == 1
115 def test_monitor_router_get_bad_hub(self, responses):
116 responses_callback(responses)
118 mr = MonitorRouter(url, headers, False)
119 resp = mr.get_hub('badhub')
120 assert resp is None
122 def test_monitor_router_zenosshub_get_collectors(self, responses):
123 responses_callback(responses)
125 mr = MonitorRouter(url, headers, False)
126 zh = mr.get_hub('testhub')
127 resp = zh.get_collectors()
128 assert len(resp) == 1
129 assert isinstance(resp[0], ZenossCollector)
130 assert resp[0].name == "testcollector"
132 def test_monitor_router_zenosshub_get_collector(self, responses):
133 responses_callback(responses)
135 mr = MonitorRouter(url, headers, False)
136 zh = mr.get_hub('testhub')
137 resp = zh.get_collector('testcollector')
138 assert isinstance(resp, ZenossCollector)
139 assert resp.name == "testcollector"
140 assert resp.devcount == 179
141 assert resp.text == "testcollector"
142 assert resp.path == "/zport/dmd/Monitors/Performance/testcollector"
143 assert resp.id == ".zport.dmd.Monitors.Performance.testcollector"
144 assert resp.configCycleInterval == 360
145 assert resp.pingCycleInterval == 60
146 assert resp.discoveryNetworks == ""
147 assert resp.description == ""
148 assert resp.modelerCycleInterval == 720
149 assert resp.processCycleInterval == 180
150 assert resp.meta_type == "PerformanceConf"
151 assert resp.wmiqueryTimeout == 100
152 assert resp.statusCycleInterval == 60
153 assert resp.eventlogCycleInterval == 60
154 assert resp.wmibatchSize == 10
155 assert resp.pingTimeOut == 1.5
156 assert resp.winCycleInterval == 60
157 assert resp.pingTries == 2
158 assert resp.inspector_type == "PerformanceConf"
159 assert resp.zenProcessParallelJobs == 10
161 def test_monitor_router_zenosshub_get_bad_collector(self, responses):
162 responses_callback(responses)
164 mr = MonitorRouter(url, headers, False)
165 zh = mr.get_hub('testhub')
166 resp = zh.get_collector('badcollector')
167 assert resp is None
169 def test_monitor_router_zenosshub_add_collector(self, responses):
170 responses_callback(responses)
172 mr = MonitorRouter(url, headers, False)
173 zh = mr.get_hub('testhub')
174 resp = zh.add_collector('newcollector', source='testcollector', pool='TEST')
175 assert isinstance(resp, ZenossCollector)
176 assert resp.name == "newcollector"
177 assert resp.devcount == 0
178 assert resp.text == "newcollector"
179 assert resp.path == "/zport/dmd/Monitors/Performance/newcollector"
180 assert resp.id == ".zport.dmd.Monitors.Performance.newcollector"
181 assert resp.configCycleInterval == 360
182 assert resp.pingCycleInterval == 60
183 assert resp.discoveryNetworks == ""
184 assert resp.description == ""
185 assert resp.modelerCycleInterval == 720
186 assert resp.processCycleInterval == 180
187 assert resp.meta_type == "PerformanceConf"
188 assert resp.wmiqueryTimeout == 100
189 assert resp.statusCycleInterval == 60
190 assert resp.eventlogCycleInterval == 60
191 assert resp.wmibatchSize == 10
192 assert resp.pingTimeOut == 1.5
193 assert resp.winCycleInterval == 60
194 assert resp.pingTries == 2
195 assert resp.inspector_type == "PerformanceConf"
196 assert resp.zenProcessParallelJobs == 10