Валидатор ConfigObj добавляет раздел из cs в конфиг

У меня проблема с python configobj. Почему "параметр" (именованный параметр) из cs добавляется в config во время config.validate(validator, preserve_errors=True)?

    def test_MissingSectionError(self):
        cfg = '''
[general]
    name = TestInteractionExample 1

[this_is_not_para_meter]
    [[frequency]]
        default_value = 900
        description = Description of parameter1
'''
        cs = '''
[general]
    name = string
[parameter]
    [[__many__]]
        default_value =
        description =
'''
        cfg_io = StringIO(cfg)
        cs_io = StringIO(cs)
        config = self.parser._get_configobj(cfg_io, cs_io, self.script)
        print 'Before validation: {}'.format(config)            
        validator = Validator()
        results = config.validate(validator, preserve_errors=True)
        print 'After validation: {}'.format(config)
        print 'result: {}'.format(results)

 #       self.assertRaises(MissingSectionError, self.parser._validate_config, config, self.script)

печать дает:

Перед проверкой: {u'general': {u'name': u'TestInteractionExample 1'}, u'this_is_not_para_meter': {u'frequency': {u'default_value': u'900', u'description': u'Описание параметра1'}}} После проверки: {u'general ': {u'name': u'TestInteractionExample 1 '}, u'this_is_not_para_meter': {u'frequency ': {u'default_value': u'900 ', u'description': u'Описание параметра1'}}, ' параметр ': {}} результат: True

Странно, что это подтверждает значение true, так как "параметр" отсутствует в конфигурации. Но, опять же, если он добавлен в config в config.validate (validator, preserve_errors = True), он также становится истинным. Может быть, есть какая-то опция, которая копирует отсутствующие значения из cs в config.

0 ответов

Другие вопросы по тегам