fill: plain pytest test in a fixture directory crashes collection with INTERNALERROR

Open Beginner friendly
#3,608 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
78/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
python
Domain
testing, tooling

Research direction

Start in packages/testing/src/execution_testing/cli/pytest_commands/plugins/filler/filler.py at pytest_collection_modifyitems and the get_spec_format_for_item(params) call. Reproduce with the tests/frontier/mpt/test_probe.py example using uv run fill tests/frontier/mpt/ --fork Osaka. Done means a plain test no longer causes an INTERNALERROR and is either clearly deselected or reported with an actionable test-specific error.

Written by the indexing model from the issue text.

Description

A test function under tests/ that does not request state_test/blockchain_test/transaction_test makes fill abort during collection instead of being skipped or reported.

Reproduce: add a file tests/frontier/mpt/test_probe.py containing def test_x(): assert True, then run uv run fill tests/frontier/mpt/ --fork Osaka.

Result: INTERNALERROR> ValueError: No spec type format found in the test item. raised from packages/testing/src/execution_testing/cli/pytest_commands/plugins/filler/filler.py in pytest_collection_modifyitems at the get_spec_format_for_item(params) call. No tests run.

Expected: either the item is deselected with a clear message, or collection fails with an actionable error naming the offending test.

Context: found while adding a helper self-check next to tests/frontier/mpt/ (PR #3600). Workaround used there: run the check at import time from a non-test_ module.

Dominant language
Python
Stars
1.2k
Forks
505
Avg merge
2d 17h
Merged PRs (30d)
112

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ethereum/execution-specs

All issues in ethereum/execution-specs

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.