g0zddlZddlZddlZddlZddlmZddlmZddlmZddlm Z d'dZ d'd Z Gd d Z d'd Z d'd ZGddZGddeZGddeZGddeZGddeZGddeZej*ZdZdZdZdZdZd'dZd Zd'd!Zd"Zd'd#Z d'd$Z!d'd%Z"d&Z#y)(N)config)util) decorator)inspect_getfullargspeccht}t||}|jj||SN)compound _as_predicateskipsadd predicatereasonrulepreds N/opt/hc_python/lib64/python3.12/site-packages/sqlalchemy/testing/exclusions.pyskip_ifr* :D F +DJJNN4 Kcht}t||}|jj||Sr )r r failsrrs rfails_ifrrrceZdZdZdZdZdZdZedZ dZ dZ d Z d Z ejd Zd Zdd ZddZy)r c@t|_t|_yr )setrr selfs r__init__zcompound.__init__#sU U rc$|j|Sr )rrothers r__add__zcompound.__add__'sxxrct}|jj|j|jj|j|Sr )r r updater)rrs ras_skipszcompound.as_skips*s:z $**% $**% rcPt}|jj|j|jj|j|D]L}|jj|j|jj|jN|Sr r rr&r )rotherscopyr#s rrz compound.add0srz $**% $**%E JJ  ekk * JJ  ekk * rct}|jjd|jD|jjd|jD|S)Nc32K|]}t|ywr  NotPredicate).0fails r z compound.not_..<D,t,c32K|]}t|ywr r.)r0skips rr2z compound.not_..=r3r4r))rr+s rnot_z compound.not_:sFz DDD DDD rc@|jtjSr )enabled_for_configr_currentrs renabledzcompound.enabled@s&&v77rcl|jj|jD] }||s yy)NFT)r unionrrrrs rr9zcompound.enabled_for_configDs/))$**5I 6rc|jj|jDcgc]}||r|j|c}Scc}wr )r r=r _as_stringr>s rmatching_config_reasonsz compound.matching_config_reasonsKsO"ZZ--djj9 9     (9   s A c|jj|j|jj|jyr )r r&rr"s r_extendzcompound._extendRs. %++& %++&rct|dr|jj|Stfd}||}|_|S)N_sa_exclusion_extendcNjtj|g|i|Sr )_dorr:)fnargskwrs rdecoratez#compound.__call__..decorate[s$488FOOR=$="= =r)hasattrrErCr)rrHrK decorateds` r__call__zcompound.__call__VsR 2- .  # # + +D 1I  >  >RL )- &rc#PKt}|jj|jj |j d|j t jy#t$r*}|jt j|Yd}~yd}~wwxYwwr ) r rr&r r=_expect_successrr: Exception_expect_failure)r all_failsexs rfail_ifzcompound.fail_ifcsvJ tzz// ;< 7   % %foo 6 ;  % %foor : : ;s0A B& A0 B&0 B#9 BB&B##B&cj|jD]I}||s dtjd|j|}tj|K ||i|}|j ||j |S#t$r(}|j|||j Yd}~yd}~wwxYw)N'z' : )name) r rget_current_test_namer@ skip_testrP__name__rQrR) rcfgrHrIrJr6msg return_valuerTs rrGz compound._doosJJDCy002OOC(  %  t?r?L  2;; 7   <  br{{ ; ; }|s td|ddjfd|jDdy)NzUnexpected success for 'z' ( and c3@K|]}|jywr r@)r0r1rs rr2z+compound._expect_success..s%@JDOOF3 s))rAssertionErrorjoin)rrrXr1s ` rrPzcompound._expect_successsVzz JJDF|$ %@D %rN)block)r[ __module__ __qualname__r r$r'rr7propertyr;r9rArCrN contextlibcontextmanagerrUrGrRrPrrr r "sl  88 '  7 7 " 7rr cBt|}tt||Sr )r rr/rrs ronly_ifrusi(I < *F 33rcBt|}tt||Sr )r rr/rts r succeeds_ifrwsi(I L+V 44rc.eZdZeddZddZddZy) PredicateNct|tr|j|j|St|tr|r|j ||_|St|t tfr)t|Dcgc]}|j|c}|St|trt|St|trtjd|}|std|z|jd}|jd}|jdr0td|jdj!dDnd}t||||St#|r t%||SJd |zcc}w) Nz.([\+\w]+)\s*(?:(>=|==|!=|<=|<|>)\s*([\d\.]+))?z(Couldn't locate DB name in predicate: %rrrc32K|]}t|ywr )int)r0ds rr2z)Predicate.as_predicate..sA&@c!f&@r4.) descriptionzunknown predicate type: %s) isinstancer as_predicater9ryrlistr OrPredicatetuple SpecPredicatestrrematch ValueErrorgroupsplitcallableLambdaPredicate)clsrrrtokensdbopspecs rrzPredicate.as_predicatesd i *##I$@$@+N N  9 -y44<(3 %   D#; /4=>ID!!$'I>   5 ) ), ,  3 'XXA9F >JaBaB<<?Afll1o&;&;C&@AA  !R;G G i "9k: : B6B B51?s3E6c||}|r| }|j|r$|jjjnd|r$|jjj nd|rdnd|rddzSddzS)Nz z zdoesn't supportz does support)driverdatabasedoesnt_support does_support)rrurlget_driver_nameget_backend_name)rrnegatebool_s r_format_descriptionzPredicate._format_descriptionsV  JE39 --/}5; ..038/n.3N #  :K #  rctr )NotImplementedErrorrrrs rr@zPredicate._as_strings !##rr F)NF)r[rmrn classmethodrrr@rrrrryrys!!C!CF  $rryc"eZdZddZdZddZy)BooleanPredicateNc.||_|xsd|z|_y)Nz boolean %s)valuer)rrrs rr zBooleanPredicate.__init__s &>,*>rc|jSr )rrrs rrNzBooleanPredicate.__call__s zzrc(|j||S)Nrrrs rr@zBooleanPredicate._as_strings''v'>>rr rr[rmrnr rNr@rrrrrrs??rrc eZdZddZej ej ejejejejejddZ dZ ddZy) rNc<||_||_||_||_yr )rrrr)rrrrrs rr zSpecPredicate.__init__s &rc&||dk\xr||dkS)Nrrrr)valpairs rzSpecPredicate.sSDG^%FtAw%Fr)<>z==z!=z<=z>=inbetweenc|y|j}d|jvr|jjd\}}n|jd}}|r|j|k7ry||j|k7ry|jf|Jdt |}t |jdxr |jxs|j|j}|||jSy)NF+z%DBAPI version specs not supported yetrNT) rrrXrr_server_versionrL_opsr)rrenginedialectrversionopers rrNzSpecPredicate.__call__s > $''>"ggmmC0OGV"ggtVG v{{g-  &--6"9 77 > J#J J>%f-G,8NDIIdgg.*sgirrrzcustom function)rrrIrJr__doc__)rrrrIrJrs ` rr zLambdaPredicate.__init__'s^%g.Aw/DL"DLJB ( *D  __&D 0D rc$|j|Sr )rrs rrNzLambdaPredicate.__call__6s||F##rc$|j|Sr rrs rr@zLambdaPredicate._as_string9s''//rrrrrrrrrr&s 1$0rrc"eZdZddZdZddZy)r/Nc ||_||_yr )rr)rrrs rr zNotPredicate.__init__>s"&rc&|j| Sr )rrs rrNzNotPredicate.__call__Bs>>&)))rcz|jr|j|| S|jj|| Sr )rrrr@rs rr@zNotPredicate._as_stringEs9   ++FJ? ?>>,,VZ@ @rr rrrrrrr/r/=s'*Arr/c0eZdZddZdZddZdZddZy) rNc ||_||_yr ) predicatesr)rrrs rr zOrPredicate.__init__Ms$&rc:|jD] }||s yy)NTF)r)rrrs rrNzOrPredicate.__call__QsOODF|$rc^rd}nd}|jfd|jDS)Nrfz or c3DK|]}|jyw)rNrh)r0prrs rr2z(OrPredicate._eval_str..\s" 9HAALLL /s )rkr)rrr conjunctions `` r _eval_strzOrPredicate._eval_strWs4 !K K 9=   rch|jd|j|zS|j|dS)NzNot Tr)rrrrs r _negation_strzOrPredicate._negation_str`s7    'D44V<< <>>&>6 6rc|r|j|S|j|j|S|j|Sr )rrrrrs rr@zOrPredicate._as_stringfsB %%f- -+//77~~f--rr r)r[rmrnr rNrrr@rrrrrrLs'  7 .rrcDt|||tjSr )rrr:)rrrs r _is_excludedrss &=R &v 77rc||j}t|jdd}|d}|j|S)z#Return a server_version_info tuple.server_version_infoNrr)connectgetattrrclose)rconnrs rrrws; >> Dfnn&;TBGJJL Nrcdt|Dcgc]}tj|c}Scc}wr rryrdbsrs rdb_specrs* SASr ..r2SA BBAs-c,ttddS)NFzmark as executerrrrrropenrs #E+<= >>rc,ttddS)NTzmarked as skiprrrrrclosedrs #D*:; <#MN OO#Ms6 ct||Sr )rrs rr6r6s 2v rc tttj|Dcgc]}tj ||c}Scc}wr )rurrto_listryr)rrrs ronly_onrsD :>,,s:K L:KBY # #B /:K L   LsA c0tt||||Sr )rr)rrrrs rexcluders =R. 77rc |sJdt|Dcgc]}tj|c}|Scc}w)Nzno queries sent!r)rqueriesquerys ragainstrsD &&&7 L;7K7% ..u57K L Ks< r )$rprrrcrrr util.compatrrrr rurwryrrrr/rrr rrrrrrrrrr6rrrrrrrrs 0wwt4 5 5$5$p ?y ?9BI9Bx0i0. A9 A!.)!.H&& 8 C?=J> P8r