如何使用 monkeypatching(PyTest) 使用临时文件系统模拟 python 中的 os.walk?

How to mock os.walk in python with a temporary filesystem using monkeypatching(PyTest)?

我有一个使用 os.walk 的函数,我想使用 monkeypatching (PyTest) 测试它。我不知道如何使用 monkeypatch.setattr.

要实现 os.walk 的正确模拟,您必须使用

monkeypatch.setattr(os, "walk", function_that_will_simulate_os_walk_iterator)

function_that_will_simulate_os_walk_iterator 应该 return 每个模拟文件的元组列表 (root, dirs, files)