+
    5mj)'  c                     ^ RI Ht ^ RIt^ RIHu Ht ^ RIt^ RI	H
t
 ^ RIHt ^ RIt]P                  P                  ^ ]! ]
! ]4      P%                  4       P&                  ^,          4      4       ^ RIHtHtHtHtHt ^ RIHtHt ^ RIHt ^ RIH t H!t! ^ R	I"H#t#H$t$H%t%H&t&H't' R
 R lt( ! R R4      t) ! R R4      t*R R lt+R R lt,R R lt-R R lt. ! R R4      t/]P`                  Pc                  RRR .4      R R l4       t2R R lt3R# )!    )annotationsN)PathSimpleNamespace)Account
AccountRefAccountRegistryKindAuthorityBindingAuthorityMode)DeviceAuthPromptDeviceAuthSession)	FlowEvent)AccountSnapshotHealthStatus)AuthorityLifecycleAdapterCodexHealthAdapterCodexLifecycleAdapterProviderServiceMapProviderServicesc               (    V ^8  d   QhRRRRRRRR/# )   toolstrslugaliasreturnr    )formats   "f/home/user/overdeck-private-tests/workstation-ai-broad/modules/systray/tests/test_provider_services.py__annotate__r      s(      3 c # '     c                v    \        \        W4      V\        R 4      V ,          V,          V R2RRV  RV 2R7      # )z/tmpz@example.compluszacct--)refr   account_homeemailplan
account_id)r   r   r   )r   r   r   s   &&&r   _accountr)      sH    t"&\D(4/l#4&$( r    c                  B    ] tR t^)tR R ltRR/R R lltR R ltR	tR# )
_FakeLifecycleOperationc               $    V ^8  d   QhRRRRRR/# )r   
add_eventszlist[FlowEvent]repair_eventsr   Noner   )r   s   "r   r   $_FakeLifecycleOperation.__annotate__*   s"     . .? .? .W[ .r    c                	b    \        V4      V n        \        V4      V n        . V n        . V n        R # N)list_add_events_repair_events	add_callsrepair_calls)selfr-   r.   s   &&&r   __init__ _FakeLifecycleOperation.__init__*   s+    
+"=1$&+-r    r   Nc                    V ^8  d   QhRRRR/# )r   r   r   r   
str | Noner   )r   s   "r   r   r0   0   s     $ $ $z $r    c             #  	r   "   ?V P                   P                  V4       V P                   R j  xL
  R #  L5ir2   )r6   appendr4   )r8   r   r   s   &&$r   add_FakeLifecycleOperation.add0   s)     e$####s   ,757c                   V ^8  d   QhRR/# r   accountr   r   )r   s   "r   r   r0   5   s     ' 'g 'r    c              #  	p   "   V P                   P                  V4       V P                   R j  xL
  R #  L5ir2   )r7   r>   r5   r8   rC   s   &&r   repair_FakeLifecycleOperation.repair5   s(       )&&&&s   +646)r4   r5   r6   r7   )__name__
__module____qualname____firstlineno__r9   r?   rF   __static_attributes__r   r    r   r+   r+   )   s    .$D $
' 'r    r+   c                  :    ] tR t^:tR R ltR	RR/R R llltRtR# )
_FakeHealthClientc                    V ^8  d   QhRRRR/# )r   snapshotr   r   r/   r   )r   s   "r   r   _FakeHealthClient.__annotate__;   s     + + +T +r    c                	.    Wn         . V n        . V n        R # r2   )rP   fetch_callswarmup_flags)r8   rP   s   &&r   r9   _FakeHealthClient.__init__;   s     57(*r    allow_warmupFc               (    V ^8  d   QhRRRRRRRR/# )	r   
codex_homer   timeout_secsfloatrV   boolr   r   r   )r   s   "r   r   rQ   @   s2     	 		 	
 	 
	r    c               	    V P                   P                  W34       V P                  P                  V4       V P                  # r2   )rS   r>   rT   rP   )r8   rX   rY   rV   s   &&&$r   fetch_FakeHealthClient.fetch@   s9     	 :;  .}}r    )rS   rP   rT   N)g      $@)rH   rI   rJ   rK   r9   r]   rL   r   r    r   rN   rN   :   s    +
	
 #	 	r    rN   c                   V ^8  d   QhRR/# r   r   r/   r   )r   s   "r   r   r   L   s     /4 /4[_ /4r    c                    \        R RR4      p \        R RR4      p\        RRRR7      p\        \        4       VP                  R	R
7      p\        R4      p\        RRVRVVR'.V R	RVR7      p\        RRV RR7      p\        V.V.4      p\        V4      p\        VP                  RRR7      4      p	\        VP                  V 4      4      p
VP                  pR.qV8H  q'       g   \        P                  ! R(V3R)W34      RR\        P                   ! 4       9   g   \        P"                  ! V4      '       d   \        P$                  ! V4      MRR\        P$                  ! V4      R\        P$                  ! V4      /,          pRRV/,          p\'        \        P(                  ! V4      4      hR;p;rVP*                  q.qV8H  q'       g   \        P                  ! R(V3R*W34      RR\        P                   ! 4       9   g   \        P"                  ! V4      '       d   \        P$                  ! V4      MRR\        P$                  ! V4      R\        P$                  ! V4      /,          pRRV/,          p\'        \        P(                  ! V4      4      hR;p;r\-        V	4      p^pVV8H  q'       Eg   \        P                  ! R(V3R+VV34      RR\        P                   ! 4       9   g!   \        P"                  ! \,        4      '       d   \        P$                  ! \,        4      MRRR\        P                   ! 4       9   g   \        P"                  ! V	4      '       d   \        P$                  ! V	4      MRR \        P$                  ! V4      R!\        P$                  ! V4      /,          pR"R#V/,          p\'        \        P(                  ! V4      4      hR;p;ppV	^ ,          pVP.                  pVP.                  pVV8H  q'       g   \        P                  ! R(V3R,VV34      R\        P$                  ! V4      R \        P$                  ! V4      RR$\        P                   ! 4       9   g   \        P"                  ! V4      '       d   \        P$                  ! V4      MR$R\        P$                  ! V4      /,          pR%R&V/,          p\'        \        P(                  ! V4      4      hR;p;p;ppV	^ ,          pVP0                  pVP0                  pVV8H  q'       g   \        P                  ! R(V3R-VV34      R\        P$                  ! V4      R \        P$                  ! V4      RR$\        P                   ! 4       9   g   \        P"                  ! V4      '       d   \        P$                  ! V4      MR$R\        P$                  ! V4      /,          pR%R&V/,          p\'        \        P(                  ! V4      4      hR;p;p;ppV	^ ,          pVP2                  pVP2                  pVV8H  q'       g   \        P                  ! R(V3R.VV34      R\        P$                  ! V4      R \        P$                  ! V4      RR$\        P                   ! 4       9   g   \        P"                  ! V4      '       d   \        P$                  ! V4      MR$R\        P$                  ! V4      /,          pR%R&V/,          p\'        \        P(                  ! V4      4      hR;p;p;ppV	^ ,          pVP4                  pVP4                  pVV8H  q'       g   \        P                  ! R(V3R/VV34      R\        P$                  ! V4      R \        P$                  ! V4      RR$\        P                   ! 4       9   g   \        P"                  ! V4      '       d   \        P$                  ! V4      MR$R\        P$                  ! V4      /,          pR%R&V/,          p\'        \        P(                  ! V4      4      hR;p;p;ppV	^ ,          pVP6                  pVP6                  pVV8H  q'       g   \        P                  ! R(V3R0VV34      R\        P$                  ! V4      R \        P$                  ! V4      RR$\        P                   ! 4       9   g   \        P"                  ! V4      '       d   \        P$                  ! V4      MR$R\        P$                  ! V4      /,          pR%R&V/,          p\'        \        P(                  ! V4      4      hR;p;p;ppV	^ ,          pVP8                  pVP8                  pVV8H  q'       g   \        P                  ! R(V3R1VV34      R\        P$                  ! V4      R \        P$                  ! V4      RR$\        P                   ! 4       9   g   \        P"                  ! V4      '       d   \        P$                  ! V4      MR$R\        P$                  ! V4      /,          pR%R&V/,          p\'        \        P(                  ! V4      4      hR;p;p;ppV	^ ,          pVP:                  pVP:                  pVV8H  q'       g   \        P                  ! R(V3R2VV34      R\        P$                  ! V4      R \        P$                  ! V4      RR$\        P                   ! 4       9   g   \        P"                  ! V4      '       d   \        P$                  ! V4      MR$R\        P$                  ! V4      /,          pR%R&V/,          p\'        \        P(                  ! V4      4      hR;p;p;ppV	^ ,          pVP<                  pVP<                  pVV8H  q'       g   \        P                  ! R(V3R3VV34      R\        P$                  ! V4      R \        P$                  ! V4      RR$\        P                   ! 4       9   g   \        P"                  ! V4      '       d   \        P$                  ! V4      MR$R\        P$                  ! V4      /,          pR%R&V/,          p\'        \        P(                  ! V4      4      hR;p;p;ppV
^ ,          pVP.                  pRpVV8H  q'       g   \        P                  ! R(V3R4VV34      R\        P$                  ! V4      R \        P$                  ! V4      R!\        P$                  ! V4      /,          pR"R#V/,          p\'        \        P(                  ! V4      4      hR;p;p;ppV
^ ,          pVP0                  pVV 8H  q'       g   \        P                  ! R(V3R5VV 34      R\        P$                  ! V4      R \        P$                  ! V4      RR\        P                   ! 4       9   g   \        P"                  ! V 4      '       d   \        P$                  ! V 4      MR/,          pRRV/,          p\'        \        P(                  ! V4      4      hR;p;ppR# )6codexexistingExistingnewzNew Accountzhttps://auth.openai.com/devicez	ABCD-EFGHz Visit the URL and enter the code)urlcoderaw_textF)processrX   
had_backupboomprompt_readyr?   zshow prompt)kind	operationrC   r   sessionpromptexisting_accounts	collisionretry_availablemessageerrorsuccessrF   done)rm   rn   rC   rt   zignored@example.com)
login_hintpy0rn   py2py5assert %(py7)spy7Nlenpy1translated_addpy3py6assert %(py8)spy8	add_eventassert %(py9)spy9)rd   zexisting@example.com==z1%(py2)s
{%(py2)s = %(py0)s.add_calls
} == %(py5)s)z4%(py2)s
{%(py2)s = %(py0)s.repair_calls
} == %(py5)sz0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)s)zF%(py3)s
{%(py3)s = %(py1)s.kind
} == %(py7)s
{%(py7)s = %(py5)s.kind
})zL%(py3)s
{%(py3)s = %(py1)s.account
} == %(py7)s
{%(py7)s = %(py5)s.account
})zL%(py3)s
{%(py3)s = %(py1)s.message
} == %(py7)s
{%(py7)s = %(py5)s.message
})zH%(py3)s
{%(py3)s = %(py1)s.error
} == %(py7)s
{%(py7)s = %(py5)s.error
})zJ%(py3)s
{%(py3)s = %(py1)s.prompt
} == %(py7)s
{%(py7)s = %(py5)s.prompt
})zL%(py3)s
{%(py3)s = %(py1)s.session
} == %(py7)s
{%(py7)s = %(py5)s.session
})zP%(py3)s
{%(py3)s = %(py1)s.collision
} == %(py7)s
{%(py7)s = %(py5)s.collision
})z`%(py3)s
{%(py3)s = %(py1)s.existing_accounts
} == %(py7)s
{%(py7)s = %(py5)s.existing_accounts
})z,%(py3)s
{%(py3)s = %(py1)s.kind
} == %(py6)s)z/%(py3)s
{%(py3)s = %(py1)s.account
} == %(py5)s)r)   r   r   objectr%   RuntimeErrorr   r+   r   r3   r?   reauthenticater6   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationr7   r~   rm   rC   rt   ru   rp   ro   rr   rq   )rc   createdrp   ro   failurer   success_eventrn   adapterr   translated_reauth@py_assert1@py_assert4@py_assert3@py_format6@py_format8@py_assert2@py_assert5@py_format7@py_format9@py_assert0@py_assert6@py_format10s                          r   Qtest_codex_lifecycle_adapter_translates_device_auth_events_and_ignores_login_hintr   L   s1   Z8Hw}5G,3F
  W=Q=Q^cdG6"G?@I 	M (m_EI#I.G'++m@U+VWNW33H=>1=/1/11111111111911119111111/11111111!!/Z/Z/////!//////9////9///!///Z////////~#!#!#####!######3####3#######~####~######!########!3!!3Y^^3!^33333!^333333!333333Y3333Y333^33333333!9$$9	(9(99$(999999$(9999999$999999	9999	999(999999999!9$$9	(9(99$(999999$(9999999$999999	9999	999(999999999!5""5ioo5"o55555"o555555"555555i5555i555o55555555!7##7y'7'77#'777777#'7777777#777777y7777y777'777777777!9$$9	(9(99$(999999$(9999999$999999	9999	999(999999999!=&&=)*=*==&*======&*=======&======)====)===*=========!M..M)2M2MM.2MMMMMM.2MMMMMMM.MMMMMM)MMMM)MMM2MMMMMMMMMQ1$$1	1$	11111$	111111$111	11111111Q3''3'833333'8333333'33333383333833333333r    c                   V ^8  d   QhRR/# r`   r   )r   s   "r   r   r   ~   s     
) 
)$ 
)r    c            	     <   \        R RR4      p \        \        P                  ^
^4      p\	        V4      p\        V4      pVP                  V RR7      pWA8H  qU'       g   \        P                  ! RV3RWA34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRRR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR/,          pR	R
V/,          p\        \        P                  ! V4      4      hRpVP                  qPP                   R3.qV8H  q'       g   \        P                  ! RV	3RWX34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          p
RRV
/,          p\        \        P                  ! V4      4      hR;p;rVP"                  pR.qV8H  q'       g   \        P                  ! RV	3RWX34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          p
RRV
/,          p\        \        P                  ! V4      4      hR;p;rR# )rb   rafaRafag      @)rY   ry   returnedrz   rP   assert %(py4)spy4Nclientr{   r|   r}   Tr   )z%(py0)s == %(py2)s)z3%(py2)s
{%(py2)s = %(py0)s.fetch_calls
} == %(py5)s)z4%(py2)s
{%(py2)s = %(py0)s.warmup_flags
} == %(py5)s)r)   r   r   OKrN   r   r]   r   r   r   r   r   r   r   r   rS   r%   rT   )rC   rP   r   r   r   r   @py_format3@py_format5r   r   r   r   s               r   @test_codex_health_adapter_fetches_using_account_home_and_timeoutr   ~   s   w/G|B7Hx(F (G}}W3}7H888xx>#7#7"=!>>!>>>>>>>>>>>>6>>>>6>>>>>>!>>>>>>>>>(4&(&(((((((((((6((((6((((((&((((((((r    c                   V ^8  d   QhRR/# r`   r   )r   s   "r   r   r      s     F F Fr    c                    \        R RR4      p \        RRR4      p\        \        P                  \	        4       \	        4       \	        4       R7      p\        \        P
                  \	        4       \	        4       \	        4       R7      p\        W#.4      pVP                  p\        P                  qe! V4      qwVJ q'       Eg   \        P                  ! RV3RWr34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R	R
\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MR
R\        P                  ! V4      R\        P                  ! V4      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR/,          p	RRV	/,          p
\        \        P                  ! V
4      4      hR;p;p;rxVP                  pRq! V4      qVJ q'       Eg+   \        P                  ! RV3RW34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      R\        P                  ! V4      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR/,          pRRV/,          p\        \        P                  ! V4      4      hR;p;p;rVP                  pRq! V4      qVJ q'       Eg+   \        P                  ! RV3RW34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      R\        P                  ! V4      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR/,          pRRV/,          p\        \        P                  ! V4      4      hR;p;p;rVP                   qU! V 4      qfVJ qw'       Egc   \        P                  ! RV3RWb34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R	R\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MRR\        P                  ! V4      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR/,          pRRV/,          p	\        \        P                  ! V	4      4      hR;p;rgVP                   qU! V4      qfVJ qw'       Egc   \        P                  ! RV3RWc34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R	R\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR/,          pRRV/,          p	\        \        P                  ! V	4      4      hR;p;rgR# ) rb   sharedzCodex SharedclaudezClaude Sharedr   registry	lifecyclehealthry   service_maprz   r   r   r{   r}   r   codex_serviceszassert %(py11)spy11NCODEXr   r   r   zassert %(py10)spy10claude_servicescodex_accountr   claude_accountis)zi%(py7)s
{%(py7)s = %(py2)s
{%(py2)s = %(py0)s.for_tool
}(%(py5)s
{%(py5)s = %(py3)s.CODEX
})
} is %(py9)s)zN%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.for_tool
}(%(py4)s)
} is %(py8)s)zQ%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.for_account
}(%(py3)s)
} is %(py7)s)r)   r   r   r   r   CLAUDEr   for_toolr   r   r   r   r   r   r   r   for_account)r   r   r   r   r   r   r   r   @py_assert8r   @py_format12r   r   @py_assert7r   @py_format11r   s                    r   ?test_provider_service_map_dispatches_same_slug_accounts_by_toolr      s/   Wh?Mh/BN% &&(x	N ' ''(x	O %n%FGKL 3 9 9L 9:LnLLLLL:LLLLLL;LLLL;LLLLLLLLL 3LLLL 3LLL 9LLL:LLLLLLnLLLLnLLLLLLLL::(:N:::::(::::::;::::;:::::::::(::::::N::::N::::::::<<)<_<<<<<)<<<<<<;<<<<;<<<<<<<<<)<<<<<<_<<<<_<<<<<<<<""C"=1C^CCCCC1CCCCCC;CCCC;CCC"CCCCCC=CCCC=CCC1CCCCCC^CCCC^CCCCCCCC""E">2EoEEEEE2EEEEEE;EEEE;EEE"EEEEEE>EEEE>EEE2EEEEEEoEEEEoEEEEEEEEr    c                   V ^8  d   QhRR/# r`   r   )r   s   "r   r   r      s     ( (4 (r    c                 f   \        \        P                  \        4       \        4       \        4       R 7      p \        P
                  ! \        RR7      ;_uu_ 4        \        W .4       RRR4       \        V .4      p\        P
                  ! \        RR7      ;_uu_ 4        VP                  R4       RRR4       \        P
                  ! \        RR7      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     L; i  + '       g   i     Lc; i  + '       g   i     R# ; i)r   	duplicate)matchNr   unknown)
r   r   r   r   pytestraises
ValueErrorr   LookupErrorr   )r   r   s     r   Atest_provider_service_map_rejects_duplicate_and_missing_providersr      s    % &&(x	N 
z	5	5N;< 
6 %n%56K	{(	3	3X& 
4 
z	3	3Y' 
4	3 
6	5
 
4	3 
4	3	3s$   C9DD9D		D	D0	c                  R    ] tR t^tR R ltRRRR/R R lltR R	 ltR
 R ltRtR# )_NativeLifecyclec                   V ^8  d   QhRR/# r`   r   )r   s   "r   r   _NativeLifecycle.__annotate__   s     7 7$ 7r    c                	0    . V n         . V n        . V n        R # r2   )r6   reauth_calls
code_calls)r8   s   &r   r9   _NativeLifecycle.__init__   s    CE+-46r    rx   Nr   c               $    V ^8  d   QhRRRRRR/# )r   r   r   rx   r<   r   r   )r   s   "r   r   r      s!     7 7 7Z 7j 7r    c             #  	t   "   V P                   P                  WV34       \        R RRR/4      ! 4       x  R# 5iEventrm   rv   Nr   )r6   r>   type)r8   r   rx   r   s   &&$$r   r?   _NativeLifecycle.add   s3     u$787B 3466s   68c                   V ^8  d   QhRR/# rB   r   )r   s   "r   r   r      s     7 7g 7r    c              #  	p   "   V P                   P                  V4       \        R RRR/4      ! 4       x  R# 5ir   )r   r>   r   rE   s   &&r   r   _NativeLifecycle.reauthenticate   s0       )7B 3466s   46c                    V ^8  d   QhRRRR/# )r   rg   r   r   r/   r   )r   s   "r   r   r      s     0 0 0 0r    c                	>    V P                   P                  W34       R # r2   )r   r>   )r8   ro   rg   s   &&&r   submit_code_NativeLifecycle.submit_code   s    /r    )r6   r   r   )	rH   rI   rJ   rK   r9   r?   r   r   rL   r   r    r   r   r      s*    7
7$ 7SW 770 0r    r   zprovider,device_authc               (    V ^8  d   QhRRRRRRRR/# )	r   tmp_pathr   providerr   device_authr[   r   r/   r   )r   s   "r   r   r      s2     ;` ;`;`!;`04;`	;`r    c                  a V R ,          P                  4       pVP                  RRR7       VP                  R4       \        \        P
                  RRV 2VVR7      p\        \        VRV 24      R	W,          R
R
R
VR7      p\        4       p. oRR/V3R llp\        V\        R4      \        R4      VR7      p\        VP                  V4      4      p	V	 U
u. uF  qP                  NK  	  pp
RR.qV8H  q'       gy   \        P                  ! R0V3R1W34      R\        P                   ! V4      R\        P                   ! V4      /,          pRRV/,          p\#        \        P$                  ! V4      4      hR
;p;rVP&                  p. pVV8H  q'       g   \        P                  ! R0V3R2VV34      RR\(        P*                  ! 4       9   g   \        P,                  ! V4      '       d   \        P                   ! V4      MRR\        P                   ! V4      R\        P                   ! V4      /,          pRRV/,          p\#        \        P$                  ! V4      4      hR
;p;pp\/        S4      p^pVV8H  pV'       Eg   \        P                  ! R0V3R3VV34      RR\(        P*                  ! 4       9   g!   \        P,                  ! \.        4      '       d   \        P                   ! \.        4      MRRR\(        P*                  ! 4       9   g   \        P,                  ! S4      '       d   \        P                   ! S4      MRR \        P                   ! V4      R\        P                   ! V4      /,          pR!R"V/,          p\#        \        P$                  ! V4      4      hR
;p;ppS^ ,          pVR#,          p. R4OqV8H  q'       gy   \        P                  ! R0V3R1W34      R\        P                   ! V4      R\        P                   ! V4      /,          pRRV/,          p\#        \        P$                  ! V4      4      hR
;p;rVR$,          p. R5OqV8H  q'       gy   \        P                  ! R0V3R1W34      R\        P                   ! V4      R\        P                   ! V4      /,          pRRV/,          p\#        \        P$                  ! V4      4      hR
;p;rVV9   pV'       g   \        P                  ! R6V3R7VV34      RR%\(        P*                  ! 4       9   g   \        P,                  ! V4      '       d   \        P                   ! V4      MR%RR&\(        P*                  ! 4       9   g   \        P,                  ! V4      '       d   \        P                   ! V4      MR&/,          pR'RV/,          p\#        \        P$                  ! V4      4      hR
pVP0                  pVV9   q'       Eg    \        P                  ! R6V3R8VV34      RR(\(        P*                  ! 4       9   g   \        P,                  ! V4      '       d   \        P                   ! V4      MR(R\        P                   ! V4      RR&\(        P*                  ! 4       9   g   \        P,                  ! V4      '       d   \        P                   ! V4      MR&/,          pRRV/,          p\#        \        P$                  ! V4      4      hR
;ppR)qV9   qVJ pV'       Eg$   \        P                  ! R6V3R9VV34      R\        P                   ! V4      R R&\(        P*                  ! 4       9   g   \        P,                  ! V4      '       d   \        P                   ! V4      MR&/,          p\        P                  ! R:V3R;W34      RTRR*\(        P*                  ! 4       9   g   \        P,                  ! V4      '       d   \        P                   ! V4      MR*/,          pR+R,V/,          p\#        \        P$                  ! V4      4      hR
;p;ppR- V 4       p\3        V4      q'       * pV'       g   R.RR/\(        P*                  ! 4       9   g!   \        P,                  ! \2        4      '       d   \        P                   ! \2        4      MR/R\        P                   ! V4      R\        P                   ! V4      /,          p\#        \        P$                  ! V4      4      hR
;p;ppR
# u up
i )<	grant.key	syntheticutf-8encoding  fixture-authorityzroute-modeauthority_nameroute_idr   proxy_grant_refzfixture-FixtureNr$   r   r%   r&   r'   r(   authority_bindingcheckFc                 < R q!VJ q3'       g   \         P                  ! RV3R	W34      RR\        P                  ! 4       9   g   \         P                  ! V4      '       d   \         P
                  ! V4      MRR\         P
                  ! V4      /,          pRRV/,          p\        \         P                  ! V4      4      hR;r2SP                  \        V 4      4       \        ^ R7      # )
Fry   r  r   zassert %(py5)sr{   N
returncoder   )z%(py0)s is %(py3)s)r   r   r   r   r   r   r   r   r>   r3   r   )argvr  r   r   @py_format4r   callss   &$    r   runnerbtest_authority_lifecycle_repair_uses_local_service_identity_not_native_credentials.<locals>.runner   s{    ~uuuT$Z !,,r    /fixture/subrouter/fixture/statebinary	state_dircommand_runnerstartedrv   r   r   assert %(py6)sr   ry   nativerz   r{   r|   r}   r~   r  r   r   r   :N   N:r  
   Nr   commandr   rC   z--device-authr   r   r   c              3  ~   "   T F3  pR VP                  4       9   ;'       g    RVP                  4       9   x  K5  	  R# 5i)token
credentialN)lower).0items   & r   	<genexpr>etest_authority_lifecycle_repair_uses_local_service_identity_not_native_credentials.<locals>.<genexpr>  s3     _W^t7djjl*JJldjjl.JJW^s   ==z0assert not %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}anyr   z%(py1)s == %(py4)sz4%(py2)s
{%(py2)s = %(py0)s.reauth_calls
} == %(py5)sr   )z	deck-sudoz-uzoverdeck-subrouterz--r  )zauthority-accountrF   z--state-dirr  z
--provider)in)z%(py0)s in %(py2)s)z,%(py2)s
{%(py2)s = %(py0)s.slug
} in %(py4)s)z%(py1)s in %(py3)sr   )z(%(py5)s) is %(py7)s)resolve
write_textchmodr	   r
   	SUBROUTERr   r   r   r   r   r3   r   rm   r   r   r   r   r   r   r   r   r   r~   r   r  )r   r   r   grantbindingrC   r  r	  r   eventseventr   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r  s   &&&                        @r   Rtest_authority_lifecycle_repair_uses_local_service_identity_not_native_credentialsr+     s    #,,.E	[73	KK$$*($G x8H:!67(!G FE-e -
 (()'(	G '((12F$*+F5JJFE+	9/EE/EEEEEE+EEE+EEE/EEEEEEEEE$"$"$$$$$"$$$$$$6$$$$6$$$$$$"$$$$$$$$u::?:33uu:AhG2;        ;   ;            4=        =   =            w8w88ww<<"<7"""""<7""""""7""""7"""<""""""7""""7""""""""6w&6;66666Ow666O666666w6666w66666666666;6666;66666666_W^__s____________s____s_______________+ ,s   c5c                    V ^8  d   QhRRRR/# )r   r   r   r   r/   r   )r   s   "r   r   r     s      %  %UY  %^b  %r    c                X	   \        4       p\        V\        R 4      \        R4      R R7      pVP                  RRRR7       Uu. uF  q3P                  NK  	  ppR.qTV8H  qf'       gy   \
        P                  ! R'V3R(WE34      R	\
        P                  ! V4      R
\
        P                  ! V4      /,          pRRV/,          p\        \
        P                  ! V4      4      hR;p;reVP                  p	R).qV
8H  qU'       g   \
        P                  ! R'V3R*W34      RR\        P                  ! 4       9   g   \
        P                  ! V4      '       d   \
        P                  ! V4      MRR\
        P                  ! V	4      R\
        P                  ! V
4      /,          pRRV/,          p\        \
        P                  ! V4      4      hR;p	;rZV R,          P                  4       pVP                  RRR7       VP!                  R4       \#        \%        RR4      RV R,          RRR\'        \(        P*                  RRRVR7      R 7      p\-        VP/                  V4      4      pV Uu. uF  q3P                  NK  	  ppR!R".qTV8H  qf'       gy   \
        P                  ! R'V3R(WE34      R	\
        P                  ! V4      R
\
        P                  ! V4      /,          pRRV/,          p\        \
        P                  ! V4      4      hR;p;reVR+,          qDP0                  pR#pVV8H  q'       g   \
        P                  ! R'V
3R,VV34      R	\
        P                  ! V4      R$\
        P                  ! V4      R\
        P                  ! V4      /,          pR%R&V/,          p\        \
        P                  ! V4      4      hR;p;p;p
pVP2                  p	. qV
8H  qU'       g   \
        P                  ! R'V3R-W34      RR\        P                  ! 4       9   g   \
        P                  ! V4      '       d   \
        P                  ! V4      MRR\
        P                  ! V	4      R\
        P                  ! V
4      /,          pRRV/,          p\        \
        P                  ! V4      4      hR;p	;rZR# u upi u upi ).r  r  c                     \        ^R7      # )   r  r   )_args_kwargss   *,r   <lambda>Xtest_authority_lifecycle_add_stays_native_and_failed_repair_is_bounded.<locals>.<lambda>  s	    B1Or    r  Freshfresh@example.invalidfresh)rx   r   rv   r   r   r  r   Nry   r  rz   r{   r|   r}   r   r   r   r   r   rb   fixturer   homer   zroute-fixturer   r   r  r   zGateway repair failedr   r   r   r   r   )r4  r5  r6  r   )z/%(py3)s
{%(py3)s = %(py1)s.message
} == %(py6)sr!  )r   r   r   r?   rm   r   r   r   r   r   r6   r   r   r   r#  r$  r%  r   r   r	   r
   SUBROUTER_DARKr3   r   rt   r   )r   r  r   r*  r   r   r   r   r   r   r   r   r   r'  rC   r)  r   r   s   &                 r   Ftest_authority_lifecycle_add_stays_native_and_failed_repair_is_boundedr;    s   F'()'(O	G %,KKD[biK$jk$j5JJ$jzkpyozzozzzzzzkzzzkzzzozzzzzzzzzL KLLLLLLLLLLLLLL6LLLL6LLLLLLLLLLLLLLL#,,.E	[73	KKw	*&*--.$!
G '((12F$*+F5JJFE+	9/EE/EEEEEE+EEE+EEE/EEEEEEEEE":88!88!888888!8888:888888!888888888$"$"$$$$$$$$$$$6$$$$6$$$$$$"$$$$$$$$1 l, ,s   R"!R')rb   T)r   F)4
__future__r   builtinsr   _pytest.assertion.rewrite	assertionrewriter   syspathlibr   typesr   r   pathinsertr   __file__r#  parentsaccount_registryr   r   r   r	   r
   r   r   r   device_auth_operationr   health_clientr   r   provider_servicesr   r   r   r   r   r)   r+   rN   r   r   r   r   r   markparametrizer+  r;  r   r    r   <module>rN     s    "   
  !  3tH~--/77:; <  < + 7 ' '" $/4d
)F0((0 0$ //CT1UV;` W;`| %r    