|
9 | 9 | from node.blockchain.inner_models import Node as InnerNode
|
10 | 10 | from node.blockchain.models import Block as ORMBlock
|
11 | 11 | from node.blockchain.models import Node as ORMNode
|
| 12 | +from node.blockchain.models import PendingBlock |
| 13 | +from node.blockchain.tests.factories.block import make_block |
| 14 | +from node.blockchain.tests.factories.block_message.node_declaration import make_node_declaration_block_message |
12 | 15 | from node.blockchain.tests.factories.node import make_node
|
13 | 16 | from node.core.utils.cryptography import get_node_identifier
|
14 | 17 |
|
@@ -87,6 +90,28 @@ def test_send_scr_to_node(
|
87 | 90 | ))
|
88 | 91 |
|
89 | 92 |
|
| 93 | +@pytest.mark.usefixtures('base_blockchain', 'as_confirmation_validator') |
| 94 | +def test_send_block_to_address_integration( |
| 95 | + test_server_address, primary_validator_key_pair, regular_node, regular_node_key_pair, smart_mocked_node_client |
| 96 | +): |
| 97 | + assert not PendingBlock.objects.exists() |
| 98 | + |
| 99 | + facade = BlockchainFacade.get_instance() |
| 100 | + block_message = make_node_declaration_block_message(regular_node, regular_node_key_pair, facade) |
| 101 | + |
| 102 | + assert facade.get_primary_validator().identifier == primary_validator_key_pair.public |
| 103 | + block = make_block(block_message, primary_validator_key_pair.private) |
| 104 | + |
| 105 | + with patch('node.blockchain.views.block.start_process_pending_blocks_task') as mock: |
| 106 | + response = smart_mocked_node_client.send_block(test_server_address, block) |
| 107 | + |
| 108 | + assert response.status_code == 204 |
| 109 | + mock.assert_called() |
| 110 | + pending_block = PendingBlock.objects.get_or_none(number=block.get_block_number(), hash=block.make_hash()) |
| 111 | + assert pending_block |
| 112 | + assert pending_block.body == block.json() |
| 113 | + |
| 114 | + |
90 | 115 | @pytest.mark.django_db
|
91 | 116 | @pytest.mark.usefixtures('rich_blockchain')
|
92 | 117 | @pytest.mark.parametrize('block_identifier, block_number', (
|
|
0 commit comments