Revision 473ab806 test/py/ganeti.objectutils_unittest.py

b/test/py/ganeti.objectutils_unittest.py
46 46
    slotted = AutoSlotted()
47 47
    self.assertEqual(slotted.__slots__, AutoSlotted.SLOTS)
48 48

  
49

  
50
class TestContainerToDicts(unittest.TestCase):
51
  def testUnknownType(self):
52
    for value in [None, 19410, "xyz"]:
53
      try:
54
        objectutils.ContainerToDicts(value)
55
      except TypeError, err:
56
        self.assertTrue(str(err).startswith("Unknown container type"))
57
      else:
58
        self.fail("Exception was not raised")
59

  
60
  def testEmptyDict(self):
61
    value = {}
62
    self.assertFalse(type(value) in objectutils._SEQUENCE_TYPES)
63
    self.assertEqual(objectutils.ContainerToDicts(value), {})
64

  
65
  def testEmptySequences(self):
66
    for cls in [list, tuple, set, frozenset]:
67
      self.assertEqual(objectutils.ContainerToDicts(cls()), [])
68

  
69

  
70
class _FakeWithFromDict:
71
  def FromDict(self, _):
72
    raise NotImplemented
73

  
74

  
75
class TestContainerFromDicts(unittest.TestCase):
76
  def testUnknownType(self):
77
    for cls in [str, int, bool]:
78
      try:
79
        objectutils.ContainerFromDicts(None, cls, NotImplemented)
80
      except TypeError, err:
81
        self.assertTrue(str(err).startswith("Unknown container type"))
82
      else:
83
        self.fail("Exception was not raised")
84

  
85
      try:
86
        objectutils.ContainerFromDicts(None, cls(), NotImplemented)
87
      except TypeError, err:
88
        self.assertTrue(str(err).endswith("is not a type"))
89
      else:
90
        self.fail("Exception was not raised")
91

  
92
  def testEmptyDict(self):
93
    value = {}
94
    self.assertFalse(type(value) in objectutils._SEQUENCE_TYPES)
95
    self.assertEqual(objectutils.ContainerFromDicts(value, dict,
96
                                                    NotImplemented),
97
                     {})
98

  
99
  def testEmptySequences(self):
100
    for cls in [list, tuple, set, frozenset]:
101
      self.assertEqual(objectutils.ContainerFromDicts([], cls,
102
                                                      _FakeWithFromDict),
103
                       cls())
104

  
105

  
49 106
if __name__ == "__main__":
50 107
  testutils.GanetiTestProgram()

Also available in: Unified diff