mirror of
https://github.com/hydrosquall/tiingo-python.git
synced 2025-12-17 20:04:19 +01:00
45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
import os
|
|
from unittest import TestCase,mock
|
|
from tiingo.wsclient import TiingoWebsocketClient
|
|
from tiingo.exceptions import MissingRequiredArgumentError
|
|
|
|
class TestRestClientWithSession(TestCase):
|
|
def setUp(self):
|
|
|
|
def msg_cb(msg):
|
|
print(msg)
|
|
|
|
self.cb=msg_cb
|
|
|
|
self.config = {
|
|
'eventName':'subscribe',
|
|
'authorization':os.getenv("TIINGO_API_KEY"),
|
|
#see https://api.tiingo.com/documentation/websockets/iex > Request for more info
|
|
'eventData': {
|
|
'thresholdLevel':5
|
|
}
|
|
}
|
|
|
|
# test for missing or incorrectly supplied endpoints
|
|
def test_missing_or_wrong_endpoint(self):
|
|
with self.assertRaises(AttributeError) as ex:
|
|
TiingoWebsocketClient(config=self.config,on_msg_cb=self.cb)
|
|
self.assertTrue(type(ex.exception)==AttributeError)
|
|
|
|
with self.assertRaises(AttributeError) as ex:
|
|
TiingoWebsocketClient(config=self.config,endpoint='wq',on_msg_cb=self.cb)
|
|
self.assertTrue(type(ex.exception)==AttributeError)
|
|
|
|
# test for missing callback argument
|
|
def test_missing_msg_cb(self):
|
|
with self.assertRaises(MissingRequiredArgumentError) as ex:
|
|
TiingoWebsocketClient(config=self.config,endpoint='iex')
|
|
self.assertTrue(type(ex.exception)==MissingRequiredArgumentError)
|
|
|
|
# test for missing API keys in config dict and in os env
|
|
def test_missing_api_key(self):
|
|
with mock.patch.dict(os.environ, {}, clear=True): #clear env vars including the TIINGO_API_KEY
|
|
with self.assertRaises(RuntimeError) as ex:
|
|
TiingoWebsocketClient(config={},endpoint='iex',on_msg_cb=self.cb)
|
|
self.assertTrue(type(ex.exception)==RuntimeError)
|