Ë
    eQêj4;  ã                   óþ   — d dl mZ d dlmZ ddlmZ d dl mZ ddlZ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  ej                  «       Z G d„ d	ej"                  «      Z G d
„ d«      Zedk(  r ej*                  «        yy)é   )Úleaderelection)ÚLeaderElectionRecordé    ©ÚApiException)ÚelectionconfigN)Úpatchc                   ó4   — e Zd Zd„ Zd„ Z	 d„ Zd„ Z	 d„ Zd„ Zy)ÚLeaderElectionTestc           
      ó<  ‡‡	— g Šg Š	ˆˆ	fd„}ˆfd„}ˆfd„}t        dddt        |||d «      }ˆ	fd„}ˆ	fd„}t        j                  |dd	d
||¬«      }t	        j
                  |«      j                  «        | j                  ‰g d¢«       | j                  ‰	g d¢«       y )Nc                  óJ   •— ‰ j                  d«       ‰j                  d«       y ©Núcreate recordúget leadership©Úappend©Úelection_historyÚleadership_historys   €€úr/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/kubernetes/leaderelection/leaderelection_test.pyÚ	on_createzALeaderElectionTest.test_simple_leader_election.<locals>.on_create#   ó    ø€ Ø×#Ñ# OÔ4Ø×%Ñ%Ð&6Õ7ó    c                  ó(   •— ‰ j                  d«       y ©Núupdate recordr   ©r   s   €r   Ú	on_updatezALeaderElectionTest.test_simple_leader_election.<locals>.on_update'   ó   ø€ Ø×#Ñ# OÕ4r   c                  ó(   •— ‰ j                  d«       y ©Nzchange recordr   r   s   €r   Ú	on_changezALeaderElectionTest.test_simple_leader_election.<locals>.on_change*   r   r   ÚmockÚmock_namespacec                  ó(   •— ‰ j                  d«       y ©Nústart leadingr   ©r   s   €r   Úon_started_leadingzJLeaderElectionTest.test_simple_leader_election.<locals>.on_started_leading/   ó   ø€ Ø×%Ñ% oÕ6r   c                  ó(   •— ‰ j                  d«       y ©Nústop leadingr   r(   s   €r   Úon_stopped_leadingzJLeaderElectionTest.test_simple_leader_election.<locals>.on_stopped_leading2   ó   ø€ Ø×%Ñ% nÕ5r   ç      @é   ç      ø?©ÚlockÚlease_durationÚrenew_deadlineÚretry_periodÚonstarted_leadingÚonstopped_leading)r   r   r   r   ©r   r'   r-   )ÚMockResourceLockÚthread_lockr   ÚConfigr   ÚLeaderElectionÚrunÚassert_history)
Úselfr   r   r"   Ú	mock_lockr)   r.   Úconfigr   r   s
           @@r   Útest_simple_leader_electionz.LeaderElectionTest.test_simple_leader_election   s¦   ù€ ØÐØÐõ	8ô	5ô	5ô % VÐ-=¸vÄ{ÐT]Ð_hÐjsÐuyÓzˆ	ô	7ô	6ô  ×&Ñ&¨IÀcØ67ÀcÐ]oØ9KôMˆô
 	×%Ñ% fÓ-×1Ñ1Ô3à×ÑÐ,Ò.rÔsØ×ÑÐ.Ò0cÕdr   c           
      ó  ‡‡— g Šg Šˆˆfd„}ˆfd„}ˆfd„}t        dddt        |||d «      }d|_        ˆfd„}ˆfd	„}t        j                  |d
dd||¬«      }ˆˆfd„}ˆfd„}	ˆfd„}
t        dddt        ||	|
d «      }d|_        ˆfd„}ˆfd„}t        j                  |d
dd||¬«      }|j
                  |_        dt        _        t        j                  t        j                  |«      j                  «       ¬«      j                  «        t        j                  t        j                  |«      j                  «       ¬«      j                  «        t        j                  d«       | j                  ‰g d¢«       | j                  ‰g d¢«       y )Nc                  óJ   •— ‰ j                  d«       ‰j                  d«       y )NúA creates recordúA gets leadershipr   r   s   €€r   Úon_create_Az<LeaderElectionTest.test_leader_election.<locals>.on_create_AD   ó!   ø€ Ø×#Ñ#Ð$6Ô7Ø×%Ñ%Ð&9Õ:r   c                  ó(   •— ‰ j                  d«       y )NúA updates recordr   r   s   €r   Úon_update_Az<LeaderElectionTest.test_leader_election.<locals>.on_update_AH   ó   ø€ Ø×#Ñ#Ð$6Õ7r   c                  ó(   •— ‰ j                  d«       y )NrH   r   r   s   €r   Úon_change_Az<LeaderElectionTest.test_leader_election.<locals>.on_change_AK   ó   ø€ Ø×#Ñ#Ð$7Õ8r   r#   r$   ÚMockAé   c                  ó(   •— ‰ j                  d«       y )NúA starts leadingr   r(   s   €r   Úon_started_leading_AzELeaderElectionTest.test_leader_election.<locals>.on_started_leading_AQ   ó   ø€ Ø×%Ñ%Ð&8Õ9r   c                  ó(   •— ‰ j                  d«       y )NúA stops leadingr   r(   s   €r   Úon_stopped_leading_AzELeaderElectionTest.test_leader_election.<locals>.on_stopped_leading_AT   ó   ø€ Ø×%Ñ%Ð&7Õ8r   r0   r1   r2   r3   c                  óJ   •— ‰ j                  d«       ‰j                  d«       y )NzB creates recordúB gets leadershipr   r   s   €€r   Úon_create_Bz<LeaderElectionTest.test_leader_election.<locals>.on_create_B[   rJ   r   c                  ó(   •— ‰ j                  d«       y )NúB updates recordr   r   s   €r   Úon_update_Bz<LeaderElectionTest.test_leader_election.<locals>.on_update_B_   rN   r   c                  ó(   •— ‰ j                  d«       y )Nr]   r   r(   s   €r   Úon_change_Bz<LeaderElectionTest.test_leader_election.<locals>.on_change_Bb   s   ø€ Ø×%Ñ%Ð&9Õ:r   ÚMockBé   c                  ó(   •— ‰ j                  d«       y )NúB starts leadingr   r(   s   €r   Úon_started_leading_BzELeaderElectionTest.test_leader_election.<locals>.on_started_leading_Bh   rW   r   c                  ó(   •— ‰ j                  d«       y )NúB stops leadingr   r(   s   €r   Úon_stopped_leading_BzELeaderElectionTest.test_leader_election.<locals>.on_stopped_leading_Bk   r[   r   T)Útargeté   )rG   rL   rL   r`   r`   r`   r`   )rH   rU   rY   r]   rg   rj   )r;   r<   Úrenew_count_maxr   r=   Úleader_recordÚ	threadingÚdaemonÚThreadr   r>   r?   ÚstartÚtimeÚsleepr@   )rA   rI   rM   rP   Úmock_lock_ArV   rZ   Úconfig_Ar^   ra   rc   Úmock_lock_Brh   rk   Úconfig_Br   r   s                  @@r   Útest_leader_electionz'LeaderElectionTest.test_leader_election@   sŠ  ù€ ØÐØÐõ	;ô	8ô	9ô ' vÐ/?ÀÌ+ÐWbÐdoÐq|ð  Có  DˆØ&'ˆÔ#ô	:ô	9ô "×(Ñ(¨kÈ#Ø89ÈÐ_sØ;OôQˆõ	;ô	8ô	;ô ' vÐ/?ÀÌ+ÐWbÐdoÐq|ð  Có  DˆØ&'ˆÔ#ô	:ô	9ô "×(Ñ(¨kÈ#Ø89ÈÐ_sØ;OôQˆð %0×$=Ñ$=ˆÔ!àŒ	Ôä×Ñ¤× =Ñ =¸hÓ G× KÑ KÓ MÔN×TÑTÔVô 	×Ñ¤× =Ñ =¸hÓ G× KÑ KÓ MÔN×TÑTÔVä�
‰
�1Œà×ÑÐ,ò1ô	2ð 	×ÑÐ.ò0õ	1r   c           
      óT  ‡	‡
— g Š	g Š
ˆ	ˆ
fd„}ˆ	fd„}ˆ	fd„}ˆ	fd„}t        dddt        ||||«      }d|_        ˆ
fd„}ˆ
fd	„}t        j                  |d
dd||¬«      }t        j                  |«      j                  «        | j                  ‰	g d¢«       | j                  ‰
g d¢«       y )Nc                  óJ   •— ‰ j                  d«       ‰j                  d«       y r   r   r   s   €€r   r   zNLeaderElectionTest.test_Leader_election_with_renew_deadline.<locals>.on_createž   r   r   c                  ó(   •— ‰ j                  d«       y r   r   r   s   €r   r   zNLeaderElectionTest.test_Leader_election_with_renew_deadline.<locals>.on_update¢   r   r   c                  ó(   •— ‰ j                  d«       y r!   r   r   s   €r   r"   zNLeaderElectionTest.test_Leader_election_with_renew_deadline.<locals>.on_change¥   r   r   c                  ó(   •— ‰ j                  d«       y )Nútry update recordr   r   s   €r   Úon_try_updatezRLeaderElectionTest.test_Leader_election_with_renew_deadline.<locals>.on_try_update¨   rQ   r   r#   r$   rS   c                  ó(   •— ‰ j                  d«       y r&   r   r(   s   €r   r)   zWLeaderElectionTest.test_Leader_election_with_renew_deadline.<locals>.on_started_leading®   r*   r   c                  ó(   •— ‰ j                  d«       y r,   r   r(   s   €r   r.   zWLeaderElectionTest.test_Leader_election_with_renew_deadline.<locals>.on_stopped_leading±   r/   r   r0   r1   r2   r3   )r   r€   r   r€   r   r€   r€   r:   )	r;   r<   rn   r   r=   r   r>   r?   r@   )rA   r   r   r"   r�   rB   r)   r.   rC   r   r   s            @@r   Ú(test_Leader_election_with_renew_deadlinez;LeaderElectionTest.test_Leader_election_with_renew_deadlineš   sÀ   ù€ ØÐØÐõ	8ô	5ô	5ô	9ô % VÐ-=¸vÄ{ÐT]Ð_hÐjsð  vCó  Dˆ	Ø$%ˆ	Ô!ô	7ô	6ô  ×&Ñ&¨IÀcØ67ÀcÐ]oØ9KôMˆô
 	×%Ñ% fÓ-×1Ñ1Ô3à×ÑÐ,ò2ô	3ð 	×ÑÐ.Ò0cÕdr   c           
      ó6  ‡‡— i Št         j                  Šˆˆfd„}t        j                  «       }t        dddt        d„ d„ d„ d «      }d|_        t        j                  |ddd|j                  d„ ¬	«      }t        j                  t        j                   d
|¬«      5  t        j                  |«      j                  «        d d d «       | j                  |j                  d«      d«       | j!                  d‰«       | j                  ‰d   «       y # 1 sw Y   ŒQxY w)Nc                  ó6   •—  ‰| i |¤Ž}|j                   ‰d<   |S )Nrq   )rq   )ÚargsÚkwargsÚthreadÚcapturedÚreal_threads      €€r   Úrecord_threadzVLeaderElectionTest.test_onstarted_leading_runs_in_daemon_thread.<locals>.record_threadË   s%   ø€ Ù  $Ð1¨&Ñ1ˆFØ!'§¡ˆH�XÑØˆMr   r#   r$   c                   ó   — y ©N© r�   r   r   ú<lambda>zQLeaderElectionTest.test_onstarted_leading_runs_in_daemon_thread.<locals>.<lambda>Ó   ó   � r   r   r1   r2   c                   ó   — y rŽ   r�   r�   r   r   r�   zQLeaderElectionTest.test_onstarted_leading_runs_in_daemon_thread.<locals>.<lambda>Ù   r‘   r   r3   rr   )Únewz&onstarted_leading callback did not runrq   )rp   rr   ÚEventr;   r<   rn   r   r=   Úsetr	   Úobjectr   r>   r?   Ú
assertTrueÚwaitÚassertIn)rA   rŒ   ÚstartedrB   rC   rŠ   r‹   s        @@r   Ú,test_onstarted_leading_runs_in_daemon_threadz?LeaderElectionTest.test_onstarted_leading_runs_in_daemon_threadÇ   së   ù€ ØˆÜ×&Ñ&ˆõ	ô
 —/‘/Ó#ˆä$ VÐ-=¸vÄ{Ù%1±<ÁÈtóUˆ	à$%ˆ	Ô!ä×&Ñ&¨IÀaØ69ÈØ9@¿¹Ù9EôGˆô
 �\‰\œ.×2Ñ2°HÀ-ÔPñ 	8Ü×)Ñ)¨&Ó1×5Ñ5Ô7÷	8ð 	�‰˜Ÿ™ Q›Ð)QÔRØ�‰�h Ô)Ø�‰˜ Ñ*Õ+÷	8ð 	8ús   Â$DÄDc           
      óž  — t        j                  «       }t        dddt        d„ d„ d„ d «      }t        j
                  |_        d„ }t        j                  |ddd||j                  ¬«      }t        j                  t        j                  |«      j                  d	¬
«      j                  «        | j                  |j!                  d«      d«       y )Nr#   r$   c                   ó   — y rŽ   r�   r�   r   r   r�   zULeaderElectionTest.test_stops_leading_when_onstarted_leading_raises.<locals>.<lambda>ê   r‘   r   c                  ó   — t        d«      ‚)Nzonstarted_leading failed)ÚRuntimeErrorr�   r   r   r)   z_LeaderElectionTest.test_stops_leading_when_onstarted_leading_raises.<locals>.on_started_leadingí   s   € ÜÐ9Ó:Ð:r   r1   r2   gš™™™™™ñ?r3   T)rl   rq   é
   z?onstopped_leading was not called after onstarted_leading raised)rp   r”   r;   r<   ÚsysÚmaxsizern   r   r=   r•   rr   r   r>   r?   rs   r—   r˜   )rA   ÚstoppedrB   r)   rC   s        r   Ú0test_stops_leading_when_onstarted_leading_raiseszCLeaderElectionTest.test_stops_leading_when_onstarted_leading_raisesæ   sª   € Ü—/‘/Ó#ˆä$ VÐ-=¸vÄ{Ù%1±<ÁÈtóUˆ	ä$'§K¡Kˆ	Ô!ò	;ô  ×&Ñ&¨IÀaØ69ÈØ9KØ9@¿¹ôFˆô 	×Ñ¤× =Ñ =¸fÓ E× IÑ IØ $ô	&ß&+¡e¤gà�‰˜Ÿ™ RÓ(ØYõ	[r   c                 ó$  — | j                  |«       | j                  |«       | j                  t        |«      t        |«      «       t        t        |«      «      D ]3  }| j                  ||   ||   dj	                  |||   ||   «      ¬«       Œ5 y )Nz*Not equal at index {}, expected {}, got {})Úmsg)ÚassertIsNotNoneÚassertEqualÚlenÚrangeÚformat)rA   ÚhistoryÚexpectedÚidxs       r   r@   z!LeaderElectionTest.assert_historyü   s”   € Ø×Ñ˜XÔ&Ø×Ñ˜WÔ%Ø×Ñœ˜X›¬¨G«Ô5äœ˜W›Ó&ò 	eˆCØ×Ñ˜W S™\¨8°C©=Ø"N×"UÑ"UÐVYÐ[cÐdgÑ[hØV]Ð^aÑVbó#dð õ eñ	er   N)	Ú__name__Ú
__module__Ú__qualname__rD   rz   r„   r›   r¤   r@   r�   r   r   r   r      s2   „ òeòBK1ð\ò+eòZ,ð66ò[ó,er   r   c                   ó8   — e Zd Zd	d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)
r;   Nc	                 ó°   — g | _         d| _        d| _        || _        || _        t        |«      | _        || _        || _        || _	        || _
        || _        y )Nr   re   )ro   Úrenew_countrn   ÚnameÚ	namespaceÚstrÚidentityr4   r   r   r"   r�   )	rA   rµ   r¶   r¸   Úshared_lockr   r   r"   r�   s	            r   Ú__init__zMockResourceLock.__init__  sW   € àˆÔØˆÔØ ˆÔØˆŒ	Ø"ˆŒÜ˜H›ˆŒØˆŒ	à"ˆŒØ"ˆŒØ"ˆŒØ*ˆÕr   c                 óh  — | j                   j                  «        	 | j                  r+d| j                  d   f| j                   j                  «        S t	        j
                  ddi«      t        _        dt        f| j                   j                  «        S # | j                   j                  «        w xY w)NTr   Úcodeé”  F)r4   Úacquirero   ÚreleaseÚjsonÚdumpsr   Úbody©rA   rµ   r¶   s      r   ÚgetzMockResourceLock.get  s…   € Ø�	‰	×ÑÔð	 Ø×!Ò!Ø˜T×/Ñ/°Ñ2Ð2ð
 �I‰I×ÑÕô !%§
¡
¨F°C¨=Ó 9ŒLÔØœ,Ð&à�I‰I×ÑÕøˆD�I‰I×ÑÕús   œB Á'B ÂB1c                 ó–  — | j                   j                  «        	 t        | j                  «      dk(  r	 | j                   j	                  «        y| j                  j                  |«       | j                  «        | xj                  dz  c_        	 | j                   j	                  «        y# | j                   j	                  «        w xY w)Nr   FT)r4   r¾   r©   ro   r¿   r   r   r´   ©rA   rµ   r¶   Úelection_records       r   ÚcreatezMockResourceLock.create"  s”   € Ø�	‰	×ÑÔð	 Ü�4×%Ñ%Ó&¨!Ò+Øð �I‰I×ÑÕð ×Ñ×%Ñ% oÔ6Ø�N‰NÔØ×Ò Ñ!ÕØà�I‰I×ÑÕøˆD�I‰I×ÑÕús   œB, ÁA B, Â,Cc                 ó(  — | j                   j                  «        	 | j                  r| j                  «        | j                  | j                  k\  r	 | j                   j                  «        y| j                  d   }|| j                  d<   | j                  «        |j                  |j                  k7  r| j                  «        | xj                  dz  c_        	 | j                   j                  «        y# | j                   j                  «        w xY w)NFr   r   T)
r4   r¾   r�   r´   rn   r¿   ro   r   Úholder_identityr"   )rA   rµ   r¶   Úupdated_recordÚ
old_records        r   ÚupdatezMockResourceLock.update.  sÔ   € Ø�	‰	×ÑÔð	 Ø×!Ò!Ø×"Ñ"Ô$Ø×Ñ 4×#7Ñ#7Ò7Øð �I‰I×ÑÕð ×+Ñ+¨AÑ.ˆJØ$2ˆD×Ñ˜qÑ!à�N‰NÔà×)Ñ)¨^×-KÑ-KÒKØ—‘Ô à×Ò Ñ!ÕØà�I‰I×ÑÕøˆD�I‰I×ÑÕús   œ5C5 Á-A,C5 Ã5Dc                 óÄ   —  G d„ d«      }t        j                   |«       dddd„ d„ ¬«      }t        j                  |«      j	                  «       }| j                  |«       y	)
zDA proxy answering with an HTML error page must not kill the elector.c                   ó   — e Zd Zd„ Zd„ Zy)úTMockResourceLock.test_acquire_survives_non_json_error_body.<locals>.GatewayErrorLockc                 ó.   — d| _         d| _        d| _        y ©Nr4   ÚnsÚ	candidate©rµ   r¶   r¸   ©rA   s    r   rº   z]MockResourceLock.test_acquire_survives_non_json_error_body.<locals>.GatewayErrorLock.__init__G  ó   € Ø"�”	Ø!%�”Ø +�•r   c                 ó"   — dt        ddd¬«      fS )NFiö  zBad Gatewayz)<html><body>502 Bad Gateway</body></html>©ÚstatusÚreasonrÂ   r   rÃ   s      r   rÄ   zXMockResourceLock.test_acquire_survives_non_json_error_body.<locals>.GatewayErrorLock.getL  s!   € ØœlØ }ØDôFð Fð Fr   N©r¯   r°   r±   rº   rÄ   r�   r   r   ÚGatewayErrorLockrÐ   F  s   „ ò,ó
Fr   rÝ   re   rS   r   c                   ó   — y rŽ   r�   r�   r   r   r�   zLMockResourceLock.test_acquire_survives_non_json_error_body.<locals>.<lambda>S  r‘   r   c                   ó   — y rŽ   r�   r�   r   r   r�   zLMockResourceLock.test_acquire_survives_non_json_error_body.<locals>.<lambda>T  r‘   r   r3   N©r   r=   r   r>   Útry_acquire_or_renewÚassertFalse)rA   rÝ   rC   Úresults       r   Ú)test_acquire_survives_non_json_error_bodyz:MockResourceLock.test_acquire_survives_non_json_error_bodyD  s[   € ÷		Fñ 		Fô  ×&Ñ&Ù!Ó#°AÀaØ©lÙ*ô,ˆô
  ×.Ñ.¨vÓ6×KÑKÓMˆØ×Ñ˜Õ r   c                 óÄ   —  G d„ d«      }t        j                   |«       dddd„ d„ ¬«      }t        j                  |«      j	                  «       }| j                  |«       y )	Nc                   ó   — e Zd Zd„ Zd„ Zy)úOMockResourceLock.test_acquire_survives_empty_error_body.<locals>.EmptyErrorLockc                 ó.   — d| _         d| _        d| _        y rÒ   rÕ   rÖ   s    r   rº   zXMockResourceLock.test_acquire_survives_empty_error_body.<locals>.EmptyErrorLock.__init__[  r×   r   c                 ó"   — dt        ddd ¬«      fS )NFiô  zServer ErrorrÙ   r   rÃ   s      r   rÄ   zSMockResourceLock.test_acquire_survives_empty_error_body.<locals>.EmptyErrorLock.get`  s   € Øœl°#¸nØ04ô6ð 6ð 6r   NrÜ   r�   r   r   ÚEmptyErrorLockrç   Z  s   „ ò,ó
6r   rê   re   rS   r   c                   ó   — y rŽ   r�   r�   r   r   r�   zIMockResourceLock.test_acquire_survives_empty_error_body.<locals>.<lambda>f  r‘   r   c                   ó   — y rŽ   r�   r�   r   r   r�   zIMockResourceLock.test_acquire_survives_empty_error_body.<locals>.<lambda>g  r‘   r   r3   rà   )rA   rê   rC   rã   s       r   Ú&test_acquire_survives_empty_error_bodyz7MockResourceLock.test_acquire_survives_empty_error_bodyY  sY   € ÷	6ñ 	6ô  ×&Ñ&ÙÓ!°!ÀAØ©lÙ*ô,ˆô
  ×.Ñ.¨vÓ6×KÑKÓMˆØ×Ñ˜Õ r   c                 óÀ   —  G d„ d«      }t        j                   |«       dddd„ d„ ¬«      }| j                  t        j                  |«      j                  «       «       y )	Nc                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)úNMockResourceLock.test_acquire_still_creates_on_clean_404.<locals>.NotFoundLockc                 ó<   — d| _         d| _        d| _        d| _        y )Nr4   rÓ   rÔ   F)rµ   r¶   r¸   ÚcreatedrÖ   s    r   rº   zWMockResourceLock.test_acquire_still_creates_on_clean_404.<locals>.NotFoundLock.__init__n  s   € Ø"�”	Ø!%�”Ø +�”Ø$�•r   c           	      ó„   — | j                   rdt        dddd«      fS dt        ddt        j                  ddi«      ¬	«      fS )
NTrÔ   Ú4ÚnowFr½   z	Not Foundr¼   rÙ   )rò   r   r   rÀ   rÁ   rÃ   s      r   rÄ   zRMockResourceLock.test_acquire_still_creates_on_clean_404.<locals>.NotFoundLock.gett  sP   € Ø—<’<ØÔ!5Ø# S¨%°ó"8ð 8ð 8àœlØ {ÜŸ™ V¨S MÓ2ô4ð 4ð 4r   c                 ó   — d| _         y©NT)rò   rÆ   s       r   rÈ   zUMockResourceLock.test_acquire_still_creates_on_clean_404.<locals>.NotFoundLock.create|  s   € Ø#�”Ør   c                  ó   — yr÷   r�   )rA   rµ   r¶   rË   s       r   rÍ   zUMockResourceLock.test_acquire_still_creates_on_clean_404.<locals>.NotFoundLock.update€  s   € Ør   N)r¯   r°   r±   rº   rÄ   rÈ   rÍ   r�   r   r   ÚNotFoundLockrð   m  s   „ ò%ò4òór   rù   re   rS   r   c                   ó   — y rŽ   r�   r�   r   r   r�   zJMockResourceLock.test_acquire_still_creates_on_clean_404.<locals>.<lambda>…  r‘   r   c                   ó   — y rŽ   r�   r�   r   r   r�   zJMockResourceLock.test_acquire_still_creates_on_clean_404.<locals>.<lambda>†  r‘   r   r3   )r   r=   r—   r   r>   rá   )rA   rù   rC   s      r   Ú'test_acquire_still_creates_on_clean_404z8MockResourceLock.test_acquire_still_creates_on_clean_404l  sQ   € ÷	ñ 	ô,  ×&Ñ&Ù“°À!Ø©lÙ*ô,ˆð
 	�‰œ×5Ñ5°fÓ=×RÑRÓTÕUr   )NNNN)
r¯   r°   r±   rº   rÄ   rÈ   rÍ   rä   rí   rü   r�   r   r   r;   r;     s&   „ ó+ò	 ò
 ò ò,!ò*!ó&Vr   r;   Ú__main__)Ú r   Úleaderelectionrecordr   Úkubernetes.client.restr   r   Úunittestrp   rÀ   r¡   rt   ÚpytestÚunittest.mockr	   ÚRLockr<   ÚTestCaser   r;   r¯   Úmainr�   r   r   ú<module>r     sv   ðõ  Ý 6Ý /Ý Û Û Û Û 
Û Û Ý àˆi�o‰oÓ€ôfe˜×*Ñ*ô fe÷RAVñ AVðH ˆzÒØ€H‡M�M…Oð r   