
    ei'                        d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlZd dl	Z	ej
                            ej
                            e                    Zej
                            ej
                            e                    Zej
                            e           d dlmZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ  G d	 d
e          Z  e             Z! e j"                    Z#e#$                    ddd           e#$                    ddd           e#$                    ddd           e#$                    ddd           e#$                    ddd           e#$                    ddd           e#$                    ddd           e#$                    ddd           e#$                    ddd           e#$                    ddd           e#$                    d dd           e#$                    d!dd"           e#$                    d#dd"           e#$                    d$dd%           e#$                    d&dd'           e#$                    d(dd)           e#$                    d*e%d+d,-           e#$                    d.e%d/d,-           e#&                    e!0           ej
                            ej                  Z
d1ej
                            ej                  v r e'd2          e'Z(d3 Z)e)e_*        d4Z+d5Z,e!j-        Z.d6Z/ed7z   Z0ej1        Z2d8Z3d9Z4d: Z5 e5d          Z6d; Z7d< Z8d= Z9d> Z:d? Z;d@ Z<dA Z=dadCZ>dD Z?dE Z@dF ZAdG ZBdH ZCdI ZDdJ ZEdK ZFdbdLZGdcdMZHdN ZIdddPZJdddQZKdddRZLdS ZMdT ZNd*ejO        fdUZPdV ZQdW ZRdX ZSdY ZTdZ ZUd[eVfd\ZWd[eVfd]ZXd[eVfd^ZYe!jZ        Z[e!j\        rd_e!j\        v re!j\        ndZ]e!j\        rd`e!j\        v re!j\        ndZ^dS )e    N)	format_tbformat_exception)NotSupported)InvalidProxySettings)OperationFailed)ExchangeNotAvailable)OnMaintenance)AuthenticationErrorc                   R    e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdZdZdZdZdZdS )ArgvFN)__name__
__module____qualname__id_testsstatic_testsws_testsrequest_testsresponse_testssandboxprivateOnlyprivatewsverbosenonceexchangesymbolinfosync	baseTestsexchangeTests     U/var/www/html/volatility/venv/lib/python3.11/site-packages/ccxt/test/tests_helpers.pyr   r   &   sd        HLHMNGKG	BGEHFDDIMDr"   r   z	--sandbox
store_truezenable sandbox mode)actionhelpz--privateOnlyzrun private tests onlyz	--privatezrun private testsz	--verbosezenable verbose outputz--wszwebsockets versionz--infozenable info outputz--staticzrun static testsz
--useProxyz	--idTestszrun brokerId testsz--responseTestszrun response testsz
--responsez--requestTestszrun request testsz	--requestz--synczis syncz--baseTestszis base testsz--exchangeTestszis exchange testsr   zexchange id in lowercase?)typer&   nargsr   zsymbol in uppercase)	namespacezsite-packagesa  You are running tests_async.py/test.py against a globally-installed version of the library! It was previously installed into your site-packages folder by pip or pip3. To ensure testing against the local folder uninstall it first with pip uninstall ccxt or pip3 uninstall ccxtc                     t          d| |dd                    t          |                    z              t          d           d S )Nz[TEST_FAILURE]z
<UNHANDLED EXCEPTION>

   )dumpjoinr   exit)r(   value	tracebacks      r#   handle_all_unhandled_exceptionsr3   c   sB    	DE,G499U^_hUiUiKjKj,klllGGGGGr"   pyPYproxiesz
/../../../r,   i'  c                 L   t          t          |           rt          t          |           nd}d| z   }t          t          |          rt          t          |          nd}|                     dd          }t          t          |          rt          t          |          nd}|p|p|S )NFz-- )hasattrargvgetattrreplace)arg
arg_existswith_hyphenarg_exists_with_hyphenwithout_hyphenarg_exists_wo_hyphens         r#   get_cli_arg_valuerC   x   s    '.tS'9'9Ds###uJ*K;B4;U;U`WT;777[`[[r**N<CD.<Y<Yd74888_dG/G3GGr"   c                  ^    t          d                    d | D                                  d S )N c                 ,    g | ]}t          |          S r!   str).0r=   s     r#   
<listcomp>zdump.<locals>.<listcomp>   s    ---CHH---r"   )printr/   )argss    r#   r.   r.      s1    	#((-----
.
./////r"   c                     | S Nr!   rG   s    r#   convert_asciirO          Jr"   c                 *    t          j        |           S rN   )jsonloadselems    r#   
json_parserV          :dr"   c                 *    t          j        |           S rN   )rR   dumpsrT   s    r#   json_stringifyrZ      rW   r"   c                 ~    t          j        dd|                                           }|                    dd          S )Nz(?<!^)(?=[A-Z])_	o_h_l_c_vohlcv)resublowerr<   )contentress     r#   convert_to_snake_caserd      s6    
&#S'
2
2
8
8
:
:C;;{G,,,r"   c                     | S rN   r!   )
methodNames    r#   get_test_namerg      s    r"   c                 @    t           j                            |           S rN   )ospathisfilerj   s    r#   io_file_existsrm      s    7>>$r"   Tc                 ~    t          | dd          }|                                }|rt          j        |          S |S )Nrzutf-8)encoding)openreadrR   rS   )rj   decodefsrb   s       r#   io_file_readru      s@    	dC'	*	*	*BggiiG z'"""r"   c                 *    t          j        |           S rN   )ri   listdirrl   s    r#   io_dir_readrx      s    :dr"   c                 b    dt          |          z   } t          | |         |          ||g|R  S Ntest_rd   r;   
test_filesrf   r   skippedPropertiesrL   methodNameToCalls         r#   call_method_syncr      sB    !6z!B!BB<7:j)+;<<XGX`[_````r"   c                 r   K   dt          |          z   } t          | |         |          ||g|R   d {V S rz   r|   r}   s         r#   call_methodr      sX      !6z!B!BBBJ/1ABB8M^faeffffffffffr"   c                 8   K    t          | |          |  d {V S rN   r;   r   rf   rL   s      r#    call_exchange_method_dynamicallyr      s/      .:..55555555r"   c                 (     t          | |          | S rN   r   r   s      r#   %call_exchange_method_dynamically_syncr      s    (78Z(($//r"   c                 4   K   t          | ||           d {V S rN   )r   r   s      r#   call_overriden_methodr      s*      1(JMMMMMMMMMr"   c           	          dt          |           j        z   dz   d                    t          t          |           | | j        d                    z   }t          |          t          k    r|dt                   }|S )N[z] r8      )limitr   )r(   r   r/   r   __traceback__lenLOG_CHARS_LENGTH)excmessages     r#   exception_messager      sp    DII&&-8HcTWY\Yjrs8t8t8t0u0uuG
7||&&&!,,-Nr"   c                     | S rN   r!   )r   s    r#   get_root_exceptionr      rP   r"   c                 $    t          |            d S rN   )r0   )codes    r#   exit_scriptr      s    JJJJJr"   c                 Z    t          | |          rt          | |          }||dk    r|S |S )Nr8   )r9   r;   )r   propdefaultValuerc   s       r#   get_exchange_propr      s;    x h%%?sbyyJr"   c                 d    t          | ||           t          | t          |          |           d S rN   )setattrrd   )r   r   r1   s      r#   set_exchange_propr      s5    HdE"""H+D11599999r"   Fc                     t           r t          t          |           |          S |r t          t          |           |          S  t          t          |           |          S rN   )IS_SYNCHRONOUSr;   	ccxt_syncccxtproccxt)
exchangeIdrL   is_wss      r#   init_exchanger      s`     4-wy*--d333 2+ww
++D111$74$$T***r"   c                 t   i }| t           dgz   }t          dt          |                    D ]}||         }t          |          }t          sdnd}t
          dz   |z   dz   }d|z   dz   |z   }	|rd	}t
          d
z   |z   dz   }d|z   }	|dz   |z   dz   }
t          |
          rt          j        |	          }|||<   |S )Nfeaturesr   asyncr   z
/exchange//zccxt.test.exchange.z.test_proz/../z/test/Exchange/zccxt.pro.test.Exchange.test_r{   z.py)	PROXY_TEST_FILE_NAMEranger   rd   r   DIR_NAMErm   	importlibimport_module)
propertiesr   testsfinalPropListirf   name_snake_caseprefixdir_to_testmodule_stringfilePathWithExtimps               r#   get_test_files_syncr      s    E"6
!CCM1c-(()) $ $"1%
/
;; .:F-6<-6AOS 	MF"V+f47HHK:_LM%//AEIO,, 	$)-88C #E*Lr"   c                 &   K   t          | |          S rN   )r   )r   r   s     r#   get_test_filesr      s      z2...r"   c                 t   K   t           s,t          | d          r|                                  d {V  d S d S d S )Nclose)r   r9   r   )r   s    r#   r   r      s[       wx99 nn   r"   c                 
    | d u S rN   r!   )r1   s    r#   is_null_valuer      s    D=r"   c                 N    t           rdfd	}|| _        | S dfd	}|| _        | S )NGETc                     S rN   r!   urlmethodheadersbodydatas       r#   fetchz!set_fetch_response.<locals>.fetch  s    Kr"   c                    K   S rN   r!   r   s       r#   r   z!set_fetch_response.<locals>.fetch  s      r"   )r   NN)r   r   )r   r   r   s    ` r#   set_fetch_responser     s_     	 	 	 	 	 	     HNOr"   c                      t           S rN   )LANGr!   r"   r#   get_langr     s    Kr"   c                      t           S rN   )EXTr!   r"   r#   get_extr     s    Jr"   c                      t           S rN   )ROOT_DIRr!   r"   r#   get_root_dirr         Or"   c                      t           S rN   )ENV_VARSr!   r"   r#   get_env_varsr     r   r"   c                      t           S rN   )r   r!   r"   r#   is_syncr     s    r"   returnc                  @    t           j                            d          S )Nwinsysplatform
startswithr!   r"   r#   
is_windowsr     s    <""5)))r"   c                  @    t           j                            d          S )Nlinuxr   r!   r"   r#   is_linuxr     s    <""7+++r"   c                  0    t          j                    } | dv S )N)x86_64AMD64amd64)r   machine)ms    r#   is_amd64r   !  s    A,,,r"   r   z())T)r   rN   )F)_argparserR   ri   r   r   r2   r   r   r   r_   rj   dirnameabspath__file__r   rootappendccxt.async_supportasync_supportr   r   ccxt.pror   r   ccxt.base.errorsr   r   r   r   r	   r
   objectr   r:   ArgumentParserparseradd_argumentrH   
parse_args	ExceptionErrorr3   
excepthookr   r   r   r   r   r   environr   NEW_LINEr   rC   	isWsTestsr.   rO   rV   rZ   rd   rg   rm   ru   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Exchanger   r   r   r   r   r   boolr   r   r   r   argvExchanger   
argvSymbol
argvMethodr!   r"   r#   <module>r     s     				  



 1 1 1 1 1 1 1 1     				
 7??27??84455	wrwx0011     ! ! ! ! ! !          
 * ) ) ) ) ) 1 1 1 1 1 1 , , , , , , 1 1 1 1 1 1 * * * * * * 0 0 0 0 0 0	 	 	 	 	6 	 	 	* tvv	 	 	"	"   K;P  Q Q Q   OL?W  X X X   K;N  O O O   K;R  S S S   F<6J  K K K   H\8L  M M M   J|:L  M M M   L<N  O O O   K;O  P P P   %lAU  V V V   L<P  Q Q Q   $\@S  T T T   K;N  O O O   H\	  B B B   M,_  M M M   %lAT  U U U   JS/IQT  U U U   H3-B#  N N N   D  ! ! ! 
wt}%%bgoodm4444
)  j  k  k  k 	  
 1
   l": H H H f%%	0 0 0      - - -
  
          a a ag g g
6 6 60 0 0N N N          : : :+ + + +   &/ / / /    	 	 	 	 	          *D * * * *,$ , , , ,-$ - - - - } KHC4;,>,>T[[D
 KIDDK,?,?T[[T


r"   