如何在使用unix passwd和group数据库的模块上运行单元测试?

时间:2014-10-27 21:25:13

标签: python unit-testing python-2.7

我正在用Python编写一个需要大量使用文件系统操作的项目,包括更改文件的所有权。这意味着我需要查询passwd和group数据库,以便在用户/组和数字uid / gids的字符串表示之间进行转换。

我想编写单元测试来覆盖将处理文件系统操作的模块。但是,我没有看到任何保证用户名/组名/ uid / gids在测试时将在passwd和group数据库中的方法。

我想通过在单元测试中模拟pwdgrp模块来解决这个问题,但是,这意味着我的单元测试将紧密耦合到我的模块的实现。我不想关心我的模块是否使用pwdgrp模块。

如何编写单元测试,以便我的模块认为它可以运行chown操作,这需要将用户映射到uid和group到gid,而不管passwd和group数据库的实际内容是什么?

(关于文件系统操作的单元测试,这里有一个单独但相似的问题,但我相信已有SO questiontwothree或{{ 3}}关于这个主题,所以我不会在这里再问一遍 - 不幸的是,给出的大多数答案都依赖于模拟os模块,从而耦合测试和实现。)

0 个答案:

没有答案