diff --git a/tests/core/pyspec/eth2spec/test/deneb/fork_choice/test_on_block.py b/tests/core/pyspec/eth2spec/test/deneb/fork_choice/test_on_block.py index 85610675c..e1dc536c6 100644 --- a/tests/core/pyspec/eth2spec/test/deneb/fork_choice/test_on_block.py +++ b/tests/core/pyspec/eth2spec/test/deneb/fork_choice/test_on_block.py @@ -89,7 +89,7 @@ def test_invalid_incorrect_proof(spec, state): assert store.time == current_time # On receiving a block of `GENESIS_SLOT + 1` slot - block, blobs, blob_kzg_proofs = get_block_with_blob(spec, state, rng=rng) + block, blobs, _ = get_block_with_blob(spec, state, rng=rng) signed_block = state_transition_and_sign_block(spec, state, block) # Insert incorrect proof blob_kzg_proofs = [b'\xc0' + b'\x00' * 47] @@ -103,3 +103,34 @@ def test_invalid_incorrect_proof(spec, state): assert spec.get_head(store) != signed_block.message.hash_tree_root() yield 'steps', test_steps + + +@with_deneb_and_later +@spec_state_test +def test_invalid_data_unavailable(spec, state): + rng = Random(1234) + + test_steps = [] + # Initialization + store, anchor_block = get_genesis_forkchoice_store_and_block(spec, state) + yield 'anchor_state', state + yield 'anchor_block', anchor_block + current_time = state.slot * spec.config.SECONDS_PER_SLOT + store.genesis_time + on_tick_and_append_step(spec, store, current_time, test_steps) + assert store.time == current_time + + # On receiving a block of `GENESIS_SLOT + 1` slot + block, _, _ = get_block_with_blob(spec, state, rng=rng) + signed_block = state_transition_and_sign_block(spec, state, block) + + # data unavailable + blob_data = BlobData([], []) + + def run_func_1(): + yield from tick_and_add_block(spec, store, signed_block, test_steps, blob_data=blob_data, valid=False) + + yield from with_blob_data(spec, blob_data, run_func_1) + + assert spec.get_head(store) != signed_block.message.hash_tree_root() + + yield 'steps', test_steps