
    ":h&                        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                  j                  ej                  j                  e            Zej                  j                  ej                  j                  e            Zej                  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 jB                         Z"e"jG                  ddd       e"jG                  ddd       e"jG                  ddd       e"jG                  ddd       e"jG                  ddd       e"jG                  ddd       e"jG                  ddd       e"jG                  ddd       e"jG                  ddd       e"jG                  ddd       e"jG                  d dd       e"jG                  d!dd"       e"jG                  d#dd"       e"jG                  d$dd%       e"jG                  d&dd'       e"jG                  d(dd)       e"jG                  d*e$d+d,-       e"jG                  d.e$d/d,-       e"jK                  e 0       ej                  j                  ej                        Z	d1ej                  j                  ej                        v r e&d2      e&Z'd3 Z(e(e_)        d4Z*d5Z+e jX                  Z-d6Z.ed7z   Z/ej`                  Z1d8Z2d9Z3d: Z4 e4d      Z5d; Z6d< Z7d= Z8d> Z9d? Z:d@ Z;dA Z<d[dBZ=dC Z>dD Z?dE Z@dF ZAdG ZBdH ZCdI ZDdJ ZEd\dKZFd]dLZGdM ZHd^dNZId^dOZJd^dPZKdQ ZLdR ZMd*ej                  fdSZOdT ZPdU ZQdV ZRdW ZSdX ZTe j                  ZVe j                  rdYe j                  v re j                  ndZXe j                  rdZe j                  v re j                  ZYydZYy)_    N)	format_tbformat_exception)NotSupported)InvalidProxySettings)OperationFailed)ExchangeNotAvailable)OnMaintenance)AuthenticationErrorc                   P    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y)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     Q/var/www/html/turnos/venv/lib/python3.12/site-packages/ccxt/test/tests_helpers.pyr   r   %   sZ    HLHMNGKG	BGEHFDDIMr"   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           
      j    t        | |ddj                  t        |            z          t        d       y )Nz
<UNHANDLED EXCEPTION>

   )dumpjoinr   exit)r(   value	tracebacks      r#   handle_all_unhandled_exceptionsr3   b   s)    $%59YCW9XYZGr"   pyPYproxiesz
/../../../r,   i'  c                    t        t        |       rt        t        |       nd}d| z   }t        t        |      rt        t        |      nd}| j                  dd      }t        t        |      rt        t        |      nd}|xs |xs |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   w   sv    '.tS'9s#uJ*K;B4;UWT;7[`[[r*N<CD.<Y748_dG/G3GGr"   c            
      p    t        dj                  | D cg c]  }t        |       c}             y c c}w )N )printr/   str)argsr=   s     r#   r.   r.      s%    	#((-CH-
./-s   3c                     | S Nr!   )rG   s    r#   convert_asciirK          Jr"   c                 ,    t        j                  |       S rJ   )jsonloadselems    r#   
json_parserR          ::dr"   c                 ,    t        j                  |       S rJ   )rN   dumpsrP   s    r#   json_stringifyrV      rS   r"   c                 p    t        j                  dd|       j                         }|j                  dd      S )Nz(?<!^)(?=[A-Z])_	o_h_l_c_vohlcv)resublowerr<   )contentress     r#   convert_to_snake_caser`      s/    
&&#S'
2
8
8
:C;;{G,,r"   c                     | S rJ   r!   )
methodNames    r#   get_test_namerc      s    r"   c                 @    t         j                  j                  |       S rJ   )ospathisfilerf   s    r#   io_file_existsri      s    77>>$r"   c                 p    t        | dd      }|j                         }|rt        j                  |      S |S )Nrzutf-8)encoding)openreadrN   rO   )rf   decodefsr^   s       r#   io_file_readrq      s2    	dC'	*BggiGzz'""r"   c                 ,    t        j                  |       S rJ   )re   listdirrh   s    r#   io_dir_readrt      s    ::dr"   c                 L    dt        |      z   } t        | |   |      ||g| S Ntest_r`   r;   
test_filesrb   r   skippedPropertiesrH   methodNameToCalls         r#   call_method_syncr}      s6    !6z!BB<7:j)+;<XGX`[_``r"   c                 h   K   dt        |      z   } t        | |   |      ||g|  d {   S 7 wrv   rx   ry   s         r#   call_methodr      s@     !6z!BBBJ/1AB8M^faeffffs   )202c                 <   K    t        | |      |  d {   S 7 wrJ   r;   r   rb   rH   s      r#    call_exchange_method_dynamicallyr      s      .:.5555s   c                       t        | |      | S rJ   r   r   s      r#   %call_exchange_method_dynamically_syncr      s    (78Z($//r"   c                 8   K   t        | ||       d {   S 7 wrJ   )r   r   s      r#   call_overriden_methodr      s     1(JMMMMs   c           	          dt        |       j                  z   dz   dj                  t        t        |       | | j                  d            z   }t        |      t        kD  r	|dt         }|S )N[z] r8      )limitr   )r(   r   r/   r   __traceback__lenLOG_CHARS_LENGTH)excmessages     r#   exception_messager      sa    DI&&&-8HcTWY\YjYjrs8t0uuG
7|&&!,-Nr"   c                     | S rJ   r!   )r   s    r#   get_root_exceptionr      rL   r"   c                     t        |        y rJ   )r0   )codes    r#   exit_scriptr      s	    Jr"   c                 H    t        | |      rt        | |      }||dk7  r|S |S )Nr8   )r9   r;   )r   propdefaultValuer_   s       r#   get_exchange_propr      s.    xh%?sbyJr"   c                 J    t        | ||       t        | t        |      |       y rJ   )setattrr`   )r   r   r1   s      r#   set_exchange_propr      s     HdE"H+D159r"   c                     t         r t        t        |       |      S |r t        t        |       |      S  t        t        |       |      S rJ   )IS_SYNCHRONOUSr;   	ccxt_syncccxtproccxt)
exchangeIdrH   is_wss      r#   init_exchanger      sD    -wy*-d33+ww
+D11$74$T**r"   c                 N   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        |
      sft        j                  |	      }|||<    |S )Nfeaturesr   asyncr   z
/exchange//zccxt.test.exchange.z.test_proz/../z/test/exchange/zccxt.pro.test.exchange.test_rw   z.py)	PROXY_TEST_FILE_NAMEranger   r`   r   DIR_NAMEri   	importlibimport_module)
propertiesr   testsfinalPropListirb   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F"V+f47HHK:_LM%//AEIO,))-8C #E*$ Lr"   c                 "   K   t        | |      S wrJ   )r   )r   r   s     r#   get_test_filesr      s     z2..s   c                 h   K   t         s&t        | d      r| j                          d {    y y y 7 w)Nclose)r   r9   r   )r   s    r#   r   r      s,     wx9nn  :Ns   &202c                 
    | d u S rJ   r!   )r1   s    r#   is_null_valuer      s    D=r"   c                 L    t         rdfd	}|| _        | S dfd	}|| _        | S )Nc                     S rJ   r!   urlmethodheadersbodydatas       r#   fetchz!set_fetch_response.<locals>.fetch  s    Kr"   c                    K   S wrJ   r!   r   s       r#   r   z!set_fetch_response.<locals>.fetch  s     s   )GETNN)r   r   )r   r   r   s    ` r#   set_fetch_responser      s(    	HNOr"   c                      t         S rJ   )LANGr!   r"   r#   get_langr     s    Kr"   c                      t         S rJ   )EXTr!   r"   r#   get_extr     s    Jr"   c                      t         S rJ   )ROOT_DIRr!   r"   r#   get_root_dirr         Or"   c                      t         S rJ   )ENV_VARSr!   r"   r#   get_env_varsr     r   r"   c                      t         S rJ   )r   r!   r"   r#   is_syncr     s    r"   r   z())T)r   rJ   )F)ZargparserN   re   sysr2   r   r   r   r[   rf   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_argumentrG   
parse_args	ExceptionErrorr3   
excepthookr   r   r   r   r   r   environr   NEW_LINEr   rC   	isWsTestsr.   rK   rR   rV   r`   rc   ri   rq   rt   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Exchanger   r   r   r   r   r   r   argvExchanger   
argvSymbol
argvMethodr!   r"   r#   <module>r      s     	 
 1  	
 77??277??845	wwrwwx01   !  
 * 1 , 1 * 0	6 	* v	 	 	 	"   K;P  Q   OL?W  X   K;N  O   K;R  S   F<6J  K   H\8L  M   J|:L  M   L<N  O   K;O  P   %lAU  V   L<P  Q   $\@S  T   K;N  O   H\	  B   M,_  M   %lAT  U   JS/IQT  U   H3-B#  N   D  ! 
wwt}}%bggoodmm44
  j  k  k 	
 1
   l":: H f%	0-

 ag
60N:+&/	 	 }} KKC4;;,>T[[D
 KKDDKK,?T[[
T
r"   