Consider adding `doctest.skip_if` decorator
@sobolevn がすでに取り組んでいます。
2024年3月29日 から。
- 主要言語
- Python
- スター
- 77.2k
- フォーク
- 36k
- PR マージ指標
- PR 指標を取得中
説明
Feature or enhancement
Right now there's no way to skip the whole test / class doctest. You can only skip individual statements with # doctest: +SKIP
This causes problems in several use-cases:
- You have a doctest that should be skipped based on the platform
- We have doctests that should be skipped based on a resource availability
- Libraries might want to skip some doctests based on the Python version / any other lib version
Right now we have this hack:
However, this is just test functions. For library functions it would be much harder to do.
You have to jiggle __doc__ attribute around.
Since https://github.com/python/cpython/pull/117297 we now have correct skipped count for doctest + unittest integration.
So, I propose adding this decorator to doctest.py
def skip_if(condition):
def decorator(func):
if condition and HAVE_DOCSTRINGS:
func.__doc__ = ">>> pass # doctest: +SKIP"
return func
return decorator
It will allow us skipping some tests conditionally with the proper reported results.
Refs https://github.com/python/cpython/pull/116758
CC @serhiy-storchaka and @furkanonder
Linked PRs
- gh-122935
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
評価
この issue はまだ評価されていません。