我正在尝试模拟 os.environ
但出现此错误。
monkeypatch.setattr(os, 'environ', mock_env)
E TypeError: unbound method setattr() must be called with monkeypatch instance as first argument (got module instance instead)
这是我的代码。
def test_feed(self):
self.upload_file()
def mock_env():
return get_config()
monkeypatch.setattr(os, 'environ', mock_env)
response = self.app.get('/feed')
self.assertEquals('<xml></xml>', response.data)
这是我使用 Flask 测试的方法
@app.route("/feed")
def feed(env=os.environ):
mrss_feed = FeedBurner(env=env).get_feed()
response = make_response(mrss_feed)
response.headers["Content-Type"] = "application/xml"
return response
最佳答案
我相信你只是忘了将 monkeypatch
夹具作为参数传递给你的测试函数:
def test_feed(self, monkeypatch):
...
关于python - 如何使用 py.test monkeypatch 模拟 os.environ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30895769/