我有这个夹具来获取这个文件中的所有测试,以便为代码使用的文件和目录使用 pytest 临时目录:
import src.recurrent_admin.restic_backup_task as restic_task
...
@pytest.fixture(autouse=True)
def mock_path_strs(tmpdir):
tmpdir_path = pathlib.Path(str(tmpdir))
testing_repo_dir_path = tmpdir_path.joinpath('repo_dir')
mock_repo_dir_path_str = mock.PropertyMock(return_value=(str(testing_repo_dir_path)))
testing_pwd_file_path = tmpdir_path.joinpath('pwd_file.txt')
mock_pwd_file_path_str = mock.PropertyMock(return_value=(str(testing_pwd_file_path)))
testing_src_dir_path = tmpdir_path.joinpath('src_dir')
mock_src_dir_path_str = mock.PropertyMock(return_value=(str(testing_src_dir_path)))
with mock.patch.object(restic_task, 'REPO_DIR_PATH_STR', new_callable=mock_repo_dir_path_str):
with mock.patch.object(restic_task, 'PWD_FILE_PATH_STR', new_callable=mock_pwd_file_path_str):
with mock.patch.object(restic_task, 'SRC_DIR_PATH_STR', new_callable=mock_src_dir_path_str):
yield
这完成了工作......但我想知道是否可以使用
mock.patch.multiple
,但以某种方式为每个单独的项目设置 new_callable
?