Revision ff0d18e6 test/ganeti.rapi.baserlib_unittest.py
b/test/ganeti.rapi.baserlib_unittest.py | ||
---|---|---|
33 | 33 |
|
34 | 34 |
|
35 | 35 |
class TestFillOpcode(unittest.TestCase): |
36 |
class _TestOp(opcodes.OpCode): |
|
37 |
OP_ID = "RAPI_TEST_OP" |
|
36 |
class OpTest(opcodes.OpCode): |
|
38 | 37 |
OP_PARAMS = [ |
39 | 38 |
("test", None, ht.TMaybeString), |
40 | 39 |
] |
41 | 40 |
|
42 | 41 |
def test(self): |
43 | 42 |
for static in [None, {}]: |
44 |
op = baserlib.FillOpcode(self._TestOp, {}, static)
|
|
45 |
self.assertTrue(isinstance(op, self._TestOp))
|
|
43 |
op = baserlib.FillOpcode(self.OpTest, {}, static)
|
|
44 |
self.assertTrue(isinstance(op, self.OpTest))
|
|
46 | 45 |
self.assertFalse(hasattr(op, "test")) |
47 | 46 |
|
48 | 47 |
def testStatic(self): |
49 |
op = baserlib.FillOpcode(self._TestOp, {}, {"test": "abc"})
|
|
50 |
self.assertTrue(isinstance(op, self._TestOp))
|
|
48 |
op = baserlib.FillOpcode(self.OpTest, {}, {"test": "abc"})
|
|
49 |
self.assertTrue(isinstance(op, self.OpTest))
|
|
51 | 50 |
self.assertEqual(op.test, "abc") |
52 | 51 |
|
53 | 52 |
# Overwrite static parameter |
54 | 53 |
self.assertRaises(http.HttpBadRequest, baserlib.FillOpcode, |
55 |
self._TestOp, {"test": 123}, {"test": "abc"})
|
|
54 |
self.OpTest, {"test": 123}, {"test": "abc"})
|
|
56 | 55 |
|
57 | 56 |
def testType(self): |
58 | 57 |
self.assertRaises(http.HttpBadRequest, baserlib.FillOpcode, |
59 |
self._TestOp, {"test": [1, 2, 3]}, {})
|
|
58 |
self.OpTest, {"test": [1, 2, 3]}, {})
|
|
60 | 59 |
|
61 | 60 |
def testStaticType(self): |
62 | 61 |
self.assertRaises(http.HttpBadRequest, baserlib.FillOpcode, |
63 |
self._TestOp, {}, {"test": [1, 2, 3]})
|
|
62 |
self.OpTest, {}, {"test": [1, 2, 3]})
|
|
64 | 63 |
|
65 | 64 |
def testUnicode(self): |
66 |
op = baserlib.FillOpcode(self._TestOp, {u"test": "abc"}, {})
|
|
67 |
self.assertTrue(isinstance(op, self._TestOp))
|
|
65 |
op = baserlib.FillOpcode(self.OpTest, {u"test": "abc"}, {})
|
|
66 |
self.assertTrue(isinstance(op, self.OpTest))
|
|
68 | 67 |
self.assertEqual(op.test, "abc") |
69 | 68 |
|
70 |
op = baserlib.FillOpcode(self._TestOp, {}, {u"test": "abc"})
|
|
71 |
self.assertTrue(isinstance(op, self._TestOp))
|
|
69 |
op = baserlib.FillOpcode(self.OpTest, {}, {u"test": "abc"})
|
|
70 |
self.assertTrue(isinstance(op, self.OpTest))
|
|
72 | 71 |
self.assertEqual(op.test, "abc") |
73 | 72 |
|
74 | 73 |
def testUnknownParameter(self): |
75 | 74 |
self.assertRaises(http.HttpBadRequest, baserlib.FillOpcode, |
76 |
self._TestOp, {"othervalue": 123}, None)
|
|
75 |
self.OpTest, {"othervalue": 123}, None)
|
|
77 | 76 |
|
78 | 77 |
def testInvalidBody(self): |
79 | 78 |
self.assertRaises(http.HttpBadRequest, baserlib.FillOpcode, |
80 |
self._TestOp, "", None)
|
|
79 |
self.OpTest, "", None)
|
|
81 | 80 |
self.assertRaises(http.HttpBadRequest, baserlib.FillOpcode, |
82 |
self._TestOp, range(10), None)
|
|
81 |
self.OpTest, range(10), None)
|
|
83 | 82 |
|
84 | 83 |
|
85 | 84 |
if __name__ == "__main__": |
Also available in: Unified diff