Revision d357f531 test/ganeti.serializer_unittest.py

b/test/ganeti.serializer_unittest.py
27 27
from ganeti import serializer
28 28
from ganeti import errors
29 29

  
30
import testutils
30 31

  
31
class SimplejsonMock(object):
32
  def dumps(self, data, indent=None):
33
    return repr(data)
34 32

  
35
  def loads(self, data):
36
    return eval(data)
37

  
38

  
39
class TestSerializer(unittest.TestCase):
33
class TestSerializer(testutils.GanetiTestCase):
40 34
  """Serializer tests"""
41 35

  
42 36
  _TESTDATA = [
......
44 38
    255,
45 39
    [1, 2, 3],
46 40
    (1, 2, 3),
47
    { 1: 2, "foo": "bar", },
41
    { "1": 2, "foo": "bar", },
42
    ["abc", 1, 2, 3, 999,
43
      {
44
        "a1": ("Hello", "World"),
45
        "a2": "This is only a test",
46
        "a3": None,
47
        },
48
      {
49
        "foo": "bar",
50
        },
51
      ]
48 52
    ]
49 53

  
50
  def setUp(self):
51
    self._orig_simplejson = serializer.simplejson
52
    serializer.simplejson = SimplejsonMock()
53

  
54
  def tearDown(self):
55
    serializer.simplejson = self._orig_simplejson
54
  def _TestSerializer(self, dump_fn, load_fn):
55
    for data in self._TESTDATA:
56
      self.failUnless(dump_fn(data).endswith("\n"))
57
      self.assertEqualValues(load_fn(dump_fn(data)), data)
56 58

  
57 59
  def testGeneric(self):
58 60
    return self._TestSerializer(serializer.Dump, serializer.Load)
......
65 67
    DumpSigned = serializer.DumpSigned
66 68

  
67 69
    for data in self._TESTDATA:
68
      self.assertEqual(LoadSigned(DumpSigned(data, "mykey"), "mykey"),
69
                       (data, ''))
70
      self.assertEqual(LoadSigned(
71
                         DumpSigned(data, "myprivatekey", "mysalt"),
72
                         "myprivatekey"), (data, "mysalt"))
70
      self.assertEqualValues(LoadSigned(DumpSigned(data, "mykey"), "mykey"),
71
                             (data, ''))
72
      self.assertEqualValues(LoadSigned(DumpSigned(data, "myprivatekey",
73
                                                   "mysalt"),
74
                                        "myprivatekey"),
75
                             (data, "mysalt"))
76

  
73 77
    self.assertRaises(errors.SignatureError, serializer.LoadSigned,
74 78
                      serializer.DumpSigned("test", "myprivatekey"),
75 79
                      "myotherkey")
76 80

  
77
  def _TestSerializer(self, dump_fn, load_fn):
78
    for data in self._TESTDATA:
79
      self.failUnless(dump_fn(data).endswith("\n"))
80
      self.failUnlessEqual(load_fn(dump_fn(data)), data)
81

  
82 81

  
83 82
if __name__ == '__main__':
84 83
  unittest.main()

Also available in: Unified diff