def test_DictValidator(self):
     self.doValidationTest(validation.DictValidator(
         a=validation.BooleanValidator(),
         b=validation.StringValidator(),
         optionalNames=['b']),
                           good=[
                               {
                                   'a': True
                               },
                               {
                                   'a': True,
                                   'b': u'xyz'
                               },
                           ],
                           bad=[
                               None,
                               1,
                               "hi",
                               {},
                               {
                                   'a': 1
                               },
                               {
                                   'a': 1,
                                   'b': u'xyz'
                               },
                               {
                                   'a': True,
                                   'b': 999
                               },
                               {
                                   'a': True,
                                   'b': u'xyz',
                                   'c': 'extra'
                               },
                           ])
 def test_DictValidator_names(self):
     v = validation.DictValidator(a=validation.BooleanValidator())
     self.assertEqual(list(v.validate('v', {'a': 1})),
                      ["v['a'] (1) is not a boolean"])