ConfigObj验证器将节从cs添加到config

2024-10-04 03:26:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python configobj有问题。 为什么在配置验证(验证程序,保留错误=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'这个“u is_not_para_meter”:{u'frequency':{u'默认值':u'900',u'description':u'参数说明1'}} 验证后:{u'general':{u'name':u'TestInteractionExample 1'},u'这个“u is_not_para_meter”:{u'frequency':{u'默认值':u'900',u'description':u'参数说明1'}},'参数':{}} 结果:正确

奇怪的是,这验证为true,因为配置中缺少“parameter”。但是如果它被添加到配置中配置验证(validator,preserve_errors=True)那么它也将变为True。也许有一些选项可以将丢失的值从cs复制到config。在


Tags: nameioselfconfigtrueisnotdescription