Пример #1
0
async def test_interledger_multi_confirm_transfer_abort():
    async def foo():
        return {'abort_status': True, 'abort_tx_hash': '0x444'}

    init = MockInitiator([])
    resp1 = MockMultiResponder()
    resp2 = MockMultiResponder()
    i = Interledger(init, [resp1, resp2], True, 1)

    t = TransferToMulti()
    t.payload = {}
    t.payload['id'] = str(uuid4().int)
    t.results = []
    t.status = TransferStatus.CONFIRMING
    t.inquiry_decision = True
    t.confirm_task = asyncio.ensure_future(foo())
    i.results_aborting = [t]

    task = asyncio.ensure_future(i.confirm_transfer())
    assert task.done() == False
    await task

    res = i.results_abort[0]
    assert t.status == TransferStatus.FINALIZED
    assert res['abort_status'] == True
    assert res['abort_tx_hash'] == '0x444'
    assert len(i.results_abort) == 1
    assert len(i.results_commit) == 0

    assert len(i.results_aborting) == 0
Пример #2
0
async def test_interledger_multi_process_result_inquiry_rejection():

    init = MockInitiator([])
    resp1 = MockMultiResponder()
    resp2 = MockMultiResponder()
    i = Interledger(init, [resp1, resp2], True)

    t = TransferToMulti()
    t.payload = {}
    t.payload['id'] = str(uuid4().int)
    t.status = TransferStatus.RESPONDED
    t.inquiry_decision = False
    t.results = [{
        "status": True
    }, {
        "status": True
    }]  # set it even to true should not affect
    i.transfers_responded = [t]

    task = asyncio.ensure_future(i.process_result())
    assert task.done() == False
    await task

    tr = i.results_aborting[0]
    assert tr.state == TransferStatus.CONFIRMING
    assert tr.results[0]['status'] == True
    assert tr.results[1]['status'] == True
    assert len(i.results_commit) == 0
    assert len(i.results_abort) == 0

    assert len(i.transfers_responded) == 0