Я пытаюсь реализовать модульные тесты для функции, которая использует импортированные внешние объекты.
Например, helpers.py :
import os
import pylons
def some_func(arg):
...
var1 = os.path.exist(...)
var2 = os.path.getmtime(...)
var3 = pylons.request.environ['HTTP_HOST']
...
Так что, когда я создаю для него модульный тест, я делаю насмешку (в моем случае - minimock)
и заменяя ссылки на pylons.request и os.path:
import helpers
def test_some_func():
helpers.pylons.request = minimock.Mock("pylons.request")
helpers.pylons.request.environ = { 'HTTP_HOST': "localhost" }
helpers.os.path = minimock.Mock(....)
...
some_func(...)
# assert
...
Это не выглядит хорошо для меня.
Есть ли другой лучший способ или стратегия для замены импортированных функций / объектов в Python?