+
    5mj/  c                     ^ RI Ht ^ RIt^ RIHu Ht ^ RIt^ RI	t	^ RI
Ht ]	P                  P                  ^ ]! ]! ]4      P!                  4       P"                  ^,          4      4       ^ RIHt ^ RIHtHt ]P.                  ! RRRR	R
//4      tR R lt ! R R4      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# )    )annotationsN)Path)ClaudeTokenIdentity)ClaudeOAuthRequestClaudeOAuthResponseaccountuuidaccount-uuidemailperson@example.comc               $    V ^8  d   QhRRRRRR/# )   pathr   access_tokenstrreturnNone )formats   "e/home/user/overdeck-private-tests/workstation-ai-broad2/modules/systray/tests/test_claude_identity.py__annotate__r      s!      T       c           	         V P                   P                  R R R7       V P                  \        P                  ! RRVRR//4      RR7       R# )	T)parentsexist_okclaudeAiOauthaccessTokenrefreshTokenrefreshzutf-8)encodingN)parentmkdir
write_textjsondumps)r   r   s   &&r   _write_credentialsr%      sL    KKdT2OO

}lNIVW	
 	  r   c                  .    ] tR t^tR R ltR R ltRtR# )
_Transportc                    V ^8  d   QhRRRR/# )r   	responsesr   r   r   r   )r   s   "r   r   _Transport.__annotate__   s     * *#6 *4 *r   c                	4    . V n         \        V4      V n        R # )N)requestslist
_responses)selfr)   s   &*r   __init___Transport.__init__   s    24y/r   c               $    V ^8  d   QhRRRRRR/# )r   requestr   _timeoutfloatr   r   r   )r   s   "r   r   r*       s(     V V 2 Ve VH[ Vr   c                	    V P                   P                  V4       V P                  \        \	        V P                   4      ^,
          \	        V P                  4      ^,
          4      ,          # )   )r,   appendr.   minlen)r/   r3   r4   s   &&&r   __call___Transport.__call__    sG    W%s3t}}#5#93t;ORS;STUUr   )r.   r,   N)__name__
__module____qualname____firstlineno__r0   r;   __static_attributes__r   r   r   r'   r'      s    *V Vr   r'   c                    V ^8  d   QhRRRR/# r   tmp_pathr   r   r   r   )r   s   "r   r   r   %   s     M M4 MTX Mr   c                v   V R ,          p\        VR4       \        \        ^\        4      4      pV R,          p\	        W24      P                  V4      p\	        W24      P                  V4      p. pRqtVJqq'       d   VP                  p
RqV8H  qp	V	'       Eg   \        P                  ! R"V3R#WG34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      /,          pRR	V/,          qP                  V4       V'       d   \        P                  ! R$X3R%X
X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VP                  V4       \        P                  ! V^ 4      / ,          pRRV/,          p\        \        P                   ! V4      4      hR;p	;p;p;p;p
;rVP"                  pRqvV8H  q'       g   \        P                  ! R$V3R&Wg3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;rWT8H  qf'       g   \        P                  ! R$V3R'WT3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$                  p\'        V4      p^pVV8H  pV'       Eg4   \        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      R\        P                  ! V4      /,          pRRV/,          p\        \        P                   ! V4      4      hR;p;p;ppVP$                  ^ ,          P(                  R,          p	RqV8H  pV'       gy   \        P                  ! R$V3R)W34      R\        P                  ! V	4      R\        P                  ! V4      /,          pR R!V/,          p\        \        P                   ! V4      4      hR;p	;ppR# )*.credentials.jsonaccessidentity.jsonNr	   py2firstpy5%(py7)spy7py9py11py14%(py16)spy16assert %(py19)spy19r   py0assert %(py7)ssecondassert %(py4)spy4r:   py1	transportpy3py8assert %(py10)spy10AuthorizationzBearer accesszassert %(py6)spy6is notz%(py2)s is not %(py5)s==z7%(py11)s
{%(py11)s = %(py9)s.account_uuid
} == %(py14)s)z-%(py2)s
{%(py2)s = %(py0)s.email
} == %(py5)sz%(py0)s == %(py2)szN%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.requests
})
} == %(py8)s)z%(py1)s == %(py4)s)r%   r'   r   _PROFILE_BODYr   identifyaccount_uuid
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprr8   _format_boolopAssertionError_format_explanationr
   r,   r:   headers)rD   credentialsr[   
cache_pathrJ   rW   @py_assert1@py_assert4@py_assert3@py_assert0@py_assert10@py_assert13@py_assert12@py_format6@py_format8@py_format15@py_format17@py_format18@py_format20@py_format3@py_format5@py_assert2@py_assert7@py_assert6@py_format9@py_format11@py_format7s   &                          r   <test_a_token_is_verified_once_and_then_served_from_the_cacher   %   sK   00K{H-.sMBCIO+J
6??LE 7@@MFEEEE!3!3E~E~!EEEEE5EEEEEE5EEEE5EEEEEEEEEEEE!3~EEEEEEEEEEEEE!3EEE~EEEEEEEEEEEEEEEE;;.........;......5....5...;............?666UU!!'3!"'a'"a'''''"a''''''3''''3'''''''y''''y'''!'''"'''a''''''''a ((9L_L_LLLLL9LLL9LLL_LLLLLLLLr   c                    V ^8  d   QhRRRR/# rC   r   )r   s   "r   r   r   5   s     
( 
( 
($ 
(r   c                   V R ,          p\        VR4       \        \        ^\        4      4      p\	        V R,          V4      pVP                  V4       \        VR4       VP                  V4       VP                  p\        V4      p^qeV8H  qw'       Eg3   \        P                  ! RV3RWV3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      R
\        P                  ! V4      /,          pRRV/,          p	\        \        P                  ! V	4      4      hR;p;p;rvR# )rF   rG   rH   zaccess-rotatedrU   r:   rZ   r[   r\   rK   r]   r^   r_   Nre   ri   )r%   r'   r   rj   r   rk   r,   r:   rm   rn   ro   rp   rq   rr   rt   ru   )
rD   rw   r[   identityr   rz   r   r   r   r   s
   &         r   "test_a_new_token_is_verified_againr   5   s   00K{H-.sMBCI"8o#=yIHk"{$45k"!!'3!"'a'a'''''"''''''3''''3'''''''y''''y'''!'''"'''a''''''''r   c                    V ^8  d   QhRRRR/# rC   r   )r   s   "r   r   r   B   s     ( (d (W[ (r   c                t  a V R ,          p\        VR4       \        \        RRRR/4      \        ^\        4      4      pR.o\	        V R,          VV3R lR	7      pVP
                  qD! V4      pR
qeVJ qw'       Eg+   \        P                  ! R$V3R%WV3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\        P                  ! V4      /,          pRRV/,          p	\        \        P                  ! V	4      4      hR
;p;p;rvRS^ &   VP
                  qD! V4      pR
qeVJ qw'       Eg+   \        P                  ! R$V3R%WV3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\        P                  ! V4      /,          pRRV/,          p	\        \        P                  ! V	4      4      hR
;p;p;rvVP                  p
\        V
4      p^qeV8H  qw'       Eg3   \        P                  ! R&V3R'WV3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      R\        P                  ! V4      /,          pRRV/,          p	\        \        P                  ! V	4      4      hR
;p
;p;rvRS^ &   VP                  V4      p. pR
q[VJqq'       d   VP                   pRqV8H  pTpV'       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      /,          pRRV/,          pVP#                  V4       V'       d   \        P                  ! R&X3R*XX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VP#                  V4       \        P$                  ! V^ 4      / ,          pR"R#V/,          p\        \        P                  ! V4      4      hR
;p;p;p;p;p;ppVP                  p
\        V
4      p^qeV8H  qw'       Eg3   \        P                  ! R&V3R'WV3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      R\        P                  ! V4      /,          pRRV/,          p	\        \        P                  ! V	4      4      hR
;p
;p;rvR
# )+rF   rG      Retry-After600     @@rH   c                    < S ^ ,          # r   r   clocks   r   <lambda>Qtest_a_throttled_profile_call_is_not_retried_before_retry_after.<locals>.<lambda>J       V[\]V^r   nowNrU   r   rI   r\   rw   rK   r]   r^   r_   g     p@r:   rZ   r[   g     @r	   verifiedrL   rM   rN   rO   rP   rQ   rR   rS   rT   iszN%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.identify
}(%(py3)s)
} is %(py8)sre   ri   rb   rd   rg   )r%   r'   r   rj   r   rk   rm   rn   ro   rp   rq   rr   rt   ru   r,   r:   rl   r8   rs   )rD   rw   r[   r   ry   rz   r   r   r   r   r   r   r{   r|   r}   r~   r   r   r   r   r   r   r   r   s   &                      @r   ?test_a_throttled_profile_call_is_not_retried_before_retry_afterr   B   s*   00K{H-CmU%;<C/I IE"8o#=yN^_H1[)1T1T11111)111111811118111111111[1111[111)111T11111111E!H1[)1T1T11111)111111811118111111111[1111[111)111T11111111!!'3!"'a'a'''''"''''''3''''3'''''''y''''y'''!'''"'''a''''''''E!H  -HK4K4KKH$9$9K^K^$KKKKK8KKKKKK8KKKK8KKK4KKKKKKKKK$9^KKKKKKHKKKKHKKK$9KKK^KKKKKKKKKKKKKKKK!!'3!"'a'a'''''"''''''3''''3'''''''y''''y'''!'''"'''a''''''''r   c                    V ^8  d   QhRRRR/# rC   r   )r   s   "r   r   r   W   s     ( (T (d (r   c                  a V R ,          p\        VR4       \        \        RRRR/4      4      pR.o\        V R,          VV3R lR	7      pVP                  qD! V4      pR
qeVJ qw'       Eg+   \
        P                  ! RV3RWV3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\
        P                  ! V4      /,          pRRV/,          p	\        \
        P                  ! V	4      4      hR
;p;p;rvRS^ &   VP                  qD! V4      pR
qeVJ qw'       Eg+   \
        P                  ! RV3RWV3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\
        P                  ! V4      /,          pRRV/,          p	\        \
        P                  ! V	4      4      hR
;p;p;rvVP                  p
\        V
4      p^qeV8H  qw'       Eg3   \
        P                  ! RV3RWV3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      R\
        P                  ! V4      /,          pRRV/,          p	\        \
        P                  ! V	4      4      hR
;p
;p;rvR
# )rF   rG   r   r   r   0r   rH   c                    < S ^ ,          # r   r   r   s   r   r   Htest_a_zero_retry_after_still_holds_off_the_next_probe.<locals>.<lambda>\   r   r   r   NrU   r   rI   r\   rw   rK   r]   r^   r_   g     @r:   rZ   r[   r   r   re   ri   )r%   r'   r   r   rk   rm   rn   ro   rp   rq   rr   rt   ru   r,   r:   )rD   rw   r[   r   ry   rz   r   r   r   r   r   r   s   &          @r   6test_a_zero_retry_after_still_holds_off_the_next_prober   W   se   00K{H-.sB8LMNIIE"8o#=yN^_H1[)1T1T11111)111111811118111111111[1111[111)111T11111111E!H1[)1T1T11111)111111811118111111111[1111[111)111T11111111!!'3!"'a'a'''''"''''''3''''3'''''''y''''y'''!'''"'''a''''''''r   c                    V ^8  d   QhRRRR/# rC   r   )r   s   "r   r   r   e   s     ( (D (T (r   c                   V R ,          p\        VR4       \        \        RR4      4      p\        V R,          V4      pVP                  qD! V4      pRqeVJ qw'       Eg+   \
        P                  ! RV3RWV3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\
        P                  ! V4      /,          pRRV/,          p	\        \
        P                  ! V	4      4      hR;p;p;rvVP                  qD! V4      pRqeVJ qw'       Eg+   \
        P                  ! RV3RWV3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\
        P                  ! V4      /,          pRRV/,          p	\        \
        P                  ! V	4      4      hR;p;p;rvVP                  p
\        V
4      p^qeV8H  qw'       Eg3   \
        P                  ! RV3RWV3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      R\
        P                  ! V4      /,          pRRV/,          p	\        \
        P                  ! V	4      4      hR;p
;p;rvR# )rF   rG   i  r   rH   NrU   r   rI   r\   rw   rK   r]   r^   r_   r:   rZ   r[   r   r   )zV%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.account_uuid_for
}(%(py3)s)
} is %(py8)sre   ri   )r%   r'   r   r   rk   rm   rn   ro   rp   rq   rr   rt   ru   account_uuid_forr,   r:   )rD   rw   r[   r   ry   rz   r   r   r   r   r   s   &          r   %test_a_rejected_token_has_no_identityr   e   sJ   00K{H-.sB78I"8o#=yIH1[)1T1T11111)111111811118111111111[1111[111)111T11111111$$9$[19T9T999991999999899998999$999999[9999[9991999T99999999!!'3!"'a'a'''''"''''''3''''3'''''''y''''y'''!'''"'''a''''''''r   c                    V ^8  d   QhRRRR/# rC   r   )r   s   "r   r   r   p   s     $ $d $t $r   c                   V R ,          p\        VR4       \        \        ^\        4      4      pRq0V,          p\	        WB4      qUP
                  qf! V4      pRqVJ q'       Eg   \        P                  ! RV	3RWx3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	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                  ! 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;p;p;rVP                  p. qLV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;rR# )rF   r   rH   NrU   r   rZ   rD   r\   rK   r[   rM   rN   r_   rw   py12py15zassert %(py17)spy17rI   rV   r   )z%(py12)s
{%(py12)s = %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py0)s((%(py1)s / %(py3)s), %(py5)s)
}.identify
}(%(py10)s)
} is %(py15)sre   )z0%(py2)s
{%(py2)s = %(py0)s.requests
} == %(py5)s)r%   r'   r   rj   r   rk   rm   rn   ro   rp   rq   rr   rt   ru   r,   )rD   rw   r[   r   rz   r   @py_assert8@py_assert11@py_assert14r~   @py_format16r   ry   r{   r   r   s   &               r   7test_a_credentials_file_without_a_token_is_never_probedr   p   s   00K{B'.sMBCI*9c/9c9EcNNcN{[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cxccccxccc/cccccc9cccc9cccEcccN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#############9####9##############r   c                    V ^8  d   QhRRRR/# rC   r   )r   s   "r   r   r   y   s        r   c           	       a . oR  V3R llp\        V R,          VR7      pVP                  R4      pVP                  R4      p. pRqcVJqwq'       d   VP                  p	RqV
8H  qpV'       Eg   \        P                  ! RV3RW634      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR	\        P                  ! V4      /,          pR
RV/,          qP                  V4       V'       d   \        P                  ! RX3RX	X
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/,          qP                  V4       \        P                  ! V^ 4      / ,          pRRV/,          p\        \        P                  ! V4      4      hR;p;p;p;p;p	;rWC8H  qU'       g   \        P                  ! RV3RWC3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R.pSV8H  qU'       g   \        P                  ! RV3R SV34      RR\
        P                  ! 4       9   g   \        P                  ! S4      '       d   \        P                  ! S4      MRR\        P                  ! V4      /,          pRR	V/,          p\        \        P                  ! V4      4      hR;ppR# )!c               $    V ^8  d   QhRRRRRR/# )r   r3   objecttimeoutr5   r   r   )r   s   "r   r   ?test_identify_token_caches_by_token_value.<locals>.__annotate__|   s!     
 
6 
E 
f 
r   c                F   < SP                  R 4       ^ RIHp V! ^RR7      # )hit)r   zG{"account": {"uuid": "uuid-token-owner", "email": "owner@example.com"}})status_codebody)r8   claude_oauthr   )r3   r   r   callss   && r   r[   <test_identify_token_caches_by_token_value.<locals>.transport|   s%    U4"Z
 	
r   rH   )rx   r[   z	token-abcNzuuid-token-ownerrI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rW   rX   rY   r   r   r\   zassert %(py5)srb   rd   re   rg   rh   )z%(py0)s == %(py3)s)r   identify_tokenrl   rm   rn   ro   rp   rq   rr   r8   rs   rt   ru   )rD   r[   r   rJ   rW   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   @py_format4r   s   &                     @r   )test_identify_token_caches_by_token_valuer   y   s   E
 
 #o-H
 ##K0E$$[1FIIII!3!3I7II7I!IIIII5IIIIII5IIII5IIIIIIIIIIII!37IIIIIIIIIIIIII!3III7IIIIIIIIIIIIIIIII?666UUG5G5G55Gr   )"
__future__r   builtinsro   _pytest.assertion.rewrite	assertionrewriterm   r#   syspathlibr   r   insertr   __file__resolver   claude_identityr   r   r   r   r$   rj   r%   r'   r   r   r   r   r   r   r   r   r   r   <module>r      s    "    
  3tH~--/77:; < / @

2FGH
V VM 
((*(($r   