如何在python doctest中处理变量错误?

时间:2012-03-05 13:27:39

标签: python testing doctest

我有一个doctest,当找不到文件时需要IOError。

>>> configParser('conffig.ini') # should not exist
Traceback (most recent call last):
    ...
IOError: No such file: /homes/ndeklein/workspace/MS/PyMS/conffig.ini

但是,如果我想从不同的PC上测试它,或者其他人想测试它,那么路径不会是/ homes / ndeklein / workspace / MS / PyMS /。我想做

>>> configParser('conffig.ini') # should not exist
Traceback (most recent call last):
    ...
IOError: No such file: os.path.abspath(conffig.ini)

但是因为它在docstring中它看到了os.path.abspath(作为结果的一部分。

如何制作docstring测试变量的结果?

1 个答案:

答案 0 :(得分:2)

你真的需要匹配路径名吗?如果没有,那么只需使用省略号跳过输出的那一部分:

>>> configParser('conffig.ini') # should not exist
Traceback (most recent call last):
    ...
IOError: No such file: ...

如果您这样做,则需要捕获错误并手动测试该值。类似的东西:

>>> try:
...   configParser('conffig.ini') # should not exist
... except IOError as e:
...   print('ok' if str(e).endswith(os.path.abspath('conffig.ini')) else 'fail')
ok