
    j                       d dl mZ d dlZd dlmc 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      j0                  Zej4                  j7                  dedz        Zg ZeZerej>                  Z e Zesdd	d
 ejB                         v s ejD                  e      r ejF                  e      nd
iz  Z$ejK                  e$       er`dd
 ejB                         v s ejD                  e      r ejF                  e      nd
 ejF                  e       dz  Z&ejK                  e&        ejN                  ed       i z  Z(dde(iz  Z) e* ejV                  e)            dxZxZZ ej4                  jY                  e      Z-e-ej\                  ej^                  <   ej>                  ja                  e-       dddd	 	 	 	 	 	 	 	 	 d"dZ1 G d d      Z2	 	 	 	 d#dZ3ejh                  jk                  dddg      	 	 	 	 d$d       Z6d%dZ7d%dZ8ejh                  jk                  dddg      	 	 	 	 	 	 d&d       Z9d%d Z:d%d!Z;y)'    )annotationsN)Path)SimpleNamespace)Anynetwork_probe_v3znetwork_probe_v3.pyz%(py2)spy2SPECz#%(py6)s
{%(py6)s = %(py4)s.loader
})py4py6assert %(py9)spy9T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         /home/cube/projects/richard/traning coach/.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r1   appendr2   s    r'   
__aenter__zFakeBot.__aenter__C   s     

'"s    c                B   K   | j                   j                  d       y w)Nexitr6   )r2   _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)r1   r7   r.   r   r   r-   r8   s    r'   r?   zFakeBot.get_meJ   s>     

(#::**$++FFs   AA)r   strr-   intr.   zException | None)__name__
__module____qualname__r3   r9   r=   r?    r)   r'   r+   r+   6   s@     $"&
# 
# 	
#
  
#"Gr)   r+   c                j   t        |       }|j                  dd       t        t        j                        }t
        j                  |      }t        j                  }t        |      }||k(  }|s?t        j                  d|fd||f      dt        j                         v st        j                  t              rt        j                  t              nddt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      dt        j                         v st        j                  |      rt        j                  |      nddz  }d	d
|iz  }	t        t        j                  |	            d x}x}}|j                   }
|j                  } |       }|
|k(  }|st        j                  d|fd|
|f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |
      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}
x}x}}|j                   }
t"        j$                  }d}||z  }|j&                  } |       } ||      }|j(                  } |       }|
|k(  }|st        j                  d|fd|
|f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |
      dt        j                         v st        j                  t"              rt        j                  t"              ndt        j                  |      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}
x}x}x}x}x}x}x}x}}|j*                  }
d}|
|k(  }|st        j                  d|fd|
|f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |
      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}
x}}|j,                  }
d}|
|k(  }|st        j                  d|fd|
|f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |
      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}
x}}|j.                  }
d}|
|k(  }|st        j                  d|fd|
|f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |
      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}
x}}|j.                  }
t1        |      }|
|v}|s7t        j                  d |fd!|
|f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |
      d"t        j                         v st        j                  t0              rt        j                  t0              nd"dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      d#z  }d	d
|iz  }	t        t        j                  |	            d x}
x}}y )$NHERMES_HOMEz/wrong/default==)zM%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.environ
})
} == %(py7)sdictosbefore)py0py1py3py5py7r   r   )zc%(py2)s
{%(py2)s = %(py0)s.profile
} == %(py8)s
{%(py8)s = %(py6)s
{%(py6)s = %(py4)s.resolve
}()
}bindingr%   )rN   r   r
   r   py8zassert %(py10)spy10r   )z%(py2)s
{%(py2)s = %(py0)s.config_sha256
} == %(py20)s
{%(py20)s = %(py18)s
{%(py18)s = %(py16)s
{%(py16)s = %(py6)s
{%(py6)s = %(py4)s.sha256
}(%(py14)s
{%(py14)s = %(py12)s
{%(py12)s = (%(py7)s / %(py9)s).read_bytes
}()
})
}.hexdigest
}()
}hashlib)rN   r   r
   r   rR   r   py12py14py16py18py20zassert %(py22)spy22r   )z0%(py2)s
{%(py2)s = %(py0)s.username
} == %(py5)srN   r   rQ   assert %(py7)srR   r,   )z.%(py2)s
{%(py2)s = %(py0)s.bot_id
} == %(py5)sr   )z-%(py2)s
{%(py2)s = %(py0)s.token
} == %(py5)snot in)zO%(py2)s
{%(py2)s = %(py0)s.token
} not in %(py7)s
{%(py7)s = %(py4)s(%(py5)s)
}repr)rN   r   r
   rQ   rR   )r(   setenvrK   rL   environmload_profile_binding
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationresolveconfig_sha256rV   sha256
read_bytes	hexdigestr   r-   r   ra   )r$   monkeypatchr%   rM   rS   @py_assert2@py_assert4@py_assert6@py_format8@py_format10@py_assert1@py_assert5@py_assert7@py_assert3@py_format9@py_format11@py_assert8@py_assert10@py_assert11@py_assert13@py_assert15@py_assert17@py_assert19@py_format21@py_format23@py_format6s                             r'   Atest_loads_exact_non_default_profile_without_mutating_environmentr   Q   s    8D}&67"**F$$T*G

%4
%v%%%%v%%%%%%4%%%4%%%%%%%%%%%%
%%%%%%%%%v%%%v%%%%%%%??,dll,ln,?n,,,,?n,,,,,,7,,,7,,,?,,,,,,d,,,d,,,l,,,n,,,,,,,>>"/-//;;;==>>HHHJJ	K  J     	   	   	                        #0   <   >   ?   I   K        *{*{****{******7***7******{*******>>#V#>V####>V######7###7###>###V#######==+O+=O++++=O++++++7+++7+++=+++O+++++++==-W-=----=------7---7---=---------------W---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raisesrd   ProbeFailurere   )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 unavailabler   )r(   r    r   r   rd   r   re   )r$   r%   s     r'   test_missing_token_fails_closedr   u   sL    8D	F]/	q~~-@	A	t$ 
B	A	As   A$$A-c           	     6   t         j                  t        |             }t               t	        j
                  t         j                  |fd            }j                  }g d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                        rt        j                        ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}|d	   }d
}||k(  }	|	slt        j                  d|	fd||f      t        j                  |      t        j                  |      dz  }
dd|
iz  }t        t        j                  |            d x}x}	}|d   }d}||k(  }	|	slt        j                  d|	fd||f      t        j                  |      t        j                  |      dz  }
dd|
iz  }t        t        j                  |            d x}x}	}|d   }d}||u }	|	slt        j                  d|	fd||f      t        j                  |      t        j                  |      dz  }
dd|
iz  }t        t        j                  |            d x}x}	}|j                   }t"        j$                  } ||      }||v}|sKt        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dt        j                         v st        j                  t"              rt        j                  t"              ndt        j                  |      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}}|d   }d}||u }	|	slt        j                  d|	fd||f      t        j                  |      t        j                  |      dz  }
dd|
iz  }t        t        j                  |            d x}x}	}|d   }d}||u }	|	slt        j                  d|	fd||f      t        j                  |      t        j                  |      dz  }
dd|
iz  }t        t        j                  |            d x}x}	}|d    }d}||u }	|	slt        j                  d|	fd||f      t        j                  |      t        j                  |      dz  }
dd|
iz  }t        t        j                  |            d x}x}	}y )!Nc                    S r0   rF   _tokenbots    r'   <lambda>zCtest_success_calls_only_get_me_and_emits_no_token.<locals>.<lambda>   s    cr)   r5   r?   r;   rI   z-%(py2)s
{%(py2)s = %(py0)s.calls
} == %(py5)sr   r]   r^   rR   statusREADY_TELEGRAM_TRANSPORT)z%(py1)s == %(py4)s)rO   r
   zassert %(py6)sr   configured_usernamer   bot_id_matchT)is)z%(py1)s is %(py4)sr_   )zj%(py2)s
{%(py2)s = %(py0)s.token
} not in %(py9)s
{%(py9)s = %(py6)s
{%(py6)s = %(py4)s.dumps
}(%(py7)s)
}rS   jsonresult)rN   r   r
   r   rR   r   zassert %(py11)spy11consumes_updatesFmutates_cursorwrites_state)rd   re   r(   r+   asynciorun
getme_gater1   rf   rg   rh   ri   rj   rk   rl   rm   r   r   dumps)r$   rS   r   ry   ru   r|   r   rw   @py_assert0rt   @py_format5@py_format7rz   r   rx   @py_format12r   s                   @r'   1test_success_calls_only_get_me_and_emits_no_tokenr   |   sd   $$WX%67G
)C[[g/ABCF9933393333393333333333333339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'(7K7(K7777(K777(777K7777777.!)T)!T))))!T)))!)))T)))))))==2

2
6 22= 22222= 222222272227222=222222222222
22222262226222 22222222$%..%....%...%.........."#,u,#u,,,,#u,,,#,,,u,,,,,,,.!*U*!U****!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 mismatchr   c                    t              S )Nr   )r+   )r   r-   r   s    r'   r   z>test_wrong_returned_bot_username_or_id_fails.<locals>.<lambda>   s    &(Qr)   	rd   re   r(   r   r   r   r   r   r   )r$   r   r-   rS   s    `` r'   ,test_wrong_returned_bot_username_or_id_failsr      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 failurer   c                ,    t        t        d            S )NzBad Gateway)r.   )r+   RuntimeError)r   s    r'   r   z/test_bad_gateway_fails_closed.<locals>.<lambda>   s    l=6Q(Rr)   r   )r$   rS   s     r'   test_bad_gateway_fails_closedr      sU    $$WX%67G	q~~-@	ALLR	
 
B	A	As   +A88Bc                   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(  }|st        j                  d	|fd
||f      dt        j                         v st        j                        rt        j                         ndt        j                   |      t        j                   |      dz  }dd|iz  }t#        t        j$                  |            d x}x}}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)Nr?   )r1   r7   r   Eventwaitr8   s    r'   r?   zOtest_timeout_is_bounded_and_never_calls_other_method.<locals>.PendingBot.get_me   s0     JJh'--/&&(((s   AAA	AN)returnr   )rC   rD   rE   r?   rF   r)   r'   
PendingBotr      s    	)r)   r   timeoutr   c                    S r0   rF   r   s    r'   r   zFtest_timeout_is_bounded_and_never_calls_other_method.<locals>.<lambda>   s    r)   g{Gz?)r   r   rI   r   r   r]   r^   rR   )rd   re   r(   r+   r   r   r   r   r   r   r1   rf   rg   rh   ri   rj   rk   rl   rm   )	r$   rS   r   ry   ru   r|   r   rw   r   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39333339333333333333333933333333333 
8	7s   /EE&)
r$   r   r   boolr   rA   r   rA   r   r   )r$   r   rs   zpytest.MonkeyPatch)r$   r   r   zbool | None)r$   r   )r$   r   r   rA   r-   rB   )<
__future__r   builtinsrh   _pytest.assertion.rewrite	assertionrewriterf   r   rV   importlib.util	importlibr   rL   syspathlibr   typesr   typingr   r   r!   __file__parentHEREutilspec_from_file_locationr	   ry   r   loaderrz   ri   rj   rk   @py_format3r7   r   _format_booloprw   rx   rl   rm   module_from_specrd   modulesnameexec_moduler(   r+   r   markparametrizer   r   r   r   r   r   rF   r)   r'   <module>r      s   "       	 
  !   H~~~--44 t t      t   t    t                     NN##D)DII         	
  
8G G6..!3.& UDM2%%(% 3% %+ 24IJ	
	
!	
+.	
	

4r)   