def test_get_last_n_blocks(self): """Tests the `blocks` endpoint. Check response for last N blocks""" number_of_blocks = 5 wait_for_block(self.network, 5) for validator_id in range(self.network.validators_count()): host, public_port, private_port = self.network.api_address(validator_id) client = ExonumClient(host, public_port, private_port) blocks_response = client.public_api.get_blocks(count=number_of_blocks) self.assertEqual(blocks_response.status_code, 200) self.assertEqual(len(blocks_response.json()["blocks"]), number_of_blocks)
def test_get_n_latest_blocks(self): """Tests the `blocks` endpoint. Check response for N latest blocks""" latest = 5 number_of_blocks = 15 wait_for_block(self.network, 5) for validator_id in range(self.network.validators_count()): height_counter = latest host, public_port, private_port = self.network.api_address(validator_id) client = ExonumClient(host, public_port, private_port) blocks_response = client.public_api.get_blocks( count=number_of_blocks, latest=latest ) self.assertEqual(len(blocks_response.json()["blocks"]), latest + 1) for block in blocks_response.json()["blocks"]: self.assertEqual(int(block["height"]), height_counter) height_counter -= 1
def test_get_mix_latest_earliest_blocks(self): """Tests the `blocks` endpoint. Check response for N latest and earliest blocks""" latest = 10 earliest = 5 number_of_blocks = 15 wait_for_block(self.network, 10) for validator_id in range(self.network.validators_count()): height_counter = latest host, public_port, private_port = self.network.api_address( validator_id) client = vegaClient(host, public_port, private_port) blocks_response = client.public_api.get_blocks( count=number_of_blocks, latest=latest, earliest=earliest) self.assertEqual(len(blocks_response.json()['blocks']), latest - earliest + 1) for block in blocks_response.json()['blocks']: self.assertEqual(int(block['height']), height_counter) height_counter -= 1
def test_get_n_earliest_blocks(self): """Tests the `blocks` endpoint. Check response for N earliest blocks""" earliest = 20 number_of_blocks = 15 wait_for_block(self.network, 20) for validator_id in range(self.network.validators_count()): height_counter = earliest host, public_port, private_port = self.network.api_address( validator_id) client = vegaClient(host, public_port, private_port) blocks_response = client.public_api.get_blocks( count=number_of_blocks, earliest=earliest) latest_height = int(blocks_response.json()['blocks'][0]['height']) self.assertEqual(len(blocks_response.json()['blocks']), latest_height - earliest + 1) # blocks must be started from 'earliest' height for block in reversed(blocks_response.json()['blocks']): self.assertEqual(int(block['height']), height_counter) height_counter += 1