mirror of
https://github.com/ethereum/consensus-specs.git
synced 2026-02-02 18:24:59 -05:00
update registry tests to return the blocks that transiiton the pre_state to post_state
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
from copy import deepcopy
|
||||
|
||||
import pytest
|
||||
|
||||
import eth2spec.phase0.spec as spec
|
||||
|
||||
from eth2spec.phase0.spec import (
|
||||
@@ -10,6 +12,9 @@ from tests.helpers import (
|
||||
next_epoch,
|
||||
)
|
||||
|
||||
# mark entire file as 'state'
|
||||
pytestmark = pytest.mark.state
|
||||
|
||||
|
||||
def test_activation(state):
|
||||
index = 0
|
||||
@@ -23,8 +28,10 @@ def test_activation(state):
|
||||
|
||||
pre_state = deepcopy(state)
|
||||
|
||||
blocks = []
|
||||
for _ in range(spec.ACTIVATION_EXIT_DELAY + 1):
|
||||
next_epoch(state)
|
||||
block = next_epoch(state)
|
||||
blocks.append(block)
|
||||
|
||||
assert state.validator_registry[index].activation_eligibility_epoch != spec.FAR_FUTURE_EPOCH
|
||||
assert state.validator_registry[index].activation_epoch != spec.FAR_FUTURE_EPOCH
|
||||
@@ -33,7 +40,7 @@ def test_activation(state):
|
||||
get_current_epoch(state),
|
||||
)
|
||||
|
||||
return pre_state, state
|
||||
return pre_state, blocks, state
|
||||
|
||||
|
||||
def test_ejection(state):
|
||||
@@ -46,8 +53,10 @@ def test_ejection(state):
|
||||
|
||||
pre_state = deepcopy(state)
|
||||
|
||||
blocks = []
|
||||
for _ in range(spec.ACTIVATION_EXIT_DELAY + 1):
|
||||
next_epoch(state)
|
||||
block = next_epoch(state)
|
||||
blocks.append(block)
|
||||
|
||||
assert state.validator_registry[index].exit_epoch != spec.FAR_FUTURE_EPOCH
|
||||
assert not is_active_validator(
|
||||
@@ -55,4 +64,4 @@ def test_ejection(state):
|
||||
get_current_epoch(state),
|
||||
)
|
||||
|
||||
return pre_state, state
|
||||
return pre_state, blocks, state
|
||||
|
||||
@@ -402,11 +402,21 @@ def add_attestation_to_state(state, attestation, slot):
|
||||
|
||||
|
||||
def next_slot(state):
|
||||
"""
|
||||
Transition to the next slot via an empty block.
|
||||
Return the empty block that triggered the transition.
|
||||
"""
|
||||
block = build_empty_block_for_next_slot(state)
|
||||
state_transition(state, block)
|
||||
return block
|
||||
|
||||
|
||||
def next_epoch(state):
|
||||
"""
|
||||
Transition to the start slot of the next epoch via an empty block.
|
||||
Return the empty block that triggered the transition.
|
||||
"""
|
||||
block = build_empty_block_for_next_slot(state)
|
||||
block.slot += spec.SLOTS_PER_EPOCH - (state.slot % spec.SLOTS_PER_EPOCH)
|
||||
state_transition(state, block)
|
||||
return block
|
||||
|
||||
Reference in New Issue
Block a user