47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
|
import trio
|
||
|
import pytest
|
||
|
import tractor
|
||
|
|
||
|
from piker import config
|
||
|
|
||
|
from piker.brokers.deribit import api as deribit
|
||
|
from piker.brokers.deribit.api import _testnet_ws_url
|
||
|
|
||
|
from piker._cacheables import open_cached_client
|
||
|
|
||
|
|
||
|
TESTNET_KEY_ID: str | None = None
|
||
|
TESTNET_KEY_SECRET: str | None = None
|
||
|
|
||
|
@pytest.mark.skipif(
|
||
|
not TESTNET_KEY_ID or not TESTNET_KEY_SECRET,
|
||
|
reason='configure a deribit testnet key pair before running this test'
|
||
|
)
|
||
|
def test_deribit_get_ticker(open_test_pikerd):
|
||
|
|
||
|
async def _test_main():
|
||
|
async with open_test_pikerd() as _:
|
||
|
async with open_cached_client('deribit') as client:
|
||
|
|
||
|
symbols = await client.symbol_info()
|
||
|
|
||
|
syms = list(symbols.keys())
|
||
|
sym = syms[int(len(syms) / 2)]
|
||
|
|
||
|
async with deribit.maybe_open_ticker_feed(sym) as tick_stream:
|
||
|
async for typ, msg in tick_stream:
|
||
|
assert typ == 'ticker'
|
||
|
assert 'open_interest' in msg['data']
|
||
|
break
|
||
|
|
||
|
|
||
|
|
||
|
config.write({
|
||
|
'deribit': {
|
||
|
'ws_url': _testnet_ws_url,
|
||
|
'key_id': TESTNET_KEY_ID,
|
||
|
'key_secret': TESTNET_KEY_SECRET
|
||
|
}
|
||
|
})
|
||
|
trio.run(_test_main)
|