如何在Python测试中伪造文件系统中的硬链接?

时间:2019-02-08 08:40:35

标签: python-2.7 pytest

我想检查与文件系统交互的Python生产代码是否认为正确的硬链接(指向相同inode的文件名)。

在单元测试中,我使用的是伪造的文件系统(由pytest fixture tmp_path创建,是一个pathlib/pathlib2.Path对象),并且想要伪造其中的硬链接。

测试中的伪文件系统应包含三个指向伪文件系统中相同inode的硬链接hard_link_0...2.txt

hard_link_0.txt
hard_link_1.txt
/dir
  hard_link_2.txt

1 个答案:

答案 0 :(得分:1)

由于tmp_path创建了一个 actual 目录(而不是模拟pathlib),因此您可以正常处理tmp_path中的所有内容。因此,要创建硬链接,可以像往常一样使用os.link(srcpath, dstpath)(从Python 3.6+开始;否则,使用os.link(str(srcpath), str(dstpath)))。