Add test_ejection

This commit is contained in:
Hsiao-Wei Wang
2019-04-26 14:53:58 +08:00
parent 0de772fc1c
commit 70cd3d2253

View File

@@ -12,12 +12,13 @@ from tests.helpers import (
def test_activation(state):
# Mock a new deposit
index = 0
assert is_active_validator(state.validator_registry[index], get_current_epoch(state))
# Mock a new deposit
state.validator_registry[index].activation_eligibility_epoch = spec.FAR_FUTURE_EPOCH
state.validator_registry[index].activation_epoch = spec.FAR_FUTURE_EPOCH
state.validator_registry[index].effective_balance = spec.MAX_EFFECTIVE_BALANCE
assert not is_active_validator(state.validator_registry[index], get_current_epoch(state))
pre_state = deepcopy(state)
@@ -33,3 +34,25 @@ def test_activation(state):
)
return pre_state, state
def test_ejection(state):
index = 0
assert is_active_validator(state.validator_registry[index], get_current_epoch(state))
assert state.validator_registry[index].exit_epoch == spec.FAR_FUTURE_EPOCH
# Mock an ejection
state.validator_registry[index].effective_balance = spec.EJECTION_BALANCE
pre_state = deepcopy(state)
for _ in range(spec.ACTIVATION_EXIT_DELAY + 1):
next_epoch(state)
assert state.validator_registry[index].exit_epoch != spec.FAR_FUTURE_EPOCH
assert not is_active_validator(
state.validator_registry[index],
get_current_epoch(state),
)
return pre_state, state