ó
    øÞ js@  ã                   ó  • S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKr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  \R*                  S 5       rS r " S	 S
\" \R2                  5      5      r " S S\R2                  \S9rSqS S jrS S jrS S jrS rS SSSSSSSS\R@                  \RB                  \RD                  S.S jjr# " S S\5      r$ " S S\$5      r%S r& " S S\$5      r' " S S\$5      r(g)!é    N©Úcluster)Ú
connection)Úpoolé   )Úfuzzerc               #   ó¸   #   • S n [         R                  " S5      nUR                  U 5         S v •  UR                  U 5        g ! UR                  U 5        f = f7f)Nc                 óN   • U R                  5       nUR                  S5      (       + $ )Nz
Executing )Ú
getMessageÚ
startswith)Ú
log_recordÚmsgs     ÚT/var/www/html/gaurav/venv/lib/python3.13/site-packages/asyncpg/_testbase/__init__.pyÚfltÚ.silence_asyncio_long_exec_warning.<locals>.flt    s"   € Ø×#Ñ#Ó%ˆØ—>‘> ,Ó/Ô/Ð/ó    Úasyncio)ÚloggingÚ	getLoggerÚ	addFilterÚremoveFilter)r   Úloggers     r   Ú!silence_asyncio_long_exec_warningr      sN   é € ò0ô ×Ò˜yÓ)€FØ
×Ñ�SÔð!Ûà×Ñ˜CÕ øˆ×Ñ˜CÕ üs   ‚+A®A ²AÁAÁAc                 ó   ^ • U 4S jnU$ )Nc                 ó   >• TU l         U $ ©N)Ú__timeout__)ÚfuncÚtimeouts    €r   ÚwrapÚwith_timeout.<locals>.wrap-   s   ø€ Ø"ˆÔØˆr   © )r   r    s   ` r   Úwith_timeoutr#   ,   s   ø€ õð €Kr   c                   ó<   ^ • \ rS rSrSr\S 5       rU 4S jrSrU =r	$ )ÚTestCaseMetaé4   Nc              #   ór  #   • U  HZ  n[        U5       HH  nUR                  S5      (       d  M  [        X#5      n[        R                  " U5      (       d  MC  X44v •  MJ     M\     UR                  5        H?  u  p4UR                  S5      (       d  M  [        R                  " U5      (       d  M:  X44v •  MA     g 7f)NÚtest_)Údirr   ÚgetattrÚinspectÚiscoroutinefunctionÚitems)ÚbasesÚnsÚbaseÚmethnameÚmeths        r   Ú_iter_methodsÚTestCaseMeta._iter_methods7   s›   é € ãˆDÜ žI�Ø×*Ñ*¨7×3Ñ3Ùä˜tÓ.�Ü×2Ò2°4×8Ñ8Ùà�nÔ$ó &ñ ð !Ÿh™hžj‰NˆHØ×&Ñ& w×/Ñ/Ùä×.Ò.¨t×4Ñ4Ùà�.Ô ò )ùs   ‚B5B7c                 óª   >^ • T R                  X#5       H,  u  pE[        R                  " U5      US.U 4S jj5       nXcU'   M.     [        TT ]  T XU5      $ )N)Ú__meth__c                óh  >• U" U /UQ70 UD6n[        USTR                  5      nU(       a3  [        R                  " XE5      n U R                  R                  U5        g U R                  R                  U5        g ! [        R                   a"    U R                  SR                  U5      5      S ef = f)Nr   ztest timed out after {} seconds)	r*   ÚTEST_TIMEOUTr   Úwait_forÚloopÚrun_until_completeÚTimeoutErrorÚfailureExceptionÚformat)Úselfr6   ÚargsÚkwargsÚcoror   Úmclss         €r   ÚwrapperÚ%TestCaseMeta.__new__.<locals>.wrapperO   s§   ø€ á Ð6 tÒ6¨vÑ6�Ü! (¨M¸4×;LÑ;LÓM�ÞÜ"×+Ò+¨DÓ:�Dð4ØŸ	™	×4Ñ4°TÕ:ð —I‘I×0Ñ0°Õ6øô #×/Ñ/ó 4Ø"×3Ñ3Ø=×DÑDØ 'ó)ó*à/3ð4ð4ús   ÁA; Á;6B1)r3   Ú	functoolsÚwrapsÚsuperÚ__new__)rC   Únamer.   r/   r1   r2   rD   Ú	__class__s   `      €r   rI   ÚTestCaseMeta.__new__M   sV   ù€ Ø"×0Ñ0°Ö;‰NˆHÜ�_Š_˜TÓ"Ø.2÷ 7ó #ð7ð #ˆx‹Lñ <ô" ‰w‰˜t T°"Ó5Ð5r   r"   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r8   Ústaticmethodr3   rI   Ú__static_attributes__Ú__classcell__©rK   s   @r   r%   r%   4   s$   ø† Ø€Làñ!ó ð!÷*6ó 6r   r%   c                   óœ   • \ rS rSr\S 5       r\S 5       rS rS r\	R                  S 5       r\	R                  S\4S j5       rS	 rS
 rSrg)ÚTestCaseéb   c                 óþ   • [         R                  R                  S5      (       a(  SS Kn[        R
                  " UR                  5       5        [        R                  " 5       n[        R                  " S 5        X l	        g )NÚ
USE_UVLOOPr   )
ÚosÚenvironÚgetÚuvloopr   Úset_event_loop_policyÚEventLoopPolicyÚnew_event_loopÚset_event_loopr:   )Úclsr]   r:   s      r   Ú
setUpClassÚTestCase.setUpClassd   sP   € ä�:‰:�>‰>˜,×'Ñ'ÛÜ×)Ò)¨&×*@Ñ*@Ó*BÔCä×%Ò%Ó'ˆÜ×Ò˜tÔ$Ø�r   c                 ód   • U R                   R                  5         [        R                  " S 5        g r   )r:   Úcloser   ra   ©rb   s    r   ÚtearDownClassÚTestCase.tearDownClassn   s   € à�‰�‰ÔÜ×Ò˜tÕ$r   c                 ó\   • U R                   R                  U R                  5        / U l        g r   )r:   Úset_exception_handlerÚloop_exception_handlerÚ_TestCase__unhandled_exceptions)r?   s    r   ÚsetUpÚTestCase.setUps   s"   € Ø�	‰	×'Ñ'¨×(CÑ(CÔDØ&(ˆÕ#r   c                 ó¼  • / nU R                    Hf  n[        U[        5      (       a=  [        R                  R                  USS9nUR                  S   R                  S:X  a  MU  UR                  U5        Mh     U(       a]  / n[        U5       H(  u  pVUR                  U R                  XeS-   5      5        M*     U R                  SSR                  U5      -   5        g g )NF)Úlookup_lineséÿÿÿÿÚ_call_connection_lostr   z,unexpected exceptions in asynchronous code:
Ú
)rm   Ú
isinstanceÚConnectionResetErrorÚ	tracebackÚTracebackExceptionÚfrom_exceptionÚstackrJ   ÚappendÚ	enumerateÚ_format_loop_exceptionÚfailÚjoin)r?   ÚexcsÚexcÚtexcÚ	formattedÚiÚcontexts          r   ÚtearDownÚTestCase.tearDownw   sÌ   € ØˆØ×.Ô.ˆCÜ˜#Ô3×4Ñ4Ü ×3Ñ3×BÑBØ eð Cð -�à—:‘:˜b‘>×&Ñ&Ð*AÓAñ Ø�K‰K˜Öñ /ö ØˆIä'¨žo‘
�Ø× Ñ  ×!<Ñ!<¸WÈ!ÁeÓ!LÖMñ .ð �I‰IØ?Ø—	‘	˜)Ó$ñ%õ&ð r   c              #   ó&  #   • [         R                  " 5       n S v •  [         R                  " 5       U-
  nX1:”  a  [        SR                  X15      5      eg ! [         R                  " 5       U-
  nX1:”  a  [        SR                  X15      5      ef = f7f)NzQrunning block took {:0.3f}s which is longer than the expected maximum of {:0.3f}s)ÚtimeÚ	monotonicÚAssertionErrorr>   )r?   ÚdeltaÚstÚelapseds       r   ÚassertRunUnderÚTestCase.assertRunUnderŽ   s�   é € ä�^Š^Óˆð	)Ûä—n’nÓ&¨Ñ+ˆGØ‹Ü$ð<ß<B¹FØó=(ó)ð )ð øô —n’nÓ&¨Ñ+ˆGØ‹Ü$ð<ß<B¹FØó=(ó)ð )ð üs   ‚B™A �8BÁ9BÂBÚmsg_rec              #   óº  ^#   • / mU4S jnU R                   R                  5       nU R                   R                  U5         S v •  T HU  nUR                  S5      nU(       d  M  [        R
                  " X5      (       d  M:    U R                   R                  U5        g    [        SR                  U5      5      e! U R                   R                  U5        f = f7f)Nc                 ó(   >• TR                  U5        g r   )r{   )r:   ÚctxÚcontextss     €r   ÚhandlerÚ6TestCase.assertLoopErrorHandlerCalled.<locals>.handlerŸ   s   ø€ Ø�O‰O˜CÕ r   ÚmessagezFno message matching {!r} was logged with loop.call_exception_handler())r:   Úget_exception_handlerrk   r\   ÚreÚsearchr‹   r>   )r?   r‘   r–   Úold_handlerr”   r   r•   s         @r   ÚassertLoopErrorHandlerCalledÚ%TestCase.assertLoopErrorHandlerCalled›   s´   øé € àˆõ	!ð —i‘i×5Ñ5Ó7ˆØ�	‰	×'Ñ'¨Ô0ð	9Ûã�Ø—g‘g˜iÓ(�ß�3œ2Ÿ9š9 V×1Ó1Øð �I‰I×+Ñ+¨KÕ8ñ  ô
 !ð0ß06±°v³ó@ð @øð
 �I‰I×+Ñ+¨KÕ8üs/   ƒ>CÁB; Á%B; ÂB; ÂCÂB; Â;CÃCc                 ó\   • U R                   R                  U5        UR                  U5        g r   )rm   r{   Údefault_exception_handler)r?   r:   r…   s      r   rl   ÚTestCase.loop_exception_handler³   s$   € Ø×#Ñ#×*Ñ*¨7Ô3Ø×&Ñ& wÕ/r   c                 ó&  • UR                  SS5      nUR                  S5      nUb  [        U5      XDR                  4nOS n/ n[        U5       H{  nUS;   a  M  X   nUS:X  a:  SR	                  [
        R                  " U5      5      n	SnX‰R                  5       -  nO [        U5      nUR                  S	R                  Xx5      5        M}     UbY  UR                  S
5        [        R                  " SR	                  [
        R                  " U6 5      S5      nUR                  U5        [        R                  " SR	                  U5      S5      nSR                  X#U5      $ ! [         a%  n
SR                  U
[        U5      5      n S n
A
NâS n
A
ff = f)Nr˜   z!Unhandled exception in event loopÚ	exception>   r˜   r£   Úsource_tracebackÚ z+Object created at (most recent call last):
z,Exception in __repr__ {!r}; value type: {!r}z
[{}]: {}

z[exception]:
z  z    z{:02d}. {}:
{}
)r\   ÚtypeÚ__traceback__Úsortedr   rw   Úformat_listÚrstripÚreprÚ	Exceptionr>   r{   ÚtextwrapÚindentÚformat_exception)r?   r…   Únr˜   r£   Úexc_infoÚlinesÚkeyÚvalueÚtbÚexÚformatted_excÚdetailss                r   r}   ÚTestCase._format_loop_exception·   se  € Ø—+‘+˜iÐ)LÓMˆØ—K‘K Ó,ˆ	ØÑ Ü˜Y›¨×4KÑ4KÐL‰HàˆHàˆÜ˜'–?ˆCØÐ.Ó.ÙØ‘LˆEØÐ(Ó(Ø—W‘WœY×2Ò2°5Ó9Ó:�ØF�ØŸ™›Ñ$‘ðIÜ  ›K�Eð �L‰L˜×.Ñ.¨sÓ:Ö;ñ #ð  ÑØ�L‰LÐ)Ô*Ü$ŸOšOØ—‘œ	×2Ò2°HÐ=Ó>ÀóFˆMà�L‰L˜Ô'ä—/’/ "§'¡'¨%£.°&Ó9ˆØ"×)Ñ)¨!°gÓ>Ð>øô !ó Ið0ß06±°r¼4À»;Ó0Gõ ûðIús   ÂE!Å!
FÅ+FÆF)Ú__unhandled_exceptionsN)rM   rN   rO   rP   Úclassmethodrc   rh   rn   r†   Ú
contextlibÚcontextmanagerr�   Ústrr�   rl   r}   rR   r"   r   r   rV   rV   b   sw   † àñó ðð ñ%ó ð%ò)ò&ð. ×Ññ
)ó ð
)ð ×Ñð9°3ó 9ó ð9ò.0õ ?r   rV   )Ú	metaclassc                 ó¢   • U " S0 UD6nUR                   " S0 U=(       d    0 D6  UR                  5         [        R                  " [        U5        U$ )Nr"   )ÚinitÚtrust_local_connectionsÚatexitÚregisterÚ_shutdown_cluster)Ú
ClusterClsÚcluster_kwargsÚinitdb_optionsr   s       r   Ú_init_clusterrÉ   Ý   sC   € ÙÑ*˜>Ñ*€GØ‡L‚LÑ*�N×( bÒ*Ø×#Ñ#Ô%Ü
‡O‚OÔ% wÔ/Ø€Nr   c                 óF   • U (       d  0 n O[        U 5      n SU ;  a  SU S'   U $ )NÚusernameÚpostgres)Údict)rÈ   s    r   Ú_get_initdb_optionsrÎ   å   s.   € ÞØ‰ä˜nÓ-ˆð ˜Ó'Ø%/ˆ�zÑ"àÐr   c                 óæ   • [         ce  [        R                  R                  S5      nU(       a  [        R
                  " 5       q [         $ [        [        R                  SS0[        U 5      S9q [         $ )NÚPGHOSTÚdata_dir_suffixz.apgtest©rÇ   rÈ   )	Ú_default_clusterrZ   r[   r\   Ú
pg_clusterÚRunningClusterrÉ   ÚTempClusterrÎ   )rÈ   Úpg_hosts     r   Ú_init_default_clusterrØ   ò   sh   € ô ÑÜ—*‘*—.‘. Ó*ˆÞä)×8Ò8Ó:Ðô Ðô  -Ü×&Ñ&à% zð ô  3°>ÓBñ Ðô Ðr   c                 ó–   • U R                  5       S:X  a  U R                  5         U R                  5       S:w  a  U R                  5         g g )NÚrunningznot-initialized)Ú
get_statusÚstopÚdestroyr   s    r   rÅ   rÅ     s=   € Ø×ÑÓ˜yÓ(Ø�‰ŒØ×ÑÓÐ0Ó0Ø�‰Õð 1r   é
   iPÃ  g      N@)Úmin_sizeÚmax_sizeÚmax_queriesÚ max_inactive_connection_lifetimeÚconnectÚsetuprÁ   r:   Ú
pool_classÚconnection_classÚrecord_classc                ó*   • U	" U 4UUUUUUUUU
US.
UD6$ )N)
rß   rà   rá   r:   rã   rä   rÁ   râ   ræ   rç   r"   )Údsnrß   rà   rá   râ   rã   rä   rÁ   r:   rå   ræ   rç   Úconnect_kwargss                r   Úcreate_poolrë     sA   € ñ ØðàØØØØØØØ)IØ)Ø!ñð ñð r   c                   ó  ^ • \ rS rSr\S 5       r\0 0 S.S j5       r\0 S.S j5       r\S 5       r\U 4S j5       r	\U 4S	 j5       r
\0 4S
 j5       r\S 5       rU 4S jrU 4S jr\R                   \R$                  4S jrSrU =r$ )ÚClusterTestCasei*  c                 óT   • SS0nU R                   R                  5       S:¼  a  SUS'   U$ )NÚlog_connectionsÚon)é   r   ÚoffÚjit)r   Úget_pg_version)rb   Úsettingss     r   Úget_server_settingsÚ#ClusterTestCase.get_server_settings+  s7   € ð ˜tð
ˆð �;‰;×%Ñ%Ó'¨7Ó2ð $ˆH�U‰Oàˆr   rÒ   c                óf   • [        X[        U5      5      nU R                  R                  U5        U$ r   )rÉ   rÎ   Ú	_clustersr{   )rb   rÆ   rÇ   rÈ   r   s        r   Únew_clusterÚClusterTestCase.new_cluster8  s.   € ä 
Ü 3°NÓ CóEˆà�‰×Ñ˜WÔ%Øˆr   ©Úserver_settingsc                ó$   • UR                  SUS9  g )NÚdynamic©Úportrý   )Ústart)rb   r   rý   s      r   Ústart_clusterÚClusterTestCase.start_cluster?  s   € à�‰˜9°oˆÒFr   c                 ó°   • [        5       U l        U R                  R                  5       S:w  a)  U R                  R                  SU R	                  5       S9  g g )NrÚ   rÿ   r   )rØ   r   rÛ   r  rö   rg   s    r   Úsetup_clusterÚClusterTestCase.setup_clusterC  sL   € ä+Ó-ˆŒà�;‰;×!Ñ!Ó# yÓ0Ø�K‰K×ÑØ°×0GÑ0GÓ0Ið ò Kð 1r   c                 óP   >• [         TU ]  5         / U l        U R                  5         g r   )rH   rc   rù   r  ©rb   rK   s    €r   rc   ÚClusterTestCase.setUpClassK  s!   ø€ ä‰ÑÔØˆŒØ×ÑÕr   c                 ó¬   >• [         TU ]  5         U R                   H.  nU[        Ld  M  UR	                  5         UR                  5         M0     / U l        g r   )rH   rh   rù   rÓ   rÜ   rÝ   )rb   r   rK   s     €r   rh   ÚClusterTestCase.tearDownClassQ  sA   ø€ ä‰ÑÔØ—}”}ˆGØÔ.Ô.Ø—‘”Ø—‘Ö!ñ %ð ˆ�r   c                 óJ  • U R                   R                  5       nUR                  S5      (       a  UR                  S5        UR	                  U5        [
        R                  R                  S5      (       d,  UR                  S5      (       d  SU;  a  SUS'   SU;  a  SUS'   U$ ©Nré   ÚhostrÐ   ÚdatabaserÌ   Úuser)r   Úget_connection_specr\   ÚpopÚupdaterZ   r[   ©rb   rA   Ú	conn_specs      r   r  Ú#ClusterTestCase.get_connection_specZ  sˆ   € à—K‘K×3Ñ3Ó5ˆ	Ø�:‰:�e×ÑØ�M‰M˜&Ô!Ø×Ñ˜Ô Ü�z‰z�~‰~˜h×'Ñ'°·
±
¸5×0AÑ0AØ Ó*Ø(2�	˜*Ñ%Ø˜YÓ&Ø$.�	˜&Ñ!ØÐr   c                 ól   • U R                  U5      n[        R                  " S0 UDSU R                  0D6$ ©Nr:   r"   )r  Úpg_connectionrã   r:   r  s      r   rã   ÚClusterTestCase.connectg  s/   € à×+Ñ+¨FÓ3ˆ	Ü×$Ò$Ñ@ yÑ@°s·x±xÒ@Ð@r   c                 ó0   >• [         TU ]  5         / U l        g r   )rH   rn   Ú_pools©r?   rK   s    €r   rn   ÚClusterTestCase.setUpl  s   ø€ Ü‰‰ŒØˆ�r   c                 óv   >• [         TU ]  5         U R                   H  nUR                  5         M     / U l        g r   )rH   r†   r  Ú	terminate)r?   r   rK   s     €r   r†   ÚClusterTestCase.tearDownp  s-   ø€ Ü‰ÑÔØ—K”KˆDØ�N‰NÖñ  àˆ�r   c                 ó�   • U R                  U5      n[        SU R                  UUS.UD6nU R                  R	                  U5        U$ )N)r:   rå   ræ   r"   )r  rë   r:   r  r{   )r?   rå   ræ   rA   r  r   s         r   rë   ÚClusterTestCase.create_poolv  sN   € à×,Ñ,¨VÓ4ˆ	Üð K §	¡	°jØ,<ñKØ@IñKˆà�‰×Ñ˜4Ô Øˆr   )r  )rM   rN   rO   rP   r»   rö   rú   r  r  rc   rh   r  rã   rn   r†   Úpg_poolÚPoolr  Ú
Connectionrë   rR   rS   rT   s   @r   rí   rí   *  sØ   ø† Øñ
ó ð
ð Ø79È"ô ó ðð Ø79ô Gó ðGð ñKó ðKð ôó ðð
 ôó ðð Ø(*ó 
ó ð
ð ñAó ðAõõð &-§\¡\Ø%2×%=Ñ%=÷ò r   rí   c                   ó�   ^ • \ rS rSr\U 4S j5       r\S 5       r\U 4S j5       r\U 4S j5       r\U 4S j5       r	U 4S jr
SrU =r$ )	ÚProxiedClusterTestCasei  c                 ó@   >• [        [        TU ]	  5       5      nSUS'   U$ )Nú	127.0.0.1Úlisten_addresses)rÍ   rH   rö   )rb   rõ   rK   s     €r   rö   Ú*ProxiedClusterTestCase.get_server_settings€  s%   ø€ äœ™Ñ3Ó5Ó6ˆØ'2ˆÐ#Ñ$Øˆr   c                 ó
   • SS 0$ )Nzfuzzing-moder"   rg   s    r   Úget_proxy_settingsÚ)ProxiedClusterTestCase.get_proxy_settings†  s   € à Ð%Ð%r   c                 ó*  >• [         TU ]  5         U R                  R                  5       nUR	                  S5      nU(       d  SnOUR                  S5      (       a  Sn[        R                  " UUS   S9U l        U R                  R                  5         g )Nr  r+  Ú/r  )Úbackend_hostÚbackend_port)
rH   rc   r   r  r\   r   r   ÚTCPFuzzingProxyÚproxyr  )rb   r  r  rK   s      €r   rc   Ú!ProxiedClusterTestCase.setUpClassŠ  sw   ø€ ä‰ÑÔØ—K‘K×3Ñ3Ó5ˆ	Ø�}‰}˜VÓ$ˆÞØ‰DØ�_‰_˜S×!Ñ!ØˆDÜ×*Ò*ØØ" 6Ñ*ñ
ˆŒ	ð 	�	‰	�‰Õr   c                 óV   >• U R                   R                  5         [        TU ]  5         g r   )r6  rÜ   rH   rh   r	  s    €r   rh   Ú$ProxiedClusterTestCase.tearDownClass™  s   ø€ à�	‰	�‰ÔÜ‰ÑÕr   c                 óŠ   >• [         TU ]  U5      nU R                  R                  US'   U R                  R                  US'   U$ )Nr  r  )rH   r  r6  Úlistening_addrÚlistening_port)rb   rA   r  rK   s      €r   r  Ú*ProxiedClusterTestCase.get_connection_specž  s@   ø€ ä‘GÑ/°Ó7ˆ	ØŸI™I×4Ñ4ˆ	�&ÑØŸI™I×4Ñ4ˆ	�&ÑØÐr   c                 óV   >• U R                   R                  5         [        TU ]  5         g r   )r6  ÚresetrH   r†   r  s    €r   r†   ÚProxiedClusterTestCase.tearDown¥  s   ø€ Ø�
‰
×ÑÔÜ‰ÑÕr   r"   )rM   rN   rO   rP   r»   rö   r/  rc   rh   r  r†   rR   rS   rT   s   @r   r)  r)    so   ø† Øôó ðð
 ñ&ó ð&ð ôó ðð ô ó ð ð ôó ð÷ó r   r)  c                  ó8   ^ • T (       d  [        S5      eU 4S jnU$ )Nz$no connection options were specifiedc                 ó   >• TU l         U $ r   )Ú__connect_options__)r   Úoptionss    €r   r    Ú%with_connection_options.<locals>.wrap®  s   ø€ Ø#*ˆÔ Øˆr   )Ú
ValueError)rD  r    s   ` r   Úwith_connection_optionsrG  ª  s   ø€ ÞÜÐ?Ó@Ð@õð €Kr   c                   ó4   ^ • \ rS rSrU 4S jrU 4S jrSrU =r$ )ÚConnectedTestCaseiµ  c                 ó  >• [         TU ]  5         [        X R                  5      R                  n[        US0 5      nU R
                  R                  U R                  " S0 UD65      U l        U R                  R                  5       U l
        g )NrC  r"   )rH   rn   r*   Ú_testMethodNameÚ__func__r:   r;   rã   ÚconÚget_server_versionÚserver_version)r?   Ú	test_funcÚoptsrK   s      €r   rn   ÚConnectedTestCase.setUp·  sj   ø€ Ü‰‰Œô ˜D×"6Ñ"6Ó7×@Ñ@ˆ	Ü�yÐ"7¸Ó<ˆØ—9‘9×/Ñ/°·²Ñ0D¸tÑ0DÓEˆŒØ"Ÿh™h×9Ñ9Ó;ˆÕr   c                 ó¾   >•  U R                   R                  U R                  R                  5       5        S U l        [        TU ]  5         g ! [        TU ]  5         f = fr   )r:   r;   rM  rf   rH   r†   r  s    €r   r†   ÚConnectedTestCase.tearDownÀ  sC   ø€ ð	Ø�I‰I×(Ñ(¨¯©¯©Ó)9Ô:ØˆDŒHä‰GÑÕøŒE‰GÑÕús   ƒ:A ÁA)rM  rO  )rM   rN   rO   rP   rn   r†   rR   rS   rT   s   @r   rI  rI  µ  s   ø† õ<÷ó r   rI  c                   óp   • \ rS rSr\S 5       r\0 4S j5       r\0 4S j5       r\S 5       r\S 5       r	Sr
g)	ÚHotStandbyTestCaseiÈ  c                 ó  • U R                  [        R                  5      U l        U R	                  U R                  SSS.S9  S n U R
                  R                  U R                  R                  SSU R
                  S95      nU R
                  R                  UR                  S5      5        U R                  R                  S5        U R                  R                  5       nU R                  [        R                  USS	.S
9U l        U R	                  U R                  SS0S9  Ub*  U R
                  R                  UR                  5       5        g g ! Ub*  U R
                  R                  UR                  5       5        f f = f)NrÞ   Úhot_standby)Úmax_wal_sendersÚ	wal_levelrü   rÌ   )r  r  r:   zT
                    CREATE ROLE replication WITH LOGIN REPLICATION
                Úreplication)ÚmasterÚreplication_user)rÇ   T)rú   rÔ   rÖ   Úmaster_clusterr  r:   r;   rã   ÚexecuteÚtrust_local_replication_byr  ÚHotStandbyClusterÚstandby_clusterrf   )rb   rM  r  s      r   r  Ú HotStandbyTestCase.setup_clusterÊ  sn  € à Ÿ_™_¬Z×-CÑ-CÓDˆÔØ×ÑØ×Ñà#%Ø*ñð 	ñ 	
ð ˆð	9Ø—(‘(×-Ñ-Ø×"Ñ"×*Ñ*Ø'¨j¸s¿x¹xð +ð IóJˆCð �H‰H×'Ñ'Ø—‘ð ó ôð
 ×Ñ×9Ñ9¸-ÔHà×*Ñ*×>Ñ>Ó@ˆIà"%§/¡/Ü×,Ñ,à'Ø(5ñ ð #2ð #ˆCÔð ×ÑØ×#Ñ#à! 4ð!ð ñ ð ‰Ø—‘×+Ñ+¨C¯I©I«KÕ8ð øˆs‰Ø—‘×+Ñ+¨C¯I©I«KÕ8ð ús   ÁCE Å/Fc                 ó6  • UR                  5       nUR                  S5      (       a  UR                  S5        UR                  U5        [        R
                  R                  S5      (       d,  UR                  S5      (       d  SU;  a  SUS'   SU;  a  SUS'   U$ r  )r  r\   r  r  rZ   r[   )rb   r   rA   r  s       r   Úget_cluster_connection_specÚ.HotStandbyTestCase.get_cluster_connection_spec÷  s„   € à×/Ñ/Ó1ˆ	Ø�:‰:�e×ÑØ�M‰M˜&Ô!Ø×Ñ˜Ô Ü�z‰z�~‰~˜h×'Ñ'°·
±
¸5×0AÑ0AØ Ó*Ø(2�	˜*Ñ%Ø˜YÓ&Ø$.�	˜&Ñ!ØÐr   c                 ó°   • U R                  U R                  U5      nU R                  U R                  U5      nUS   US   /US   US   /US   US   S.UE$ )Nr  r  r  r  )r  r  r  r  )re  r^  rb  )rb   rA   Úprimary_specÚstandby_specs       r   r  Ú&HotStandbyTestCase.get_connection_spec  s„   € à×6Ñ6Ø×Ñ ó
ˆð ×6Ñ6Ø×Ñ ó
ˆð " &Ñ)¨<¸Ñ+?Ð@Ø! &Ñ)¨<¸Ñ+?Ð@Ø$ ZÑ0Ø  Ñ(ñ	
ð
 ð
ð 	
r   c                 ó‚   • U R                  U R                  U5      n[        R                  " S0 UDSU R                  0D6$ r  )re  r^  r  rã   r:   r  s      r   Úconnect_primaryÚ"HotStandbyTestCase.connect_primary  s7   € à×3Ñ3°C×4FÑ4FÈÓOˆ	Ü×$Ò$Ñ@ yÑ@°s·x±xÒ@Ð@r   c                 ó‚   • U R                  U R                  U5      n[        R                  " S0 UDSU R                  0D6$ r  )re  rb  r  rã   r:   r  s      r   Úconnect_standbyÚ"HotStandbyTestCase.connect_standby  s=   € à×3Ñ3Ø×ÑØó
ˆ	ô ×$Ò$Ñ@ yÑ@°s·x±xÒ@Ð@r   r"   N)rM   rN   rO   rP   r»   r  re  r  rl  ro  rR   r"   r   r   rV  rV  È  so   † àñ*9ó ð*9ðX Ø9;ó 
ó ð
ð Ø(*ó 
ó ð
ð ñAó ðAð ñAó óAr   rV  r   ))r   rÃ   r¼   rF   r+   r   rZ   rš   r­   r‰   rw   ÚunittestÚasyncpgr   rÔ   r   r  r   r%  r¥   r   r½   r   r#   r¦   rV   r%   rÓ   rÉ   rÎ   rØ   rÅ   r&  r'  ÚRecordrë   rí   r)  rG  rI  rV  r"   r   r   Ú<module>rt     s  ðó Û Û Û Û Û Û 	Û 	Û Û Û Û ó Ý )Ý /Ý #å ð ×Ññ
!ó ð
!òô+6‘4˜×)Ñ)Ó*ô +6ô\u?ˆx× Ñ ¨Lò u?ðp Ð ôô
ôò(ðØØØ!Ø15ØØØØØ"Ÿ<™<Ø!.×!9Ñ!9Ø$Ÿ^™^öô:R�hô Rôj(˜_ô (òVô˜ô ô&WA˜õ WAr   