mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-20 15:24:21 +01:00
test: add testing for order callbacks
This commit is contained in:
@@ -110,3 +110,99 @@ async def test_events_on_cancel_order():
|
||||
assert close_res.price == 10
|
||||
assert close_res.type == 'EXCHANGE LIMIT'
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_closed_callback_on_submit_order_closed():
|
||||
client = create_stubbed_client()
|
||||
# publsh connection created message
|
||||
await ws_publish_connection_init(client.ws)
|
||||
## send auth accepted
|
||||
await ws_publish_auth_accepted(client.ws)
|
||||
async def c(order):
|
||||
client.ws._emit('c1', order)
|
||||
callback_wait = EventWatcher.watch(client.ws, 'c1')
|
||||
# override cid generation
|
||||
client.ws.orderManager._gen_unqiue_cid = lambda: 123
|
||||
await client.ws.submit_order('tBTCUSD', 19000, 0.01, 'EXCHANGE MARKET', onClose=c)
|
||||
await client.ws.publish([0,"oc",[123,None,1548262833910,"tBTCUSD",1548262833379,1548262888016,0,-1,"EXCHANGE LIMIT",None,None,None,0,"EXECUTED @ 15980.0(-0.5): was PARTIALLY FILLED @ 15980.0(-0.5)",None,None,15980,15980,0,0,None,None,None,0,0,None,None,None,"API>BFX",None,None,None]])
|
||||
callback_wait.wait_until_complete()
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_confirmed_callback_on_submit_order_closed():
|
||||
client = create_stubbed_client()
|
||||
# publsh connection created message
|
||||
await ws_publish_connection_init(client.ws)
|
||||
## send auth accepted
|
||||
await ws_publish_auth_accepted(client.ws)
|
||||
async def c(order):
|
||||
client.ws._emit('c1', order)
|
||||
callback_wait = EventWatcher.watch(client.ws, 'c1')
|
||||
# override cid generation
|
||||
client.ws.orderManager._gen_unqiue_cid = lambda: 123
|
||||
await client.ws.submit_order('tBTCUSD', 19000, 0.01, 'EXCHANGE MARKET', onConfirm=c)
|
||||
await client.ws.publish([0,"oc",[123,None,1548262833910,"tBTCUSD",1548262833379,1548262888016,0,-1,"EXCHANGE LIMIT",None,None,None,0,"EXECUTED @ 15980.0(-0.5): was PARTIALLY FILLED @ 15980.0(-0.5)",None,None,15980,15980,0,0,None,None,None,0,0,None,None,None,"API>BFX",None,None,None]])
|
||||
callback_wait.wait_until_complete()
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_confirmed_callback_on_submit_new_order():
|
||||
client = create_stubbed_client()
|
||||
# publsh connection created message
|
||||
await ws_publish_connection_init(client.ws)
|
||||
## send auth accepted
|
||||
await ws_publish_auth_accepted(client.ws)
|
||||
async def c(order):
|
||||
client.ws._emit('c1', order)
|
||||
callback_wait = EventWatcher.watch(client.ws, 'c1')
|
||||
# override cid generation
|
||||
client.ws.orderManager._gen_unqiue_cid = lambda: 123
|
||||
await client.ws.submit_order('tBTCUSD', 19000, 0.01, 'EXCHANGE MARKET', onConfirm=c)
|
||||
await client.ws.publish([0,"on",[123,None,1548262833910,"tBTCUSD",1548262833379,1548262833410,-1,-1,"EXCHANGE LIMIT",None,None,None,0,"ACTIVE",None,None,15980,0,0,0,None,None,None,0,0,None,None,None,"API>BFX",None,None,None]])
|
||||
callback_wait.wait_until_complete()
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_confirmed_callback_on_submit_order_update():
|
||||
client = create_stubbed_client()
|
||||
# publsh connection created message
|
||||
await ws_publish_connection_init(client.ws)
|
||||
## send auth accepted
|
||||
await ws_publish_auth_accepted(client.ws)
|
||||
async def c(order):
|
||||
client.ws._emit('c1', order)
|
||||
callback_wait = EventWatcher.watch(client.ws, 'c1')
|
||||
# override cid generation
|
||||
client.ws.orderManager._gen_unqiue_cid = lambda: 123
|
||||
await client.ws.update_order(123, price=100, onConfirm=c)
|
||||
await client.ws.publish([0,"ou",[123,None,1548262833910,"tBTCUSD",1548262833379,1548262846964,-0.5,-1,"EXCHANGE LIMIT",None,None,None,0,"PARTIALLY FILLED @ 15980.0(-0.5)",None,None,15980,15980,0,0,None,None,None,0,0,None,None,None,"API>BFX",None,None,None]])
|
||||
callback_wait.wait_until_complete()
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_confirmed_callback_on_submit_cancel_order():
|
||||
client = create_stubbed_client()
|
||||
# publsh connection created message
|
||||
await ws_publish_connection_init(client.ws)
|
||||
## send auth accepted
|
||||
await ws_publish_auth_accepted(client.ws)
|
||||
async def c(order):
|
||||
client.ws._emit('c1', order)
|
||||
callback_wait = EventWatcher.watch(client.ws, 'c1')
|
||||
# override cid generation
|
||||
client.ws.orderManager._gen_unqiue_cid = lambda: 123
|
||||
await client.ws.cancel_order(123, onConfirm=c)
|
||||
await client.ws.publish([0,"oc",[123,None,1548262833910,"tBTCUSD",1548262833379,1548262888016,0,-1,"EXCHANGE LIMIT",None,None,None,0,"EXECUTED @ 15980.0(-0.5): was PARTIALLY FILLED @ 15980.0(-0.5)",None,None,15980,15980,0,0,None,None,None,0,0,None,None,None,"API>BFX",None,None,None]])
|
||||
callback_wait.wait_until_complete()
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_confirmed_callback_on_submit_cancel_group_order():
|
||||
client = create_stubbed_client()
|
||||
# publsh connection created message
|
||||
await ws_publish_connection_init(client.ws)
|
||||
## send auth accepted
|
||||
await ws_publish_auth_accepted(client.ws)
|
||||
async def c(order):
|
||||
client.ws._emit('c1', order)
|
||||
callback_wait = EventWatcher.watch(client.ws, 'c1')
|
||||
# override cid generation
|
||||
client.ws.orderManager._gen_unqiue_cid = lambda: 123
|
||||
await client.ws.cancel_order_group(123, onConfirm=c)
|
||||
await client.ws.publish([0,"oc",[1548262833910,123,1548262833910,"tBTCUSD",1548262833379,1548262888016,0,-1,"EXCHANGE LIMIT",None,None,None,0,"EXECUTED @ 15980.0(-0.5): was PARTIALLY FILLED @ 15980.0(-0.5)",None,None,15980,15980,0,0,None,None,None,0,0,None,None,None,"API>BFX",None,None,None]])
|
||||
callback_wait.wait_until_complete()
|
||||
|
||||
Reference in New Issue
Block a user