
    j                       d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
 d dlmZ d dlmZ d dlZd dlZ e
e      j$                  Zej(                  j+                  dedz        Zerej.                  sJ ej(                  j1                  e      Zeej4                  ej6                  <   ej.                  j9                  e       dd	d
d	 	 	 	 	 	 	 	 	 ddZ G d d      Z	 	 	 	 ddZej@                  jC                  dddg      	 	 	 	 dd       Z"ddZ#ddZ$ej@                  jC                  dddg      	 	 	 	 	 	 dd       Z%ddZ&ddZ'y)     )annotationsN)Path)SimpleNamespace)Anynetwork_probe_v3znetwork_probe_v3.pyT123456:secret	bound_bot)enabledtokenusernamer
   c               "   | dz  }|j                  d       dd|dd|dd	iid
ii}|dz  j                  t        j                  |             |dz  j	                  d       |dz  j                  d| d       |dz  j	                  d       |S )Nznon-default-profilei  )mode	platformstelegramadaptive_nutritionseparate_botT)bot_username	dedicated)r
   extraconfig.yamli  .envzTELEGRAM_BOT_TOKEN=
)mkdir
write_textyaml	safe_dumpchmod)tmp_pathr
   r   r   rootconfigs         W.omo/evidence/task26/task26-telegram-network-probe-v3-e788f5d5/test_network_probe_v3.pyprofiler"      s     ++DJJEJ"(&PT(U+	
F 
M%%dnnV&<=	M  '	F]!4UG2>?	F]% K    c                  :    e Zd Zdddd	 	 	 	 	 d	dZd Zd Zd Zy)
FakeBotr	   @ N)r   bot_iderrorc               <    || _         || _        || _        g | _        y N)r   r'   r(   calls)selfr   r'   r(   s       r!   __init__zFakeBot.__init__7   s      !
 "
r#   c                D   K   | j                   j                  d       | S w)Nenterr+   appendr,   s    r!   
__aenter__zFakeBot.__aenter__C   s     

'"s    c                B   K   | j                   j                  d       y w)Nexitr0   )r,   _argss     r!   	__aexit__zFakeBot.__aexit__G   s     

&!s   c                   K   | j                   j                  d       | j                  r| j                  t        | j                  | j
                        S w)Nget_me)r   id)r+   r1   r(   r   r   r'   r2   s    r!   r9   zFakeBot.get_meJ   s>     

(#::**$++FFs   AA)r   strr'   intr(   zException | None)__name__
__module____qualname__r-   r3   r7   r9    r#   r!   r%   r%   6   s@     $"&
# 
# 	
#
  
#"Gr#   r%   c                2   t        |       }|j                  dd       t        t        j                        }t
        j                  |      }t        t        j                        |k(  sJ |j                   |j                         k(  sJ |j                  t        j                  |dz  j                               j                         k(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  t!        |      vsJ y )NHERMES_HOMEz/wrong/defaultr   r	   r&   r   )r"   setenvdictosenvironmload_profile_bindingresolveconfig_sha256hashlibsha256
read_bytes	hexdigestr   r'   r   repr)r   monkeypatchr   beforebindings        r!   Atest_loads_exact_non_default_profile_without_mutating_environmentrS   Q   s     8D}&67"**F$$T*G

v%%%??dlln,,,>>4-/;;=>HHJ	K	K {***>>V###==O+++==W---r#   Fc                ~   t        | d      }t        j                  |dz  j                               }||d   d= n||d   d   d<   |dz  j	                  t        j
                  |             t        j                  t        j                  d      5  t        j                  |       d d d        y # 1 sw Y   y xY w)	NT)r
   r   r   r   r
   z*enabled Telegram configuration unavailablematch)r"   r   	safe_load	read_textr   r   pytestraisesrG   ProbeFailurerH   )r   r
   r   documents       r!   .test_missing_or_disabled_telegram_fails_closedr]   d   s     8T*D~~tm3>>@AH[!*-7>j))4	M%%dnnX&>?		J
 	
t$
 
 
s   B33B<c                    t        |       }|dz  j                  d       t        j                  t        j
                  d      5  t        j                  |       d d d        y # 1 sw Y   y xY w)Nr   zOTHER=value
ztoken unavailablerU   )r"   r   rY   rZ   rG   r[   rH   )r   r   s     r!   test_missing_token_fails_closedr_   u   sL    8D	F]/	q~~-@	A	t$ 
B	A	As   A$$A-c                   t         j                  t        |             }t               t	        j
                  t         j                  |fd            }j                  g dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   du sJ |j                  t        j                  |      vsJ |d	   d
u sJ |d   d
u sJ |d   d
u sJ y )Nc                    S r*   r@   _tokenbots    r!   <lambda>zCtest_success_calls_only_get_me_and_emits_no_token.<locals>.<lambda>   s    cr#   r/   r9   r5   statusREADY_TELEGRAM_TRANSPORTconfigured_usernamer	   bot_id_matchTconsumes_updatesFmutates_cursorwrites_state)rG   rH   r"   r%   asynciorun
getme_gater+   r   jsondumps)r   rR   resultrd   s      @r!   1test_success_calls_only_get_me_and_emits_no_tokenrt   |   s    $$WX%67G
)C[[g/ABCF993333(9999'(K777.!T)))==

6 2222$%..."#u,,,.!U***r#   r   r'   )	wrong_botr&   )r	   i?B c                   t         j                  t        |             }t        j                  t         j
                  d      5  t        j                  t         j                  |fd             d d d        y # 1 sw Y   y xY w)Nzidentity mismatchrU   c                    t              S )Nru   )r%   )rc   r'   r   s    r!   re   z>test_wrong_returned_bot_username_or_id_fails.<locals>.<lambda>   s    &(Qr#   	rG   rH   r"   rY   rZ   r[   rn   ro   rp   )r   r   r'   rR   s    `` r!   ,test_wrong_returned_bot_username_or_id_failsrz      sX     $$WX%67G	q~~-@	ALLQ	
 
B	A	As   .A==Bc                   t         j                  t        |             }t        j                  t         j
                  d      5  t        j                  t         j                  |d              d d d        y # 1 sw Y   y xY w)Nztransport failurerU   c                ,    t        t        d            S )NzBad Gateway)r(   )r%   RuntimeError)rc   s    r!   re   z/test_bad_gateway_fails_closed.<locals>.<lambda>   s    l=6Q(Rr#   ry   )r   rR   s     r!   test_bad_gateway_fails_closedr~      sU    $$WX%67G	q~~-@	ALLR	
 
B	A	As   +A88Bc                d   t         j                  t        |             } G d dt              } |       t	        j
                  t         j                  d      5  t        j                  t         j                  |fdd             d d d        j                  g dk(  sJ y # 1 sw Y   xY w)	Nc                      e Zd ZddZy)Htest_timeout_is_bounded_and_never_calls_other_method.<locals>.PendingBotc                   K   | j                   j                  d       t        j                         j	                          d {    y 7 w)Nr9   )r+   r1   rn   Eventwaitr2   s    r!   r9   zOtest_timeout_is_bounded_and_never_calls_other_method.<locals>.PendingBot.get_me   s0     JJh'--/&&(((s   AAA	AN)returnr   )r=   r>   r?   r9   r@   r#   r!   
PendingBotr      s    	)r#   r   timeoutrU   c                    S r*   r@   rb   s    r!   re   zFtest_timeout_is_bounded_and_never_calls_other_method.<locals>.<lambda>   s    r#   g{Gz?)r   rf   )rG   rH   r"   r%   rY   rZ   r[   rn   ro   rp   r+   )r   rR   r   rd   s      @r!   4test_timeout_is_bounded_and_never_calls_other_methodr      s|    $$WX%67G)W )
 ,C	q~~Y	7ALL*<dLKL 
8993333 
8	7s   /B&&B/)
r   r   r
   boolr   r;   r   r;   r   r   )r   r   rP   zpytest.MonkeyPatch)r   r   r
   zbool | None)r   r   )r   r   r   r;   r'   r<   )(
__future__r   rn   rK   importlib.util	importlibrq   rE   syspathlibr   typesr   typingr   rY   r   __file__parentHEREutilspec_from_file_locationSPECloadermodule_from_specrG   modulesnameexec_moduler"   r%   rS   markparametrizer]   r_   rt   rz   r~   r   r@   r#   r!   <module>r      s   "     	 
  !   H~~~--44  NN##D)DII         	
  
8G G6..!3.& UDM2%%(% 3% %+ 24IJ	
	
!	
+.	
	

4r#   