Revision 3fb4f740 test/ganeti.hooks_unittest.py
b/test/ganeti.hooks_unittest.py | ||
---|---|---|
75 | 75 |
def testEmpty(self): |
76 | 76 |
"""Test no hooks""" |
77 | 77 |
for phase in (constants.HOOKS_PHASE_PRE, constants.HOOKS_PHASE_POST): |
78 |
self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, {}), []) |
|
78 |
self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, {}), |
|
79 |
(True, [])) |
|
79 | 80 |
|
80 | 81 |
def testSkipNonExec(self): |
81 | 82 |
"""Test skip non-exec file""" |
... | ... | |
85 | 86 |
f.close() |
86 | 87 |
self.torm.append((fname, False)) |
87 | 88 |
self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, {}), |
88 |
[(self._rname(fname), HKR_SKIP, "")])
|
|
89 |
(True, [(self._rname(fname), HKR_SKIP, "")]))
|
|
89 | 90 |
|
90 | 91 |
def testSkipInvalidName(self): |
91 | 92 |
"""Test skip script with invalid name""" |
... | ... | |
97 | 98 |
os.chmod(fname, 0700) |
98 | 99 |
self.torm.append((fname, False)) |
99 | 100 |
self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, {}), |
100 |
[(self._rname(fname), HKR_SKIP, "")])
|
|
101 |
(True, [(self._rname(fname), HKR_SKIP, "")]))
|
|
101 | 102 |
|
102 | 103 |
def testSkipDir(self): |
103 | 104 |
"""Test skip directory""" |
... | ... | |
106 | 107 |
os.mkdir(fname) |
107 | 108 |
self.torm.append((fname, True)) |
108 | 109 |
self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, {}), |
109 |
[(self._rname(fname), HKR_SKIP, "")])
|
|
110 |
(True, [(self._rname(fname), HKR_SKIP, "")]))
|
|
110 | 111 |
|
111 | 112 |
def testSuccess(self): |
112 | 113 |
"""Test success execution""" |
... | ... | |
118 | 119 |
self.torm.append((fname, False)) |
119 | 120 |
os.chmod(fname, 0700) |
120 | 121 |
self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, {}), |
121 |
[(self._rname(fname), HKR_SUCCESS, "")])
|
|
122 |
(True, [(self._rname(fname), HKR_SUCCESS, "")]))
|
|
122 | 123 |
|
123 | 124 |
def testSymlink(self): |
124 | 125 |
"""Test running a symlink""" |
... | ... | |
127 | 128 |
os.symlink("/bin/true", fname) |
128 | 129 |
self.torm.append((fname, False)) |
129 | 130 |
self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, {}), |
130 |
[(self._rname(fname), HKR_SUCCESS, "")])
|
|
131 |
(True, [(self._rname(fname), HKR_SUCCESS, "")]))
|
|
131 | 132 |
|
132 | 133 |
def testFail(self): |
133 | 134 |
"""Test success execution""" |
... | ... | |
139 | 140 |
self.torm.append((fname, False)) |
140 | 141 |
os.chmod(fname, 0700) |
141 | 142 |
self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, {}), |
142 |
[(self._rname(fname), HKR_FAIL, "")])
|
|
143 |
(True, [(self._rname(fname), HKR_FAIL, "")]))
|
|
143 | 144 |
|
144 | 145 |
def testCombined(self): |
145 | 146 |
"""Test success, failure and skip all in one test""" |
... | ... | |
156 | 157 |
self.torm.append((fname, False)) |
157 | 158 |
os.chmod(fname, 0700) |
158 | 159 |
expect.append((self._rname(fname), rs, "")) |
159 |
self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, {}), expect) |
|
160 |
self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, {}), |
|
161 |
(True, expect)) |
|
160 | 162 |
|
161 | 163 |
def testOrdering(self): |
162 | 164 |
for phase in (constants.HOOKS_PHASE_PRE, constants.HOOKS_PHASE_POST): |
... | ... | |
172 | 174 |
self.torm.append((fname, False)) |
173 | 175 |
expect.append((self._rname(fname), HKR_SUCCESS, "")) |
174 | 176 |
expect.sort() |
175 |
self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, {}), expect) |
|
177 |
self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, {}), |
|
178 |
(True, expect)) |
|
176 | 179 |
|
177 | 180 |
def testEnv(self): |
178 | 181 |
"""Test environment execution""" |
... | ... | |
184 | 187 |
env_snt = {"PHASE": phase} |
185 | 188 |
env_exp = "PHASE=%s" % phase |
186 | 189 |
self.failUnlessEqual(self.hr.RunHooks(self.hpath, phase, env_snt), |
187 |
[(self._rname(fname), HKR_SUCCESS, env_exp)]) |
|
190 |
(True, [(self._rname(fname), HKR_SUCCESS, |
|
191 |
env_exp)])) |
|
188 | 192 |
|
189 | 193 |
|
190 | 194 |
class TestHooksMaster(unittest.TestCase): |
... | ... | |
213 | 217 |
@return: script execution failure from all nodes |
214 | 218 |
|
215 | 219 |
""" |
216 |
return dict([(node, rpc.RpcResult([("utest", constants.HKR_FAIL, "err")], |
|
217 |
node=node, call='FakeScriptFail')) for node in node_list]) |
|
220 |
rr = rpc.RpcResult |
|
221 |
return dict([(node, rr((True, [("utest", constants.HKR_FAIL, "err")]), |
|
222 |
node=node, call='FakeScriptFail')) |
|
223 |
for node in node_list]) |
|
218 | 224 |
|
219 | 225 |
@staticmethod |
220 | 226 |
def _call_script_succeed(node_list, hpath, phase, env): |
... | ... | |
224 | 230 |
@return: script execution from all nodes |
225 | 231 |
|
226 | 232 |
""" |
227 |
return dict([(node, rpc.RpcResult([("utest", constants.HKR_SUCCESS, "ok")], |
|
228 |
node=node, call='FakeScriptOk')) for node in node_list]) |
|
233 |
rr = rpc.RpcResult |
|
234 |
return dict([(node, rr(True, [("utest", constants.HKR_SUCCESS, "ok")], |
|
235 |
node=node, call='FakeScriptOk')) |
|
236 |
for node in node_list]) |
|
229 | 237 |
|
230 | 238 |
def setUp(self): |
231 | 239 |
self.op = opcodes.OpCode() |
Also available in: Unified diff