Как сказать Configparser открыть файл конфигурации, который имеет то же имя, что и модуль, открывая его? - PullRequest
0 голосов
/ 29 ноября 2011

Я пишу тестовый фреймворк с использованием юнит-теста Python.У меня есть отдельные модули для отдельных частей тестируемого приложения (часть1 - часть1.py, часть2 - часть2.py и т. Д.).Я хочу создать вспомогательный модуль, который будет читать параметры конфигурации для каждого из модулей, причем имя файла конфигурации совпадает с именем модуля (part1.py - part1.conf, part2.py - part2.conf).Файлы конфигурации будут находиться в той же папке, что и модули.Когда я запускаю part1.py, я должен сказать тестам, что их конфигурация находится в part1.conf.Как я могу это сделать?Этот вспомогательный модуль не обязательно будет находиться в той же папке, что и тестовые модули.Я не хочу использовать нос, потому что хочу иметь как можно меньше внешних зависимостей.

1 Ответ

1 голос
/ 29 ноября 2011
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__))
...