Revision 0bff0b12 test/ganeti.cmdlib_unittest.py
b/test/ganeti.cmdlib_unittest.py | ||
---|---|---|
69 | 69 |
for op in sorted(mcpu.Processor.DISPATCH_TABLE): |
70 | 70 |
lu = mcpu.Processor.DISPATCH_TABLE[op] |
71 | 71 |
lu_name = lu.__name__ |
72 |
self.failIf(hasattr(lu, "_OP_REQP"), "LU '%s' has old-style _OP_REQP" % |
|
73 |
lu_name) |
|
74 |
self.failIf(hasattr(lu, "_OP_DEFS"), "LU '%s' has old-style _OP_DEFS" % |
|
75 |
lu_name) |
|
76 |
# this needs to remain a list! |
|
77 |
defined_params = [v[0] for v in lu._OP_PARAMS] |
|
78 |
for row in lu._OP_PARAMS: |
|
79 |
# this relies on there being at least one element |
|
80 |
param_name = row[0] |
|
81 |
self.failIf(len(row) != 3, "LU '%s' parameter %s has invalid length" % |
|
82 |
(lu_name, param_name)) |
|
83 |
self.failIf(defined_params.count(param_name) > 1, "LU '%s' parameter" |
|
84 |
" '%s' is defined multiple times" % (lu_name, param_name)) |
|
85 |
|
|
86 |
def testParamsDefined(self): |
|
87 |
for op in sorted(mcpu.Processor.DISPATCH_TABLE): |
|
88 |
lu = mcpu.Processor.DISPATCH_TABLE[op] |
|
89 |
lu_name = lu.__name__ |
|
90 |
# TODO: this doesn't deal with recursive slots definitions |
|
91 |
all_params = set(op.__slots__) |
|
92 |
defined_params = set(v[0] for v in lu._OP_PARAMS) |
|
93 |
missing = all_params.difference(defined_params) |
|
94 |
self.failIf(missing, "Undeclared parameter types for LU '%s': %s" % |
|
95 |
(lu_name, utils.CommaJoin(missing))) |
|
96 |
extra = defined_params.difference(all_params) |
|
97 |
self.failIf(extra, "Extra parameter types for LU '%s': %s" % |
|
98 |
(lu_name, utils.CommaJoin(extra))) |
|
72 |
self.failIf(hasattr(lu, "_OP_REQP"), |
|
73 |
msg=("LU '%s' has old-style _OP_REQP" % lu_name)) |
|
74 |
self.failIf(hasattr(lu, "_OP_DEFS"), |
|
75 |
msg=("LU '%s' has old-style _OP_DEFS" % lu_name)) |
|
76 |
self.failIf(hasattr(lu, "_OP_PARAMS"), |
|
77 |
msg=("LU '%s' has old-style _OP_PARAMS" % lu_name)) |
|
99 | 78 |
|
100 | 79 |
|
101 | 80 |
class TestIAllocatorChecks(testutils.GanetiTestCase): |
Also available in: Unified diff