+
    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t^ RIHtHtHt ^ RIHtHt ^ RIHtHt  ! R R	4      t R
 R lt!]PD                  PG                  R]PH                  ]PJ                  .4      R R l4       t&R R lt'R R lt(R# )    )annotationsN)Path)SimpleNamespace)AccountRegistryAccountRegistryKindAuthorityMode)AuthorityProvisionMigrationError)AccountSnapshotHealthStatusc                  j    ] tR t^tR R ltR R ltR R ltR R ltR	 R
 ltR R lt	R R lt
RtR# )	FakeAdminc                    V ^8  d   QhRRRR/# )   registryr   returnNone )formats   "m/home/user/overdeck-private-tests/workstation-ai-broad2/modules/systray/tests/test_gateway_account_manager.py__annotate__FakeAdmin.__annotate__   s     : : :T :    c                	X    Wn         ^V n        . V n        . V n        . V n        . V n        R# )   N)r   
generationdisabledremoved_grantsremoved_routesremoved_accounts)selfr   s   &&r   __init__FakeAdmin.__init__   s-     #%)+)+79r   c                    V ^8  d   QhRRRR/# )r   authority_namestrr   r   r   )r   s   "r   r   r      s     n n3 nCU nr   c                	<   V P                   P                  R ,          pVP                  RRRR7       W1P                   RVP                   R2,          pVP                  RRR7       VP                  R	4       \        VR
VP                  4       V P                  4      # )zfixture-authorityT  )parentsexist_okmode-z.grantzsynthetic-grant
utf-8encodingi  routefixture1234567890)
r   base_dirmkdirtoolslug
write_textchmodr   resolver   )r    accountr$   materialgrants   &&&  r   login_and_provisionFakeAdmin.login_and_provision   s    ==)),??td?ll^1W\\N&AA,w?E!.2JEMMO]a]l]lmmr   c               $    V ^8  d   QhRRRRRR/# )r   	_providerr%   _account_idr   intr   )r   s   "r   r   r   "   s!      3 S S r   c                	L    V ;P                   ^,          un         V P                   # )r   )r   )r    r=   r>   s   &&&r   status_generationFakeAdmin.status_generation"   s    1r   c                    V ^8  d   QhRRRR/# r   route_idr%   r   r   r   )r   s   "r   r   r   &   s     ' 'c 'd 'r   c                	<    V P                   P                  V4       R # N)r   appendr    rE   s   &&r   disable_routeFakeAdmin.disable_route&   s    X&r   c                    V ^8  d   QhRRRR/# rD   r   )r   s   "r   r   r   )   s     - -C -D -r   c                	<    V P                   P                  V4       R # rG   )r   rH   rI   s   &&r   remove_route_grantsFakeAdmin.remove_route_grants)       ""8,r   c                    V ^8  d   QhRRRR/# rD   r   )r   s   "r   r   r   ,   s     - -S -T -r   c                	<    V P                   P                  V4       R # rG   )r   rH   rI   s   &&r   remove_routeFakeAdmin.remove_route,   rP   r   c               $    V ^8  d   QhRRRRRR/# )r   providerr%   
account_idr   r   r   )r   s   "r   r   r   /   s!     = =s = = =r   c                	>    V P                   P                  W34       R # rG   )r   rH   )r    rV   rW   s   &&&r   remove_accountFakeAdmin.remove_account/   s    $$h%;<r   )r   r   r   r   r   r   N)__name__
__module____qualname____firstlineno__r!   r:   rA   rJ   rN   rS   rY   __static_attributes__r   r   r   r   r      s+    :n'--= =r   r   c               $    V ^8  d   QhRRRRRR/# )r   tmp_pathr   kindr   r   r   r   )r   s   "r   r   r   3   s"       $7 O r   c                    V R ,          pVP                  RRR7       VP                  R4       \        W!R7      pVP                  RR4       V# )runtimeTr'   )r(   r*   )r0   rb   fixtureFixture)r1   r5   r   add_dir)ra   rb   baser   s   &&  r   	_registryri   3   sG    iDJJt%J(JJu8HY	*Or   rb   c               (    V ^8  d   QhRRRRRRRR/# )	r   ra   r   monkeypatchpytest.MonkeyPatchrb   r   r   r   r   )r   s   "r   r   r   =   s,     1 11!31;N1	1r   c                   \        W4      p\        P                  ! V\        V4      R 7      pVP	                  4       ^ ,          pVP                  V4      pVP                  VP                  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;r\        P"                  q! V4      p	\        P$                  qP&                  qVJ q'       Eg   \        P                  ! R%V3R&W34      RR	\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        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                  ! \        4      '       d   \        P                  ! \        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;rVP(                  pRqV	J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(                  qP*                  p
\,        P.                  pV
VJ pV'       Eg4   \        P                  ! R%V3R)V
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      RR\        P                  ! 4       9   g!   \        P                  ! \,        4      '       d   \        P                  ! \,        4      MRR\        P                  ! V4      /,          pRRV/,          p\        \        P                   ! V4      4      hR;p;p
;ppVP0                  R,          pRpVP2                  p	Rq! VR7      pVV9   pV'       g   \        P                  ! R*V3R+VV34      R\        P                  ! V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      /,          pRRV/,          p\        \        P                   ! V4      4      hR;p;p;p	;rVP5                  \        RR 4       VP7                  V4      pVP                  VP                  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;r\        P"                  q! V4      p	\        P$                  qP8                  qVJ q'       Eg   \        P                  ! R%V3R,W34      RR	\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        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                  ! \        4      '       d   \        P                  ! \        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;rVP(                  pRqV	J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(                  qP*                  p
\,        P:                  pV
VJ pV'       Eg4   \        P                  ! R%V3R-V
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      RR\        P                  ! 4       9   g!   \        P                  ! \,        4      '       d   \        P                  ! \,        4      MRR\        P                  ! V4      /,          pRRV/,          p\        \        P                   ! V4      4      hR;p;p
;ppVP<                  pR"qV	J 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>                  pR"qV	J 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;rR# )0admindarkpy0stagedpy2py5assert %(py7)spy7Ngatewaypy3currentpy9py11zassert %(py13)spy13py4py6r   py8zassert %(py10)spy10zauthority_endpoints.jsonzhttp://127.0.0.1:31415r,   r-   py1endpointzassert %(py11)sgateway_health_snapshotc                 >    \        \        P                  R R RRR7      # )N      ?zGateway: ready
checked_atdetail)r
   r   OK_args_kwargss   *,r   <lambda>]test_stage_and_activate_keep_systray_as_registry_and_use_loopback_authority.<locals>.<lambda>P   s    /OOT4C@P#
r   	authorityreceiptactiveF==z-%(py2)s
{%(py2)s = %(py0)s.state
} == %(py5)sis)z%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.gateway_account_state
}(%(py3)s)
} is %(py11)s
{%(py11)s = %(py9)s
{%(py9)s = %(py7)s.GatewayAccountState
}.TESTING
}is not)z=%(py2)s
{%(py2)s = %(py0)s.authority_binding
} is not %(py5)s)zw%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.authority_binding
}.mode
} is %(py8)s
{%(py8)s = %(py6)s.SUBROUTER_DARK
})in)zX%(py1)s in %(py9)s
{%(py9)s = %(py5)s
{%(py5)s = %(py3)s.read_text
}(encoding=%(py7)s)
})z%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.gateway_account_state
}(%(py3)s)
} is %(py11)s
{%(py11)s = %(py9)s
{%(py9)s = %(py7)s.GatewayAccountState
}.ACTIVE
})zr%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.authority_binding
}.mode
} is %(py8)s
{%(py8)s = %(py6)s.SUBROUTER
})zB%(py2)s
{%(py2)s = %(py0)s.provider_credential_copied
} is %(py5)s)z<%(py2)s
{%(py2)s = %(py0)s.native_fallback_used
} is %(py5)s) ri   rw   LocalGatewayAccountManagerr   liststagery   r3   state
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationgateway_account_stateGatewayAccountStateTESTINGauthority_bindingr*   r   SUBROUTER_DARKr0   	read_textsetattractivateACTIVE	SUBROUTERprovider_credential_copiednative_fallback_used)ra   rk   rb   r   managerr7   rr   ry   @py_assert1@py_assert4@py_assert3@py_format6@py_format8@py_assert8@py_assert10@py_assert6@py_format12@py_format14@py_assert7@py_assert5@py_format9@py_format11r   @py_assert0@py_assert2@py_format10r   r   s   &&&                         r   Ktest_stage_and_activate_keep_systray_as_registry_and_use_loopback_authorityr   <   sV    (H008ATUGmmoa G]]7#Foogll+G<<!6!6!!!!!<!!!!!!6!!!!6!!!<!!!6!!!!!!!!((X(1XW5P5PX5X5XX5XXXXXX1XXXXXX7XXXX7XXX(XXXXXXXXXXXXX1XXXXXXWXXXXWXXX5PXXX5XXXXXXXXX$$0D0D00000$000000700007000$000D00000000$$I))I]-I-II)-IIIIII)-IIIIIII7IIII7III$III)IIIIII]IIII]III-IIIIIIIII  #==H#Kx'9'9K7K'97'KK#'KKKKKK#'KKKK#KKKKKKxKKKKxKKK'9KKK7KKK'KKKKKKKKK!	
 w'G__W\\*F=='K'K'''''=''''''7''''7'''='''K''''''''((V(0VG4O4OV4V4VV4VVVVVV0VVVVVV7VVVV7VVV(VVVVVVVVVVVVV0VVVVVVGVVVVGVVV4OVVV4VVVVVVVVV##/4/4/////#//////6////6///#///4////////##C((CM,C,CC(,CCCCCC(,CCCCCCC6CCCC6CCC#CCC(CCCCCCMCCCCMCCC,CCCCCCCCC--6666666-666666766667666-66666666666''050500000'000000700007000'000500000000r   c               $    V ^8  d   QhRRRRRR/# )r   ra   r   rk   rl   r   r   r   )r   s   "r   r   r   ^   s(     l lT lHZ l_c lr   c                >   \        V \        P                  4      p\        P                  ! V\        V4      R 7      pVP                  VP                  4       ^ ,          4       VP                  R4      pVP                  \        RR 4       \        P                  ! \        RR7      ;_uu_ 4        VP                  V4       RRR4       \        P                  qSP                  pRqv! V4      q! V4      p	\        P                  qP                   qVJ q'       Eg   \"        P$                  ! RV3RW34      RR\&        P(                  ! 4       9   g!   \"        P*                  ! \        4      '       d   \"        P,                  ! \        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\"        P,                  ! V4      R\"        P,                  ! V4      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      /
,          pRRV/,          p\/        \"        P0                  ! V4      4      hR;p;p;p;p;p	;p;rR#   + '       g   i     ELS; i)rn   re   r   c                 >    \        \        P                  R R RRR7      # )Nr   Gateway: repair requiredr   )r
   r   BROKENr   s   *,r   r   8test_activate_refuses_nonready_gateway.<locals>.<lambda>f   s    /tD^#
r   r   )matchNrq   rw   rs   rx   r   rt   rv   rz   r{   r|   py15py17assert %(py19)spy19r   )z%(py11)s
{%(py11)s = %(py2)s
{%(py2)s = %(py0)s.gateway_account_state
}(%(py9)s
{%(py9)s = %(py5)s
{%(py5)s = %(py3)s.current
}(%(py7)s)
})
} is %(py17)s
{%(py17)s = %(py15)s
{%(py15)s = %(py13)s.GatewayAccountState
}.TESTING
})ri   r   CODEXrw   r   r   r   r   ry   r   pytestraisesr	   r   r   r   r   r   r   r   r   r   r   r   r   )ra   rk   r   r   ry   r   r   r   r   r   @py_assert14@py_assert16@py_assert12@py_format18@py_format20s   &&             r   &test_activate_refuses_nonready_gatewayr   ^   s   #6#<#<=H008ATUGMM(--/!$%ooi(G!	
 
~-G	H	H! 
I((kkk)Ck()CDkHcHckHkHkkHkkkkkkDkkkkkk7kkkk7kkk(kkkkkkkkkkkkkkkkkkk)CkkkDkkkkkkkkkkkkkHckkkHkkkkkkkkkk 
I	H	Hs   /LL	c                    V ^8  d   QhRRRR/# )r   ra   r   r   r   r   )r   s   "r   r   r   o   s     < <X\ <ae <r   c                f   \        V \        P                  4      p\        V4      p\        P
                  ! WR 7      pVP                  VP                  4       ^ ,          4       VP                  R4      pVP                  '       d   VP                  P                  MRpVP                  V4      pV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;r\        P*                  qsP                  pRq! V4      q! V4      p\        P,                  qP.                  pVVJ pV'       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\        P$                  ! V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\        P$                  ! V4      RR
\        P                   ! 4       9   g!   \        P"                  ! \        4      '       d   \        P$                  ! \        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;p;p;p;pp. pRqVJqpV	'       d   VP0                  q! 4       pV'       * qpV'       E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      /,          p
RR	V
/,          qP3                  V4       V	'       d   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VP3                  V4       \        P4                  ! V^ 4      / ,          pRRV/,          p\'        \        P(                  ! V4      4      hR;p;p;p	;p;p;ppVP6                  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;rVP8                  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;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;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# )%rn   re   Nznative-cancelledrq   r   rs   rt   ru   rv   rw   rx   r   rz   r{   r|   r   r   r   r   r9   z%(py7)szBnot %(py13)s
{%(py13)s = %(py11)s
{%(py11)s = %(py9)s.exists
}()
}zassert %(py17)sr/   ro   r   r   r   )z%(py11)s
{%(py11)s = %(py2)s
{%(py2)s = %(py0)s.gateway_account_state
}(%(py9)s
{%(py9)s = %(py5)s
{%(py5)s = %(py3)s.current
}(%(py7)s)
})
} is %(py17)s
{%(py17)s = %(py15)s
{%(py15)s = %(py13)s.GatewayAccountState
}.NATIVE
}r   )z%(py2)s is not %(py5)s)z0%(py2)s
{%(py2)s = %(py0)s.disabled
} == %(py5)s)z6%(py2)s
{%(py2)s = %(py0)s.removed_grants
} == %(py5)s)z6%(py2)s
{%(py2)s = %(py0)s.removed_routes
} == %(py5)s)codexre   )z8%(py2)s
{%(py2)s = %(py0)s.removed_accounts
} == %(py5)s)ri   r   r   r   rw   r   r   r   ry   r   proxy_grant_refcancelr   r   r   r   r   r   r   r   r   r   r   NATIVEexistsrH   _format_boolopr   r   r   r   )ra   r   ro   r   ry   r9   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   @py_format15@py_format16s   &                      r   Itest_cancel_dark_returns_account_to_native_and_removes_authority_materialr   o   s   #6#<#<=HhE00GGMM(--/!$%ooi(G9@9R9R9RG%%55X\EnnW%G==.........=......7....7...=............((jjj)Cj()CDjHcHcjHjHjjDHjjjjjjDHjjjjjjj7jjjj7jjj(jjjjjjjjjjjjjjjjjjj)CjjjDjjjjjjjjjjjjjHcjjjHjjjjjjjjjj3333U\\3\^3^!333335333333533335333333333333333U3333U333\333^333333333333333>>7677777777>777777577775777>777777777777=$<#==#============5====5======#==========$<#==#============5====5======#=========!!;&:%;;%;;;;;;!;;;;;;5;;;;5;;;!;;;%;;;;;;;;;r   ))
__future__r   builtinsr   _pytest.assertion.rewrite	assertionrewriter   syspathlibr   typesr   r   pathinsertr%   __file__r6   r(   gateway_account_managerrw   account_registryr   r   r   authority_migrationr   r	   health_clientr
   r   r   ri   markparametrizer   CLAUDEr   r   r   r   r   r   <module>r      s    "   
  !  3tH~--/77:; < ) P P B 7= =D "5";";=P=W=W!XY1 Z1Bl"<r   