У меня есть следующий my_func.py с функцией create_config.
* my_func.py
from fabric.state import env
def create_config(node_name):
config = {
"log_level": "INFO",
"addr1": "127.0.0.1",
}
config["addr2"] = env.host
return config
Я попробовал следующий подход к макету переменной env.host, где env - это импорт из fabric.state.
* test.py
import unittest
import my_func
import mock
class MyTestCase(unittest.TestCase):
def setUp(self):
self.master_config = {
"log_level": "INFO",
"addr2": "0.0.0.0",
"addr1": "127.0.0.1",
}
@mock.patch('env.host')
def test_create_consul_config(self, mock_host):
mock_host.return_value = "0.0.0.0"
result = my_func.create_config('master')
self.assertDictEqual(self.master_config, result)
if __name__ == '__main__':
unittest.main()
Я получаю ошибку импорта с 'env'. Как лучше всего смоделировать переменную внутри функции с помощью python mock.
ImportError: No module named env