eth2.0-specs/test_libs/pyspec/eth2spec/test/context.py

28 lines
776 B
Python
Raw Normal View History

from eth2spec.phase0 import spec
from .helpers import create_genesis_state
from .utils import spectest, with_args
2019-05-06 15:10:43 +00:00
# Provides a genesis state as first argument to the function decorated with this
with_state = with_args(lambda: [create_genesis_state(spec.SLOTS_PER_EPOCH * 8, list())])
2019-05-06 15:10:43 +00:00
# shorthand for decorating @with_state @spectest()
def spec_state_test(fn):
return with_state(spectest()(fn))
def expect_assertion_error(fn):
2019-05-11 15:51:02 +00:00
bad = False
try:
fn()
2019-05-11 15:51:02 +00:00
bad = True
except AssertionError:
pass
except IndexError:
# Index errors are special; the spec is not explicit on bound checking, an IndexError is like a failed assert.
pass
2019-05-11 15:51:02 +00:00
if bad:
raise AssertionError('expected an assertion error, but got none.')