Как я могу подделать жесткие ссылки в поддельной файловой системе в тестах Python? - PullRequest
0 голосов
/ 08 февраля 2019

Я хотел бы проверить, правильно ли работает производственный код Python, взаимодействующий с файловой системой, на жесткие ссылки (имена файлов, указывающие на один и тот же индекс).

В модульном тесте я использую поддельную файловую систему(созданный с помощью 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 Ответ

0 голосов
/ 08 февраля 2019

Поскольку tmp_path создает каталог фактический (в отличие от mocking pathlib), вы можете нормально обрабатывать все в tmp_path.Таким образом, для создания жесткой ссылки вы можете использовать os.link(srcpath, dstpath), как обычно (из Python 3.6+; в противном случае используйте os.link(str(srcpath), str(dstpath))).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...