
    ,h0                        S SK r S SKrS SKrS SKrSSKJr  SSKJr  SSKJr  SSKJ	r	  S'S jr
S'S	 jr " S
 S5      rS'S jrS'S jr " S S5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r\R*                  rS rS rS rS rS rS'S jrS  rS'S! jrS" rS'S# jr S'S$ jr!S'S% jr"S& r#g)(    N   )config   )util)	decorator)inspect_getfullargspecc                 f    [        5       n[        X5      nUR                  R                  U5        U$ N)compound_as_predicateskipsadd	predicatereasonrulepreds       U/var/www/auris/envauris/lib/python3.13/site-packages/sqlalchemy/testing/exclusions.pyskip_ifr      (    :D+DJJNN4K    c                 f    [        5       n[        X5      nUR                  R                  U5        U$ r
   )r   r   failsr   r   s       r   fails_ifr      r   r   c                       \ rS rSrS rS rS rS rS r\	S 5       r
S rS	 rS
 rS r\R                   S 5       rS rSS jrSS jrSrg)r   "   c                 @    [        5       U l        [        5       U l        g r
   )setr   r   selfs    r   __init__compound.__init__#   s    U
U
r   c                 $    U R                  U5      $ r
   )r   r    others     r   __add__compound.__add__'   s    xxr   c                     [        5       nUR                  R                  U R                  5        UR                  R                  U R                  5        U$ r
   )r   r   updater   )r    r   s     r   as_skipscompound.as_skips*   s:    z

$**%

$**%r   c                 T   [        5       nUR                  R                  U R                  5        UR                  R                  U R                  5        U HM  nUR                  R                  UR                  5        UR                  R                  UR                  5        MO     U$ r
   r   r   r)   r   )r    otherscopyr%   s       r   r   compound.add0   sr    z

$**%

$**%EJJekk*JJekk*  r   c                     [        5       nUR                  R                  S U R                   5       5        UR                  R                  S U R                   5       5        U$ )Nc              3   8   #    U  H  n[        U5      v   M     g 7fr
   NotPredicate).0fails     r   	<genexpr> compound.not_.<locals>.<genexpr><        D,t,,   c              3   8   #    U  H  n[        U5      v   M     g 7fr
   r3   )r5   skips     r   r7   r8   =   r9   r:   r-   )r    r/   s     r   not_compound.not_:   sF    z

DDD

DDDr   c                 @    U R                  [        R                  5      $ r
   )enabled_for_configr   _currentr   s    r   enabledcompound.enabled@   s    &&v77r   c                 z    U R                   R                  U R                  5       H  nU" U5      (       d  M    g   g)NFT)r   unionr   r    r   r   s      r   r@   compound.enabled_for_configD   s2    ))$**5I   6 r   c                     U R                   R                  U R                  5       Vs/ s H#  nU" U5      (       d  M  UR                  U5      PM%     sn$ s  snf r
   )r   rE   r   
_as_stringrF   s      r   matching_config_reasons compound.matching_config_reasonsK   sQ     "ZZ--djj9
9	  )I  (9
 	
 
s
   AAc                     U R                   R                  UR                   5        U R                  R                  UR                  5        g r
   )r   r)   r   r$   s     r   _extendcompound._extendR   s.    

%++&

%++&r   c                    ^  [        US5      (       a  UR                  R                  T 5        U$ [        U 4S j5       nU" U5      nT Ul        U$ )N_sa_exclusion_extendc                 N   > TR                   " [        R                  U /UQ70 UD6$ r
   )_dor   rA   )fnargskwr    s      r   decorate#compound.__call__.<locals>.decorate[   s"    88FOOR=$="==r   )hasattrrP   rM   r   )r    rS   rV   	decorateds   `   r   __call__compound.__call__V   sU    2-..##++D1I		> 
	> RL	)-	&r   c              #   R  #    [        5       nUR                  R                  U R                  R	                  U R                  5      5         S v   UR                  [        R                  5        g ! [         a*  nUR                  [        R                  U5         S nAg S nAff = f7fr
   )
r   r   r)   r   rE   _expect_successr   rA   	Exception_expect_failure)r    	all_failsexs      r   fail_ifcompound.fail_ifc   su     J	tzz//

;<	7 %%foo6  	;%%foor::	;s0   A	B'A0  B'0
B$: BB'B$$B'c                 t   U R                    HT  nU" U5      (       d  M  S[        R                  " 5       < SUR                  U5      < 3n[        R                  " U5        MV      U" U0 UD6nU R                  XR                  S9  U$ ! [         a$  nU R                  XUR                  S9   S nAg S nAff = f)N'z' : )name)	r   r   get_current_test_namerI   	skip_testr]   __name__r^   r_   )	r    cfgrS   rT   rU   r<   msgreturn_valuera   s	            r   rR   compound._doo   s    JJDCyy002OOC(   % 	 t?r?L   ;; 7	  	<  r{{ ;	<s   &B	 	
B7B22B7c           	          U R                    H8  nU" U5      (       d  M  [        U< SUR                  U5      < SU< S35          g    UR                  [        R
                  " 5       S   5      e)Nz failed as expected (z):  r   )r   printrI   with_tracebacksysexc_info)r    r   ra   rf   r6   s        r   r_   compound._expect_failure   sY    JJDF||T__V4b:   ##CLLN1$566r   c           
         ^ U R                   (       d  g U R                    HG  nU" T5      (       d  M  [        SU< SSR                  U4S jU R                    5       5      < S35      e   g )NzUnexpected success for 'z' ( and c              3   D   >#    U  H  oR                  T5      v   M     g 7fr
   rI   )r5   r6   r   s     r   r7   +compound._expect_success.<locals>.<genexpr>   s      %@JOOF33
s    ))r   AssertionErrorjoin)r    r   rf   r6   s    `  r   r]   compound._expect_success   sX    zzJJDF||$  %@D

%   r   )r   r   N)block)ri   
__module____qualname____firstlineno__r!   r&   r*   r   r=   propertyrB   r@   rJ   rM   rZ   
contextlibcontextmanagerrb   rR   r_   r]   __static_attributes__ r   r   r   r   "   sl     8 8
' 	7 	7 "	7r   r   c                 B    [        U 5      n [        [        U 5      U5      $ r
   )r   r   r4   r   r   s     r   only_ifr      s    i(I<	*F33r   c                 B    [        U 5      n [        [        U 5      U5      $ r
   )r   r   r4   r   s     r   succeeds_ifr      s    i(IL+V44r   c                   <    \ rS rSr\SS j5       rSS jrS	S jrSrg)
	Predicate   Nc                 J   [        U[        5      (       a  U R                  UR                  U5      $ [        U[        5      (       a  U(       a  UR
                  c  X!l        U$ [        U[        [        45      (       a+  [        U Vs/ s H  o0R                  U5      PM     snU5      $ [        U[        5      (       a  [        U6 $ [        U[        5      (       a  [        R                  " SU5      nU(       d  [        SU-  5      eUR                  S5      nUR                  S5      nUR                  S5      (       a0  [        S UR                  S5      R!                  S5       5       5      OS n[        XVXrS9$ [#        U5      (       a  [%        X5      $  S	U-  5       es  snf )
Nz.([\+\w]+)\s*(?:(>=|==|!=|<=|<|>)\s*([\d\.]+))?z(Couldn't locate DB name in predicate: %rr   r      c              3   8   #    U  H  n[        U5      v   M     g 7fr
   )int)r5   ds     r   r7   )Predicate.as_predicate.<locals>.<genexpr>   s     A&@c!ff&@r:   .)descriptionzunknown predicate type: %s)
isinstancer   as_predicater@   r   r   listr   OrPredicatetupleSpecPredicatestrrematch
ValueErrorgroupsplitcallableLambdaPredicate)clsr   r   r   tokensdbopspecs           r   r   Predicate.as_predicate   sn   i**##I$@$@+NN	9--y44<(3%	D#;//4=>ID!!$'I>  	5)) ),,	3''XXA9F  >J  aBaB <<?? Afll1o&;&;C&@AA  !GGi  "9::B6BB51 ?s   F c                 .   U " U5      nU(       a  U(       + nU R                   U(       a$  UR                  R                  R                  5       OSU(       a$  UR                  R                  R	                  5       OSU(       a  SOSU(       a  SS.-  $ SS.-  $ )Nz<no driver>z<no database>zdoesn't supportzdoes support)driverdatabasedoesnt_supportdoes_support)r   r   urlget_driver_nameget_backend_name)r    r   negatebool_s       r   _format_descriptionPredicate._format_description   s    VJE39		--/} 5;		..038/n.3N	#
 	
 		
 :K	#
 	
 		
r   c                     [        5       er
   )NotImplementedErrorr    r   r   s      r   rI   Predicate._as_string   s    !##r   r   r
   F)NF)	ri   r   r   r   classmethodr   r   rI   r   r   r   r   r   r      s!    !C !CF
$r   r   c                   .    \ rS rSrSS jrS rSS jrSrg)	BooleanPredicate   Nc                 6    Xl         U=(       d    SU-  U l        g )Nz
boolean %s)valuer   )r    r   r   s      r   r!   BooleanPredicate.__init__   s    
&>,*>r   c                     U R                   $ r
   )r   r    r   s     r   rZ   BooleanPredicate.__call__   s    zzr   c                      U R                  XS9$ )Nr   r   r   s      r   rI   BooleanPredicate._as_string   s    '''>>r   )r   r   r
   r   ri   r   r   r   r!   rZ   rI   r   r   r   r   r   r      s    ??r   r   c            	           \ rS rSrS	S jr\R                  \R                  \R                  \R                  \R                  \R                  \R                  S S.rS rS
S jrSrg)r      Nc                 4    Xl         X l        X0l        X@l        g r
   )r   r   r   r   )r    r   r   r   r   s        r   r!   SpecPredicate.__init__   s    	&r   c                 ,    XS   :  =(       a    XS   :*  $ )Nr   r   r   )valpairs     r   <lambda>SpecPredicate.<lambda>   s    SG^%FAw%Fr   )<>z==z!=z<=z>=inbetweenc                    Uc  gUR                   nSU R                   ;   a  U R                   R                  S5      u  p4OU R                   S pCU(       a  UR                  U:w  a  gUb  UR                  U:w  a  gU R                  bp  Ub   S5       e[        U5      n[        U R                  S5      =(       a    U R                  =(       d    U R                  U R                     nU" XPR                  5      $ g)NF+z%DBAPI version specs not supported yetrZ   T)	r   r   rf   r   r   _server_versionrX   _opsr   )r    r   enginedialectr   versionopers          r   rZ   SpecPredicate.__call__   s    >$''>"ggmmC0OGV"ggtVv{{g-&--6"977>J#JJ>%f-G,8NDIIdgg<N  ++r   c                 ^   U R                   b  U R                  U5      $ U R                  c%  U(       a  SU R                  -  $ SU R                  -  $ U(       a,  SU R                  < SU R                  < SU R                  < 3$ U R                  < SU R                  < SU R                  < 3$ )Nznot %sz%sznot ro   )r   r   r   r   r   r   s      r   rI   SpecPredicate._as_string  s}    '++F33WW_$''))dgg~%)-$''499EE%)WWdggtyyAAr   )r   r   r   r   NNNr   )ri   r   r   r   r!   operatorltgteqnelegecontainsr   rZ   rI   r   r   r   r   r   r      sQ    ' [[[[kkkkkkkkF	D6Br   r   c                   .    \ rS rSrSS jrS rSS jrSrg)	r   i&  Nc                   ^ [        T5      nUS   (       d  U4S jU l        OTU l        U=(       d    SU l        U=(       d    0 U l        U(       a  X l        g TR
                  (       a  TR
                  U l        g SU l        g )Nr   c                    > T" 5       $ r
   r   )r   lambda_s    r   r   *LambdaPredicate.__init__.<locals>.<lambda>*  s    gir   r   zcustom function)r   r   rT   rU   r   __doc__)r    r   r   rT   rU   r   s    `    r   r!   LambdaPredicate.__init__'  s\    %g.Aw/DL"DLJB	(*__&D0Dr   c                 $    U R                  U5      $ r
   )r   r   s     r   rZ   LambdaPredicate.__call__6  s    ||F##r   c                 $    U R                  U5      $ r
   r   r   s      r   rI   LambdaPredicate._as_string9  s    ''//r   )rT   r   rU   r   r   r   r   r   r   r   r   r   &  s    1$0r   r   c                   .    \ rS rSrSS jrS rSS jrSrg)	r4   i=  Nc                     Xl         X l        g r
   )r   r   )r    r   r   s      r   r!   NotPredicate.__init__>  s    "&r   c                 .    U R                  U5      (       + $ r
   )r   r   s     r   rZ   NotPredicate.__call__B  s    >>&)))r   c                     U R                   (       a  U R                  X(       + 5      $ U R                  R                  X(       + 5      $ r
   )r   r   r   rI   r   s      r   rI   NotPredicate._as_stringE  s5    ++FJ??>>,,VZ@@r   )r   r   r
   r   r   r   r   r   r4   r4   =  s    '*Ar   r4   c                   >    \ rS rSrS	S jrS rS
S jrS rS
S jrSr	g)r   iL  Nc                     Xl         X l        g r
   )
predicatesr   )r    r   r   s      r   r!   OrPredicate.__init__M  s    $&r   c                 H    U R                    H  nU" U5      (       d  M    g   g)NTF)r   )r    r   r   s      r   rZ   OrPredicate.__call__Q  s!    OODF|| $ r   c                 j   ^^ T(       a  SnOSnUR                  UU4S jU R                   5       5      $ )Nrv   z or c              3   B   >#    U  H  oR                  TTS 9v   M     g7f)r   Nrx   )r5   pr   r   s     r   r7   (OrPredicate._eval_str.<locals>.<genexpr>\  s       
9HALLL/s   )r|   r   )r    r   r   conjunctions    `` r   	_eval_strOrPredicate._eval_strW  s4    !K K  
9= 
 
 	
r   c                 d    U R                   b  SU R                  U5      -   $ U R                  USS9$ )NzNot Tr   )r   r   r	  r   s     r   _negation_strOrPredicate._negation_str`  s7    'D44V<<<>>&>66r   c                     U(       a  U R                  U5      $ U R                  b  U R                  U5      $ U R                  U5      $ r
   )r  r   r   r	  r   s      r   rI   OrPredicate._as_stringf  sB    %%f--+//77~~f--r   )r   r   r
   r   )
ri   r   r   r   r!   rZ   r	  r  rI   r   r   r   r   r   r   L  s    '
7.r   r   c                 B    [        XU5      " [        R                  5      $ r
   )r   r   rA   )r   r   r   s      r   _is_excludedr  s  s    &v77r   c                 ~    U R                  5       n[        U R                  SS5      nUc  SnUR                  5         U$ )z#Return a server_version_info tuple.server_version_infoNr   )connectgetattrr   close)r   connr   s      r   r   r   w  s;     >>Dfnn&;TBGJJLNr   c                  j    [        U  Vs/ s H  n[        R                  U5      PM     sn5      $ s  snf r
   r   r   r   dbsr   s     r   db_specr    s*    SASr	..r2SABBAs   0c                  ,    [        [        SS5      5      $ )NFzmark as executer   r   r   r   r   openr    s    #E+<=>>r   c                  ,    [        [        SS5      5      $ )NTzmarked as skipr  r   r   r   closedr!    s    #D*:;<<r   c                 >    [        [        SU =(       d    S5      5      $ )NTzexpected to failr   r   )r   s    r   r   r     s    $T6+G5GHIIr   c                  ,    [        [        SS5      5      $ )NTzFuture featurer#  r   r   r   futurer%    s    $T+;<==r   c                     [        X5      $ r
   )r   r   r   s     r   fails_onr(    s    Br   c            
      |    [        [        U  Vs/ s H  n[        R                  U5      PM     sn5      5      $ s  snf r
   )r   r   r   r   r  s     r   fails_on_everything_exceptr*    s/    {#M2I$:$:2$>#MNOO#Ms   9c                     [        X5      $ r
   )r   r'  s     r   r<   r<     s    2r   c                     [        [        [        R                  " U 5       Vs/ s H  n[        R                  X!5      PM     sn5      5      $ s  snf r
   )r   r   r   to_listr   r   )r  r   r   s      r   only_onr.    sB    :>,,s:KL:KBY##B/:KL	
 Ls   Ac                 .    [        [        XU5      U5      $ r
   )r   r   )r   r   r   r   s       r   excluder0    s    =.77r   c                     U(       d   S5       e[        U Vs/ s H  n[        R                  U5      PM     sn5      " U 5      $ s  snf )Nzno queries sent!r  )r   queriesquerys      r   againstr4    sB    &&&77K7%	..u57KL Ks   Ar
   )$r   r   r   rr    r   r   r   util.compatr   r   r   r   r   r   r   r   r   r   r4   r   r   r   r  r   r  r  r!  r   r%  r(  r*  r<   r.  r0  r4  r   r   r   <module>r7     s      	 
    0w wt4
5
5$ 5$p	?y 	?9BI 9Bx0i 0.A9 A!.) !.H &&8	C?=J> P8r   