
    Lj                        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
mZ d dlZd dlZd dlmZmZmZ d Zd Zd Zej*                  j-                  d e ee                  ej*                  j-                  dd	      d
               Zd Zd Zej*                  j-                  dd dfd dfd dfd dfg      d        Zd Zd Zy)    N)Path)
BOUNDARIESBlockedBoundaryModelc                  ^   t         j                  j                         D  ci c]&  \  } }| t        t         j                  |z        ddd( }} }t        t         j
                        t        t         j                  dz        t        t         j                  dz        t        t         j
                        t        t         j                  dz        t        t         j                        |t         j                  t         j                  t         j                  t         j                  dS c c}} w )N@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)originloaded_sha256wheel_sha256z.venvztelegram/__init__.py)
executableprefixtelegram_originexecstart_pythonservice_virtual_envworking_directorymoduleshermes_wheel_sha256profile_wheel_sha256v3_controller_seal_sha256v3_clean_run_seal_sha256)
controllerMODULE_MEMBERSitemsstrSITE_PACKAGESPYTHONHERMESPROFILE
HERMES_SHAPROFILE_SHAV3_CONTROLLER_SEAL_SHAV3_CLEAN_RUN_SEAL_SHA)namememberr   s      /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-strict-launch-controller-v4-st_01a00f53/test_launch_controller_v4.pyvalid_recordr&      s     '55;;= >LD& 	*22V;<%$
 	

 >   *++,j'''12z77:PPQ
 1 12":#4#4w#>? !3!34)44 * 6 6%/%F%F$.$D$D s   +D)c                  T   t               } t        D ]  }| j                  |        g }| j                  }d}||k(  }|}|r| j                  }|}|sLt        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  }	|j                  |	       |rlddt        j                         v st        j                  |       rt        j                  |       ndt        j                        d	z  }
|j                  |
       t        j                  |d
      i z  }dd|iz  }t        t        j                  |            d x}x}x}x}x}}y )N   ==)z,%(py4)s
{%(py4)s = %(py2)s.sent
} == %(py7)smodel)py2py4py7z%(py9)spy9z)%(py13)s
{%(py13)s = %(py11)s.attempted
})py11py13r   zassert %(py16)spy16)r   r   crosssent	attempted
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprappend_format_boolopAssertionError_format_explanation)r+   boundary@py_assert1@py_assert3@py_assert6@py_assert5@py_assert0@py_assert12@py_format8@py_format10@py_format14@py_format15@py_format17s                r%   test_happy_order_exactly_onerL   %   s    OEH .5::..:?.u....:......5...5...:.............u...u................    c                      t        t        t              dz
        D ]I  } t               }t	        j
                  t              5  |j                  t        | dz             d d d        K y # 1 sw Y   VxY w)Nr(   )rangelenr   r   pytestraisesr   r3   )indexr+   s     r%    test_every_order_violation_failsrT   ,   sQ    s:*+]]7#KK
519-. $# ,##s   A))A2	whereside)beforeafterc                    t               }t        d |  D ]  }|j                  |        t        j                  t
              5   |j                  t        |    fi d| di d d d        |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}}y # 1 sw Y   xY w)
Ncrash_Tr(   )<=)z,%(py2)s
{%(py2)s = %(py0)s.sent
} <= %(py5)sr+   py0r,   py5assert %(py7)sr.   )r   r   r3   rQ   rR   RuntimeErrorr4   r6   r7   r8   r9   r:   r;   r>   r?   )	rU   rV   r+   r@   rA   @py_assert4rB   @py_format6rG   s	            r%   )test_crash_each_boundary_never_duplicatesrc   3   s     OEv&H '	|	$Ju%AF4&/4)@A 
%:::?:55: 
%	$s    D44D=c                  
   t               } t        d d D ]  }| j                  |        | j                  d       t        j                  t
              5  | j                  d       d d d        t        j                  t
              5  | j                  dd       d d d        | 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}}y # 1 sw Y   xY w# 1 sw Y   xY w)Ninvite_intentinvite_resultT)unknownr   r)   )z,%(py2)s
{%(py2)s = %(py0)s.sent
} == %(py5)sr+   r\   r_   r.   )r   r   r3   rQ   rR   r   r4   r6   r7   r8   r9   r:   r;   r>   r?   )r+   r@   rA   ra   rB   rb   rG   s          r%   =test_duplicate_invocation_and_unknown_outcome_are_fail_closedri   >   s    OEsOH $	KK 	w	O$ 
 	w	OT2 
 :::?:55:	 
 			s   E,E9,E69Fc                  >    t        j                  t                      y N)r   validate_interpreter_recordr&    rM   r%   $test_valid_interpreter_record_passesrn   J   s    **<>:rM   )mutationmessagec                 &    | j                  d      S )N/usr/bin/python3)r   updaterows    r%   <lambda>rw   Q   s    SZZ+=Z>rM   zwrong interpreterc                 &    | j                  d       S )N)r   rs   ru   s    r%   rw   rw   R   s    SZZZ5rM   ztelegram missingc                 2    | d   d   j                  d      S )Nr   zcheckin_cli.customer_adminz/tmp/drift.py)r	   rs   ru   s    r%   rw   rw   S   s    S^$@AHHP_H`rM   zimport path driftc                 2    | d   d   j                  d      S )Nr   zgateway.platforms.telegram@bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb)r
   rs   ru   s    r%   rw   rw   T   s    S^$@AHHW_H`rM   zimport byte driftc                 4   t        j                  t                     } ||       ddd| j                  t        dfd       | j                  t        dfd       t        j                  t        |      5  t	        j                  |       d d d        ddd}|k(  }|st        j                  d|fd	|f      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}}d}||z  }	|	j"                  }
 |
       }| }|sddt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |
      t        j                  |      dz  }t        t        j                   |            d x}x}	x}
x}}y # 1 sw Y   ~xY w)Nr   preparestartr~   c                  4    j                  dd   dz         S Nr~   r(   __setitem___counterss    r%   rw   z<test_interpreter_failures_are_pre_mutation.<locals>.<lambda>[   s    (:N:NyZbclZmpqZq:rrM   start_runtimec                  4    j                  dd   dz         S Nr   r(   r   r   s    r%   rw   z<test_interpreter_failures_are_pre_mutation.<locals>.<lambda>\   s     @T@TU\^fgn^ors^s@trM   matchr)   z%(py0)s == %(py3)sr   r]   py3assert %(py5)sr^   	customerszQassert not %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = (%(py0)s / %(py2)s).exists
}()
}tmp_path)r]   r,   r^   r.   )copydeepcopyr&   setattrr   rQ   rR   r   rl   r6   r7   r8   r9   r:   r;   r>   r?   exists)monkeypatchr   ro   rp   record@py_assert2rA   @py_format4rb   rB   ra   rC   @py_assert8@py_format9r   s                 @r%   *test_interpreter_failures_are_pre_mutationr   N   s]    ]]<>*FVq)H
I/rs
O5tu	wg	...v6 
/#$q11811111811111118111811111111111&0;&0&..0.00000000000000000;000.00000000000 
/	.s   ;HHc                 @   t         j                  j                  ddd| j                  t         j                  dt        t         j                               | j                  t         j                  dfd       | j                  t         dfd       | j                  t         dfd	       t        j                  t        d
      5  t        j                          d d d        ddd}|k(  }|st        j                  d|fd|f      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}}y # 1 sw Y   xY w)Nr   r}   r   import_modulec                 `    | dk(  r!d dD        j                  t        |             S  |       S )Ntelegramc              3       K   | ]  }|  y wrk   rm   ).0r   s     r%   	<genexpr>zJtest_missing_telegram_is_pre_mutation.<locals>.<lambda>.<locals>.<genexpr>g   s     OXZSTQXZs   rm   )throwImportError)r#   real_imports    r%   rw   z7test_missing_telegram_is_pre_mutation.<locals>.<lambda>g   sP    x|  AK  yKOXZOLaLabmnrbsLt  Mb  Q\  ]a  Qb  MbrM   r~   c                  (    j                  dd      S r   r   r   s    r%   rw   z7test_missing_telegram_is_pre_mutation.<locals>.<lambda>h   s    (:N:NyZ[:\rM   r   c                  (    j                  dd      S r   r   r   s    r%   rw   z7test_missing_telegram_is_pre_mutation.<locals>.<lambda>i   s    @T@TU\^_@`rM   ztelegram unavailabler   r)   r   r   r   r   r^   )r   	importlibr   r   sysr   r   rQ   rR   r   interpreter_proofr6   r7   r8   r9   r:   r;   r>   r?   )r   r   rA   r   rb   r   r   s        @@r%   %test_missing_telegram_is_pre_mutationr   c   s   &&44Kq)H
c*:K:K6LM
,,o  @b  c
I/\]
O5`a	w&<	=$$& 
>#$q11811111811111118111811111111111 
>	=s   FFc           
      L   | dz  }dt        t        t        j                        j	                               ddt        |      dt        | dz        g}t        j                  |ddd	      }|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}}d}	|j                   }|	|v }
|
st        j                  d|
fd|	|f      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}
}|j"                  } |       }| }|sddt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }t        t        j                  |            d x}x}}y )Nzmust-not-existrr   zdry-runz--rootz--permissionznot-read.jsonTF)textcapture_outputcheck   r)   )z2%(py2)s
{%(py2)s = %(py0)s.returncode
} == %(py5)sresultr\   r_   r.   z#wrong interpreter: /usr/bin/python3)in)z.%(py1)s in %(py5)s
{%(py5)s = %(py3)s.stderr
})py1r   r^   zEassert not %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.exists
}()
}root)r]   r,   r-   )r   r   r   __file__resolve
subprocessrun
returncoder6   r7   r8   r9   r:   r;   r>   r?   stderrr   )r   r   commandr   rA   ra   rB   rb   rG   rE   r   rD   s               r%   1test_usr_bin_python_dry_run_rejected_without_rootr   o   s   &&DD$$%--/0D	H&'G ^^G$t5QF!!!!!!!!!!!!6!!!6!!!!!!!!!!!!!0AFMMA0MAAAA0MAAA0AAAAAAFAAAFAAAMAAAAAAA{{{}}tt{}rM   )builtinsr8   _pytest.assertion.rewrite	assertionrewriter6   r   jsonr   r   pathlibr   rQ   launch_controller_v4r   r   r   r   r&   rL   rT   markparametrizerO   rP   rc   ri   rn   r   r   r   rm   rM   r%   <module>r      s         
   ) C C0// %J"89!45 6 :	; 	>@ST	57IJ	`buv	`buv		1	1	2rM   