Как я могу обработать переменные ошибки в doctest python? - PullRequest
1 голос
/ 05 марта 2012

У меня есть doctest, который ожидает IOError, когда файл не найден.

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

Однако, если я хочу проверить это с другого компьютера или кто-то другой хочет проверить это, путь не будет / 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)

но поскольку он находится в строке документации, он видит os.path.abspath (как часть результата.

Как получить результат тестовой переменной docstring?

1 Ответ

2 голосов
/ 05 марта 2012

Вам действительно нужно сопоставить с путем? Если нет, то просто используйте многоточие, чтобы пропустить эту часть вывода:

>>> 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
...