我有一些功能只能在特定的物理位置运行,并且主机名已知。这是在调用socket.gethostname()。
的cython模块中生成的是否有使用socket.gethostname()的测试与运行测试的主机有不同的数据?
答案 0 :(得分:1)
您可以使用mock
module:
import mock
import socket
with mock.patch("socket.gethostname", return_value="completely fake"):
print socket.gethostname()
Thsi在completely fake
打印stdout
。
mock
与Python 3.3及更高版本(作为unittest.mock
)捆绑在一起,可用作Python 2.6.x及更高版本的后端。上面的代码在Python 2.7.x中按原样运行。