-
Notifications
You must be signed in to change notification settings - Fork 167
feat(consume): Add consume sync
tests to sync clients after engine tests
#2007
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
aa628e9
to
2d11b62
Compare
The logic for checking the This way if you use I couldn't figure out a good way to completely skip test filling, instead of |
From Discord:
Changes incoming 🙂 edit: It looks like a edit2: It seems these are different markers altogether and meant to mark tests to only fill one type of fixture. The more you know 🌈 ... |
8ad785b
to
7041b1d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fantastic! Just a couple of comments, main one being that we should make the refactor of the verify_sync
field in the BlockchainTest
spec.
src/pytest_plugins/consume/simulators/simulator_logic/test_via_sync.py
Outdated
Show resolved
Hide resolved
src/pytest_plugins/consume/simulators/simulator_logic/test_via_sync.py
Outdated
Show resolved
Hide resolved
Ok yeah, this is the best way I think as well. I'm glad you agree. I was wondering if we wanted to try to keep it this way for backward compatibility but since no tests were turned on yet for this, I think this is the way to go. Will go this route 👍🏼 |
- Use `pytest.mark.verify_sync` instead of the previous `verify_sync` flag on the blockchain test. - Remove the syncing periodic checks as when the forkchoice_updated response is `VALID`, we can break. - Update all files according to changes above.
Add a new type of test that is essentially `consume_engine` but gets another client to sync after payloads are executed. - These tests can be filled with: `uv run fill ... -m "blockchain_test_sync"` - Filled tests can be run against hive with `uv run consume sync` Squashes: - chore: fix formatting and lint errors - chore: lower some of the timeouts and sleeps for sync tests - chore(docs): Document consume sync and add entry to CHANGELOG.md - Add tests for the ``verify_sync`` marker to make sure it's behaving as expected. - chore: Don't convert state tests to sync tests - refactor: Make test ids better - Changes from comments on PR ethereum#2007 - Use `pytest.mark.verify_sync` instead of the previous `verify_sync` flag on the blockchain test. - Remove the syncing periodic checks as when the forkchoice_updated response is `VALID`, we can break. - Update all files according to changes above.
11ea5e8
to
d1186c9
Compare
@marioevz Updated this to reflect your comments. I had some unideal paths to get to where we got and rebasing |
Add a new type of test that is essentially `consume_engine` but gets another client to sync after payloads are executed. - These tests can be filled with: `uv run fill ... -m "blockchain_test_sync"` - Filled tests can be run against hive with `uv run consume sync` Squashes: - chore: fix formatting and lint errors - chore: lower some of the timeouts and sleeps for sync tests - chore(docs): Document consume sync and add entry to CHANGELOG.md - Add tests for the ``verify_sync`` marker to make sure it's behaving as expected. - chore: Don't convert state tests to sync tests - refactor: Make test ids better - Changes from comments on PR ethereum#2007 - Use `pytest.mark.verify_sync` instead of the previous `verify_sync` flag on the blockchain test. - Remove the syncing periodic checks as when the forkchoice_updated response is `VALID`, we can break. - Update all files according to changes above.
d1186c9
to
680b84c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Amazing! I feel this is pretty much ready to merge, just made two minor comments.
- Add marker to `pytest_configure` as an official marker and to silence warnings. - Define a `BlockchainEngineSyncFixture.discard_fixture_format_by_marks` and specify `verify_sync` marker presence only for `BlockchainEngineSyncFixture`.
2fdb77d
to
9eb05d0
Compare
- Add marker to `pytest_configure` as an official marker and to silence warnings. - Define a `BlockchainEngineSyncFixture.discard_fixture_format_by_marks` and specify `verify_sync` marker presence only for `BlockchainEngineSyncFixture`.
9eb05d0
to
00889e5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome! Thanks so much
🗒️ Description
Add a new test type that will send
consume engine
tests to client under test and then have a separate client sync to it. Parametrizes both client under test and sync client using hive client config file.uv run fill --fork=Osaka -k rlp_limit --clean
(or narrow down to one or two tests)uv run consume sync -v -s
(-s
for good logs,-v
for good test ids)TODO:
✅ Checklist
tox
checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:uvx --with=tox-uv tox -e lint,typecheck,spellcheck,markdownlint
type(scope):
.