fix updated tests

This commit is contained in:
Danny Ryan 2019-03-20 10:20:08 -06:00
parent c26d09540d
commit b65ff4988d
No known key found for this signature in database
GPG Key ID: 2765A792E42CE07A

View File

@ -3,6 +3,7 @@ import pytest
from build.phase0.spec import (
get_beacon_proposer_index,
cache_state,
advance_slot,
process_block_header,
@ -15,70 +16,45 @@ from tests.phase0.helpers import (
pytestmark = pytest.mark.header
def test_sucess(state):
pre_state = deepcopy(state)
block = build_empty_block_for_next_slot(pre_state)
def prepare_state_for_header_processing(state):
cache_state(state)
advance_slot(state)
#
# setup pre_state to be ready for block transition
#
cache_state(pre_state)
advance_slot(pre_state)
post_state = deepcopy(pre_state)
def run_block_header_processing(state, block, valid=True):
"""
Run ``process_block_header`` returning the pre and post state.
If ``valid == False``, run expecting ``AssertionError``
"""
prepare_state_for_header_processing(state)
post_state = deepcopy(state)
if not valid:
with pytest.raises(AssertionError):
process_block_header(post_state, block)
return state, None
#
# test block header
#
process_block_header(post_state, block)
return state, post_state
return state, [block], post_state
def test_success(state):
block = build_empty_block_for_next_slot(state)
pre_state, post_state = run_block_header_processing(state, block)
return state, block, post_state
def test_invalid_slot(state):
pre_state = deepcopy(state)
block = build_empty_block_for_next_slot(state)
block.slot = state.slot + 2 # invalid slot
# mess up previous block root
block = build_empty_block_for_next_slot(pre_state)
block.previous_block_root = b'\12'*32
#
# setup pre_state advancing two slots to induce error
#
cache_state(pre_state)
advance_slot(pre_state)
advance_slot(pre_state)
post_state = deepcopy(pre_state)
#
# test block header
#
with pytest.raises(AssertionError):
process_block_header(post_state, block)
return state, [block], None
pre_state, post_state = run_block_header_processing(state, block, valid=False)
return pre_state, block, None
def test_invalid_previous_block_root(state):
pre_state = deepcopy(state)
block = build_empty_block_for_next_slot(state)
block.previous_block_root = b'\12'*32 # invalid prev root
# mess up previous block root
block = build_empty_block_for_next_slot(pre_state)
block.previous_block_root = b'\12'*32
#
# setup pre_state to be ready for block transition
#
cache_state(pre_state)
advance_slot(pre_state)
post_state = deepcopy(pre_state)
#
# test block header
#
with pytest.raises(AssertionError):
process_block_header(post_state, block)
return state, [block], None
pre_state, post_state = run_block_header_processing(state, block, valid=False)
return pre_state, block, None