feat期权标的白名单:可固定只显示 ETH 或 BTC。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
import unittest
|
||||
|
||||
from lib.options.options_underly_lib import (
|
||||
inst_underly_not_allowed_msg,
|
||||
parse_options_underlyings,
|
||||
resolve_default_underly,
|
||||
underly_not_allowed_msg,
|
||||
)
|
||||
|
||||
|
||||
class OptionsUnderlyLibTests(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self._old_u = os.environ.get("OKX_OPTIONS_UNDERLYINGS")
|
||||
self._old_d = os.environ.get("OKX_OPTIONS_DEFAULT_UNDERLY")
|
||||
|
||||
def tearDown(self):
|
||||
self._restore("OKX_OPTIONS_UNDERLYINGS", self._old_u)
|
||||
self._restore("OKX_OPTIONS_DEFAULT_UNDERLY", self._old_d)
|
||||
|
||||
@staticmethod
|
||||
def _restore(key: str, val: str | None) -> None:
|
||||
if val is None:
|
||||
os.environ.pop(key, None)
|
||||
else:
|
||||
os.environ[key] = val
|
||||
|
||||
def test_default_both(self):
|
||||
os.environ.pop("OKX_OPTIONS_UNDERLYINGS", None)
|
||||
self.assertEqual(parse_options_underlyings(), ["ETH", "BTC"])
|
||||
|
||||
def test_eth_only(self):
|
||||
os.environ["OKX_OPTIONS_UNDERLYINGS"] = "ETH"
|
||||
self.assertEqual(parse_options_underlyings(), ["ETH"])
|
||||
self.assertIsNone(underly_not_allowed_msg("ETH"))
|
||||
self.assertIsNotNone(underly_not_allowed_msg("BTC"))
|
||||
self.assertIsNotNone(inst_underly_not_allowed_msg("BTC-USD-260328-100000-C"))
|
||||
|
||||
def test_default_clamped_to_whitelist(self):
|
||||
os.environ["OKX_OPTIONS_UNDERLYINGS"] = "BTC"
|
||||
os.environ["OKX_OPTIONS_DEFAULT_UNDERLY"] = "ETH"
|
||||
self.assertEqual(resolve_default_underly(), "BTC")
|
||||
|
||||
def test_ignores_junk(self):
|
||||
os.environ["OKX_OPTIONS_UNDERLYINGS"] = "ETH, DOGE ,btc"
|
||||
self.assertEqual(parse_options_underlyings(), ["ETH", "BTC"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user