代码之家  ›  专栏  ›  技术社区  ›  thinwybk

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

  •  0
  • thinwybk  · 技术社区  · 7 年前

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

    在单元测试中,我使用了一个伪文件系统(用 pytest fixture tmp_path ,是一个 pathlib/pathlib2.Path 对象)并希望在其中伪造硬链接。

    测试中的假文件系统应包含三个硬链接 hard_link_0...2.txt 指向假文件系统中的同一索引节点。

    hard_link_0.txt
    hard_link_1.txt
    /dir
      hard_link_2.txt
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Amadan    7 年前

    自从 tmp_path 创建一个 真实的 目录(与模拟pathlib相反),您可以在 tmp_路径 正常地因此,要创建硬链接,可以使用 os.link(srcpath, dstpath) ,正如您通常所做的那样(来自Python 3.6+;否则,使用 os.link(str(srcpath), str(dstpath)) ).