def test_write_request_manager_handles_batches( write_req_manager: WriteRequestManager, three_pc_batch): write_req_manager.post_apply_batch(three_pc_batch) write_req_manager.commit_batch(three_pc_batch.ledger_id, len(three_pc_batch.valid_digests), three_pc_batch.state_root, three_pc_batch.txn_root, three_pc_batch.pp_time) write_req_manager.post_batch_rejected(three_pc_batch.ledger_id)
def test_write_request_manager_fails_to_handle_batches( write_req_manager: WriteRequestManager, three_pc_batch): nonexistent_lid = 999 three_pc_batch.ledger_id = nonexistent_lid with pytest.raises(LogicError): write_req_manager.post_apply_batch(three_pc_batch) with pytest.raises(LogicError): write_req_manager.post_batch_rejected(three_pc_batch) with pytest.raises(LogicError): write_req_manager.commit_batch(three_pc_batch)
def test_write_request_manager_chain_of_responsib_batch( write_req_manager: WriteRequestManager, three_pc_batch, db): write_req_manager.batch_handlers[DOMAIN_LEDGER_ID] = [] handlers = write_req_manager.batch_handlers[DOMAIN_LEDGER_ID] check_list = [FakeSomething(), FakeSomething(), FakeSomething()] def modify_check_list(): assert not all(check.check_field for check in check_list) f_check = next(check for check in check_list if check.check_field is False) f_check.check_field = True def modify_check_list_post_apply(batch, prev_result): modify_check_list() return 1, 1, 1 def modify_check_list_commit(ledger_id, txn_count, state_root, txn_root, pp_time, prev_handler_result): modify_check_list() return 1, 1, 1 def modify_check_list_post_rejected(lid, prev_result): modify_check_list() return 1, 1, 1 for i in range(3): handler = DomainBatchHandler(db) handler.post_batch_applied = modify_check_list_post_apply handler.commit_batch = modify_check_list_commit handler.post_batch_rejected = modify_check_list_post_rejected handlers.append(handler) for check in check_list: check.check_field = False write_req_manager.post_apply_batch(three_pc_batch) assert all(check.check_field for check in check_list) for check in check_list: check.check_field = False write_req_manager.commit_batch(three_pc_batch.ledger_id, len(three_pc_batch.valid_digests), three_pc_batch.state_root, three_pc_batch.txn_root, three_pc_batch.pp_time) assert all(check.check_field for check in check_list) for check in check_list: check.check_field = False write_req_manager.post_batch_rejected(three_pc_batch.ledger_id) assert all(check.check_field for check in check_list)
def test_write_request_manager_fails_to_handle_batches( write_req_manager: WriteRequestManager, three_pc_batch): nonexistent_lid = 999 three_pc_batch.ledger_id = nonexistent_lid with pytest.raises(LogicError): write_req_manager.post_apply_batch(three_pc_batch) with pytest.raises(LogicError): write_req_manager.post_batch_rejected(three_pc_batch) with pytest.raises(LogicError): write_req_manager.commit_batch(nonexistent_lid, len(three_pc_batch.valid_digests), three_pc_batch.state_root, three_pc_batch.txn_root, three_pc_batch.pp_time)
def test_write_request_manager_handles_batches( write_req_manager: WriteRequestManager, three_pc_batch): write_req_manager.post_apply_batch(three_pc_batch) write_req_manager.commit_batch(three_pc_batch) write_req_manager.post_batch_rejected(three_pc_batch.ledger_id)