diff --git a/old_tests/reqresp/metadata.py b/old_tests/reqresp/metadata.py deleted file mode 100644 index 574e155..0000000 --- a/old_tests/reqresp/metadata.py +++ /dev/null @@ -1,36 +0,0 @@ -from eth2spec.utils.ssz.ssz_typing import uint64, Bitvector, Container -from pyrum import SubprocessConn, Rumor -from sclients import connect_rumor - -from ..utils import * - -import trio - - -class Metadata(Container): - seq_number: uint64 - attnets: Bitvector[64] - - -async def test_metadata(enr): - async with SubprocessConn(cmd='rumor bare') as conn: - async with trio.open_nursery() as nursery: - rumor = Rumor(conn, nursery) - peer_id = await connect_rumor(rumor, enr) - - resp = await rumor.rpc.metadata.req.raw(peer_id, '', raw=True, compression='snappy') - resp_data = parse_response(resp) - - if resp_data is not None: - resp_metadata = Metadata.decode_bytes(bytes.fromhex(resp_data)) - - compare_containers( - Metadata(seq_number=resp_metadata.seq_number), - resp_metadata - ) - - nursery.cancel_scope.cancel() - -if __name__ == '__main__': - args = parse_args('--enr') - trio.run(test_metadata, args.enr) diff --git a/tests/reqresp/metadata.py b/tests/reqresp/metadata.py new file mode 100644 index 0000000..79428f3 --- /dev/null +++ b/tests/reqresp/metadata.py @@ -0,0 +1,32 @@ +from eth2spec.utils.ssz.ssz_typing import uint64, Bitvector, Container +from sclients import connect_rumor + +from ..utils import parse_chunk_response, with_rumor + +class Metadata(Container): + seq_number: uint64 + attnets: Bitvector[64] + + +@with_rumor +async def run(rumor, args): + peer_id = await connect_rumor(rumor, args['client'], args['enr']) + + logs = [] + return_code = 0 + + req_call = rumor.rpc.metadata.req.raw(peer_id, '', raw=True, compression='snappy') + await req_call + await req_call.next() + resp = await req_call.next() + + (resp_data, l) = parse_chunk_response(resp) + logs.extend(l) + if resp_data is None: + return_code = 1 + + else: + # TODO: sanity checks on metadata + metadata = Metadata.decode_bytes(bytes.fromhex(resp_data)) + + return (return_code, logs) diff --git a/tests/utils.py b/tests/utils.py index 9334fcd..7237b28 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -19,9 +19,6 @@ async def wrapped_run_fn(args): return wrapped_run_fn def parse_chunk_response(resp): - if not(resp['result_code'] == 0): - return (None, [f"request error: {resp['msg']}"]) - if 'data' not in resp: return (None, [f"request error: 'data' field not in response"])