Revision 5d630c22 test/ganeti.serializer_unittest.py
b/test/ganeti.serializer_unittest.py | ||
---|---|---|
26 | 26 |
|
27 | 27 |
from ganeti import serializer |
28 | 28 |
from ganeti import errors |
29 |
from ganeti import ht |
|
29 | 30 |
|
30 | 31 |
import testutils |
31 | 32 |
|
... | ... | |
106 | 107 |
serializer.DumpJson(tdata), "mykey") |
107 | 108 |
|
108 | 109 |
|
110 |
class TestLoadAndVerifyJson(unittest.TestCase): |
|
111 |
def testNoJson(self): |
|
112 |
self.assertRaises(errors.ParseError, serializer.LoadAndVerifyJson, |
|
113 |
"", NotImplemented) |
|
114 |
self.assertRaises(errors.ParseError, serializer.LoadAndVerifyJson, |
|
115 |
"}", NotImplemented) |
|
116 |
|
|
117 |
def testVerificationFails(self): |
|
118 |
self.assertRaises(errors.ParseError, serializer.LoadAndVerifyJson, |
|
119 |
"{}", lambda _: False) |
|
120 |
|
|
121 |
verify_fn = ht.TListOf(ht.TNonEmptyString) |
|
122 |
try: |
|
123 |
serializer.LoadAndVerifyJson("{}", verify_fn) |
|
124 |
except errors.ParseError, err: |
|
125 |
self.assertTrue(str(err).endswith(str(verify_fn))) |
|
126 |
else: |
|
127 |
self.fail("Exception not raised") |
|
128 |
|
|
129 |
def testSuccess(self): |
|
130 |
self.assertEqual(serializer.LoadAndVerifyJson("{}", ht.TAny), {}) |
|
131 |
self.assertEqual(serializer.LoadAndVerifyJson("\"Foo\"", ht.TAny), "Foo") |
|
132 |
|
|
133 |
|
|
109 | 134 |
if __name__ == "__main__": |
110 | 135 |
testutils.GanetiTestProgram() |
Also available in: Unified diff