如何告诉Configparser打开与模块名称相同的配置文件,打开它?

时间:2011-11-29 08:02:13

标签: python unit-testing configparser

我正在使用Python的unittest编写测试框架。我有单独的模块用于测试应用程序的不同部分(第1部分 - part1.py,第2部分 - part2.py等)。我想创建一个帮助器模块,它将读取每个模块的配置设置,配置文件名与模块名称相同(part1.py - part1.conf,part2.py - part2.conf)。配置文件将与模块位于同一文件夹中。 当我运行part1.py时,我需要告诉测试它们的配置是在part1.conf中。我怎么做? 此帮助程序模块不一定与测试模块位于同一文件夹中。 我不想使用鼻子,因为我希望尽可能少地使用外部依赖。

1 个答案:

答案 0 :(得分:1)

def module_config(mod):
    '''Loads the config residing next to the module.'''
    import configparser, os.path
    cp = configparser.ConfigParser()
    cp.read_file(open(os.path.splitext(mod.__file__)[0] + '.conf'))
    return cp

# load config for some module
import some_module
module_config(some_module)

# load config for current module
module_config(sys.modules(__name__))