python-2.7 - 如何在 Python 测试中伪造假文件系统中的硬链接?
问题描述
我想检查与文件系统交互的 Python 生产代码是否以正确的方式考虑硬链接(指向同一 inode 的文件名)。
在单元测试中,我使用了一个假文件系统(使用pytest
fixturetmp_path
创建,是一个pathlib/pathlib2.Path
对象),并希望在其中伪造硬链接。
hard_link_0...2.txt
测试中的假文件系统应包含三个指向假文件系统中同一 inode 的硬链接。
hard_link_0.txt
hard_link_1.txt
/dir
hard_link_2.txt
解决方案
由于tmp_path
创建了一个实际目录(而不是模拟 pathlib),因此您可以tmp_path
正常处理所有内容。因此,要创建硬链接,您可以os.link(srcpath, dstpath)
像往常一样使用 (从 Python 3.6+ 开始;否则,使用os.link(str(srcpath), str(dstpath))
)。
推荐阅读
- c# - 计算一段时间后工作了多少小时
- javascript - 错误:app.database 不是使用 Firebase 的函数
- reactjs - 无法在反应中执行循环
- windows - 在 Powershell 脚本中的标签中显示文本
- javascript - angular2 - 在外部组件的控制器中获取内部组件的 DOM 元素?
- c# - C#删除边界内的字符串
- python - Python CSV 错误:行包含 NULL 字节,但在文件中找不到 NULL 字节
- ios - 在 Swift 中,从 App Extension 目标运行时如何忽略部分代码?
- apache - Apache Intermittant Hang 是网络延迟吗?
- c# - 如何为自定义用户控件提供数据触发器属性?