Fix sanity block tests
This commit is contained in:
parent
0b1f32ec25
commit
494cefcda6
|
@ -45,6 +45,8 @@ def test_full_withdrawal_in_epoch_transition(spec, state):
|
||||||
index = 0
|
index = 0
|
||||||
current_epoch = spec.get_current_epoch(state)
|
current_epoch = spec.get_current_epoch(state)
|
||||||
set_validator_fully_withdrawable(spec, state, index, current_epoch)
|
set_validator_fully_withdrawable(spec, state, index, current_epoch)
|
||||||
|
assert len(spec.get_expected_withdrawals(state)) == 1
|
||||||
|
|
||||||
yield 'pre', state
|
yield 'pre', state
|
||||||
|
|
||||||
# trigger epoch transition
|
# trigger epoch transition
|
||||||
|
@ -55,6 +57,7 @@ def test_full_withdrawal_in_epoch_transition(spec, state):
|
||||||
yield 'post', state
|
yield 'post', state
|
||||||
|
|
||||||
assert state.balances[index] == 0
|
assert state.balances[index] == 0
|
||||||
|
assert len(spec.get_expected_withdrawals(state)) == 0
|
||||||
|
|
||||||
|
|
||||||
@with_capella_and_later
|
@with_capella_and_later
|
||||||
|
@ -63,7 +66,8 @@ def test_partial_withdrawal_in_epoch_transition(spec, state):
|
||||||
index = state.next_withdrawal_index
|
index = state.next_withdrawal_index
|
||||||
set_validator_partially_withdrawable(spec, state, index, excess_balance=1000000000000)
|
set_validator_partially_withdrawable(spec, state, index, excess_balance=1000000000000)
|
||||||
pre_balance = state.balances[index]
|
pre_balance = state.balances[index]
|
||||||
pre_withdrawal_queue_len = len(state.withdrawal_queue)
|
|
||||||
|
assert len(spec.get_expected_withdrawals(state)) == 1
|
||||||
|
|
||||||
yield 'pre', state
|
yield 'pre', state
|
||||||
|
|
||||||
|
@ -77,21 +81,19 @@ def test_partial_withdrawal_in_epoch_transition(spec, state):
|
||||||
assert state.balances[index] < pre_balance
|
assert state.balances[index] < pre_balance
|
||||||
# Potentially less than due to sync committee penalty
|
# Potentially less than due to sync committee penalty
|
||||||
assert state.balances[index] <= spec.MAX_EFFECTIVE_BALANCE
|
assert state.balances[index] <= spec.MAX_EFFECTIVE_BALANCE
|
||||||
# Withdrawal is processed within the context of the block so queue empty
|
assert len(spec.get_expected_withdrawals(state)) == 0
|
||||||
assert len(state.withdrawal_queue) == pre_withdrawal_queue_len
|
|
||||||
|
|
||||||
|
|
||||||
@with_capella_and_later
|
@with_capella_and_later
|
||||||
@spec_state_test
|
@spec_state_test
|
||||||
def test_many_partial_withdrawals_in_epoch_transition(spec, state):
|
def test_many_partial_withdrawals_in_epoch_transition(spec, state):
|
||||||
assert len(state.validators) > spec.MAX_WITHDRAWALS_PER_PAYLOAD
|
assert len(state.validators) > spec.MAX_WITHDRAWALS_PER_PAYLOAD
|
||||||
assert spec.MAX_PARTIAL_WITHDRAWALS_PER_EPOCH > spec.MAX_WITHDRAWALS_PER_PAYLOAD
|
|
||||||
|
|
||||||
for i in range(spec.MAX_WITHDRAWALS_PER_PAYLOAD + 1):
|
for i in range(spec.MAX_WITHDRAWALS_PER_PAYLOAD + 1):
|
||||||
index = (i + state.next_withdrawal_index) % len(state.validators)
|
index = (i + state.next_withdrawal_index) % len(state.validators)
|
||||||
set_validator_partially_withdrawable(spec, state, index, excess_balance=1000000000000)
|
set_validator_partially_withdrawable(spec, state, index, excess_balance=1000000000000)
|
||||||
|
|
||||||
pre_withdrawal_queue_len = len(state.withdrawal_queue)
|
assert len(spec.get_expected_withdrawals(state)) == spec.MAX_WITHDRAWALS_PER_PAYLOAD
|
||||||
|
|
||||||
yield 'pre', state
|
yield 'pre', state
|
||||||
|
|
||||||
|
@ -102,8 +104,7 @@ def test_many_partial_withdrawals_in_epoch_transition(spec, state):
|
||||||
yield 'blocks', [signed_block]
|
yield 'blocks', [signed_block]
|
||||||
yield 'post', state
|
yield 'post', state
|
||||||
|
|
||||||
# All new partial withdrawals processed except 1
|
assert len(spec.get_expected_withdrawals(state)) == 1
|
||||||
assert len(state.withdrawal_queue) == pre_withdrawal_queue_len + 1
|
|
||||||
|
|
||||||
|
|
||||||
@with_capella_and_later
|
@with_capella_and_later
|
||||||
|
|
Loading…
Reference in New Issue