Я пишу несколько юнит-тестов для кода, написанного кем-то еще здесь, в офисе. Python не мой самый сильный язык. В то время как я успешно справлялся с базовыми юнит-тестами, насмешка над python бросает меня за петлю.
Что мне нужно сделать, так это переопределить вызов ConfigObj и внедрить мою собственную фиктивную конфигурацию / приспособление в любой вызов ConfigObj.
settings.py
from configobj import ConfigObj
config = ConfigObj('/etc/myapp/config')
utils.py
from settings import config
"""lots of stuff methods using various config values."""
Что я хотел бы сделать, так это в моих юнит-тестах для utils.py ввести себя для ЛЮБОГО вызова ConfigObj или самого settings.py.
Многие из насмешливых библиотек ожидают, что я буду издеваться над моими собственными классами, но в случае этого приложения у него нет явных классов.
Можно ли это сделать или ограничения пространства имен python слишком строги, чтобы я не мог вмешиваться в то, что импортирует сам импортируемый модуль?
Примечание: запуск 2.7, поэтому я не могу выполнить ни одного трюка, о котором я читал в 2.5.