Пример #1
0
    def test_get_blocks_with_time(self):
        """Tests the `blocks` endpoint. Check response for blocks with time"""

        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.get_blocks(count=1, add_blocks_time=True)
            self.assertEqual(blocks_response.status_code, 200)
            self.assertIsNotNone(blocks_response.json()['blocks'][0]['time'])
Пример #2
0
    def test_get_only_non_empty_blocks(self):
        """Tests the `blocks` endpoint. Check response for only non empty blocks"""

        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.get_blocks(count=5,
                                                skip_empty_blocks=True)
            self.assertEqual(blocks_response.status_code, 200)
            self.assertEqual(len(blocks_response.json()['blocks']), 0)
Пример #3
0
    def test_get_n_latest_blocks_negative(self):
        """Tests the `blocks` endpoint. Check response for N latest blocks if latest exceeds current height"""

        latest = 999
        number_of_blocks = 6
        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.get_blocks(count=number_of_blocks,
                                                latest=latest)
            self.assertEqual(blocks_response.status_code, 404)
Пример #4
0
    def test_get_blocks_with_precommits(self):
        """Tests the `blocks` endpoint. Check response for blocks with precommits"""

        time.sleep(2)
        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.get_blocks(count=1, add_precommits=True)
            self.assertEqual(blocks_response.status_code, 200)
            self.assertEqual(
                len(blocks_response.json()['blocks'][0]['precommits']), 3)
Пример #5
0
    def test_get_last_n_blocks(self):
        """Tests the `blocks` endpoint. Check response for last N blocks"""

        number_of_blocks = 5
        time.sleep(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.get_blocks(count=number_of_blocks)
            self.assertEqual(blocks_response.status_code, 200)
            self.assertEqual(len(blocks_response.json()['blocks']),
                             number_of_blocks)
Пример #6
0
    def test_get_n_latest_blocks(self):
        """Tests the `blocks` endpoint. Check response for N latest blocks"""

        latest = 5
        number_of_blocks = 15
        time.sleep(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.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
Пример #7
0
    def test_get_n_earliest_blocks(self):
        """Tests the `blocks` endpoint. Check response for N earliest blocks"""

        earliest = 20
        number_of_blocks = 15
        time.sleep(5)
        for validator_id in range(self.network.validators_count()):
            height_counter = earliest
            host, public_port, private_port = self.network.api_address(
                validator_id)
            client = ExonumClient(host, public_port, private_port)
            blocks_response = client.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