ImportError: cannot import name ‘resultlog_key‘ from ‘_pytest.resultlog‘
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- python
- 領域
- testing-qa
調査の方向性
pytest_rerunfailures.py から始め、特に _get_resultlog と HAS_RESULTLOG のバージョンチェックを確認します。pytest 7.3.2 と pytest-rerunfailures 12.0 でインポート失敗を再現し、その後、result-log の互換性パスで ImportError が発生しなくなったことを確認します。
索引モデルが issue の本文から書いたものです。
説明
def worker_internal_error(self, node, formatted_error):
"""
pytest_internalerror() was called on the worker.
pytest_internalerror() arguments are an excinfo and an excrepr, which can't
be serialized, so we go with a poor man's solution of raising an exception
here ourselves using the formatted message.
"""
self._active_nodes.remove(node)
try:
> assert False, formatted_error
E AssertionError: Traceback (most recent call last):
E File "/usr/local/lib/python3.7/site-packages/_pytest/main.py", line 269, in wrap_session
E session.exitstatus = doit(config, session) or 0
E File "/usr/local/lib/python3.7/site-packages/_pytest/main.py", line 323, in _main
E config.hook.pytest_runtestloop(session=session)
E File "/usr/local/lib/python3.7/site-packages/pluggy/hooks.py", line 286, in __call__
E return self._hookexec(self, self.get_hookimpls(), kwargs)
E File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 92, in _hookexec
E return self._inner_hookexec(hook, methods, kwargs)
E File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 86, in <lambda>
E firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
E File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 208, in _multicall
E return outcome.get_result()
E File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result
E raise ex[1].with_traceback(ex[2])
E File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 187, in _multicall
E res = hook_impl.function(*args)
E File "/usr/local/lib/python3.7/site-packages/xdist/remote.py", line 115, in pytest_runtestloop
E self.run_one_test(torun)
E File "/usr/local/lib/python3.7/site-packages/xdist/remote.py", line 131, in run_one_test
E self.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
E File "/usr/local/lib/python3.7/site-packages/pluggy/hooks.py", line 286, in __call__
E return self._hookexec(self, self.get_hookimpls(), kwargs)
E File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 92, in _hookexec
E return self._inner_hookexec(hook, methods, kwargs)
E File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 86, in <lambda>
E firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
E File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 208, in _multicall
E return outcome.get_result()
E File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result
E raise ex[1].with_traceback(ex[2])
E File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 187, in _multicall
E res = hook_impl.function(*args)
E File "/usr/local/lib/python3.7/site-packages/pytest_rerunfailures.py", line 593, in pytest_runtest_protocol
E check_options(item.session.config)
E File "/usr/local/lib/python3.7/site-packages/pytest_rerunfailures.py", line 145, in check_options
E resultlog = _get_resultlog(config)
E File "/usr/local/lib/python3.7/site-packages/pytest_rerunfailures.py", line 117, in _get_resultlog
E from _pytest.resultlog import resultlog_key
E ImportError: cannot import name 'resultlog_key' from '_pytest.resultlog' (/usr/local/lib/python3.7/site-packages/_pytest/resultlog.py)
E assert False
/usr/local/lib/python3.7/site-packages/xdist/dsession.py:190: AssertionError
Package Version:
pytest 7.3.2
pytest-rerunfailures 12.0
I know _pytest.resultlog was removed in pytest 6.1.0
search for source code:
HAS_RESULTLOG = False
try:
from _pytest.resultlog import ResultLog
HAS_RESULTLOG = True
except ImportError:
# We have a pytest >= 6.1
pass
def _get_resultlog(config):
if not HAS_RESULTLOG:
return None
elif PYTEST_GTE_54:
# hack
from _pytest.resultlog import resultlog_key
return config._store.get(resultlog_key, default=None)
else:
return getattr(config, "_resultlog", None)
so when I have a pytest >= 6.1 “from _pytest.resultlog import resultlog_key” should not be executed !
maybe because ”from _pytest.resultlog import ResultLog“ not reise Exception unexpected ,which means though i have a pytest >= 6.1 ,_pytest.resultlog was not removed?
- 主要言語
- Python
- スター
- 481
- フォーク
- 110
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
pytest-dev/pytest-rerunfailures のほかの issue
-
Zero rerun delay can abort with OverflowError for a large finite backoff factor対応中かも @AryanRG が 12 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
Non-finite rerun delay settings abort pytest with INTERNALERROR対応中かも @Arham-Begani が 10 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
-
fail-on-flaky returns success after a rerun with xdist対応中かも @harbinresearcher が 13 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 15/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
pytest-dev/pytest-rerunfailures#326 · コメント 7 件 ·
-
Add ability to raise runtime warnings on reruns対応中かも @LouisDeconinck が 41 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
pytest-dev/pytest-rerunfailures#318 · コメント 2 件 ·
pytest-dev/pytest-rerunfailures の issue をすべて見る
似ている issue
-
app: scripts status: backlog type: documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
netbox-community/netbox-scripts#68 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 91/100
marin-community/marin#10765 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 70/100
flathub/com.unity.UnityHub#230 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
namespace operations
難易度 1/5 1時間未満 初心者へのやさしさ 63/100
EclipseFdn/open-vsx.org#14910 ·
メンテナーはふだん 1 日以内に返信