import os import sys root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) sys.path.append(root) # ---------------------------------------------------------------------------- # PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN: # https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code # ---------------------------------------------------------------------------- # -*- coding: utf-8 -*- import ccxt # noqa: F402 def helper_test_handle_market_type_and_params(): exchange = ccxt.Exchange({ 'id': 'sampleexchange', 'options': { 'defaultType': 'valueFromOptions', 'fetchX': { 'defaultType': 'valueFromMethodOptions', }, }, }) initial_params = { 'defaultType': 'valueFromParam', } market = exchange.safe_market('TEST1/TEST2') market['type'] = 'spot' # # ########### test different variations ########### # # case #1, should prevail: param # [market_type_1, params1] = exchange.handle_market_type_and_params('fetchX', market, initial_params, 'valueDefault') assert 'defaultType' in initial_params assert not ('defaultType' in params1) assert market_type_1 == 'valueFromParam' # # case #2, should prevail: market.type # [market_type_2, params2] = exchange.handle_market_type_and_params('fetchX', market, {}, 'valueDefault') assert market_type_2 == 'spot' # # case #3, should prevail: valueDefault # [market_type_3, params3] = exchange.handle_market_type_and_params('fetchX', None, {}, 'valueDefault') assert market_type_3 == 'valueDefault' # # case #4, should prevail: method options # [market_type_4, params4] = exchange.handle_market_type_and_params('fetchX', None, {}) assert market_type_4 == 'valueFromMethodOptions' # # case #5, should prevail: options # [market_type_5, params5] = exchange.handle_market_type_and_params('fetchY', None, {}, None) assert market_type_5 == 'valueFromOptions' # # case #6, should prevail: spot (because hardcoded in base) # exchange.options['defaultType'] = None [market_type_6, params6] = exchange.handle_market_type_and_params('fetchY', None, {}, None) assert market_type_6 == 'spot' # fake assertion to avoid unused vars assert params1 is not None or params2 is not None or params3 is not None or params4 is not None or params5 is not None or params6 is not None def helper_test_handle_network_request(): exchange = ccxt.Exchange({ 'id': 'sampleexchange', 'options': { 'networks': { 'XYZ': 'Xyz', }, }, }) exchange.currencies = exchange.create_safe_dictionary() # todo: initialize in C# base files currency_code = 'ETH' # todo: in future with complex cases # no-case [request1, params1] = exchange.handle_request_network({ 'network': 'XYZ', }, {}, 'chain_id', currency_code, False) assert not ('network' in params1) assert 'chain_id' in request1 assert request1['chain_id'] == 'Xyz' def test_handle_methods(): helper_test_handle_market_type_and_params() helper_test_handle_network_request()