
    Lj                     |   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      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        D ]  }| j                  |        | j                  dk(  r| j                  sJ y N   )r   r   crosssent	attemptedmodelboundarys     r%   test_happy_order_exactly_oner0   %   s8    OEH ::?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r(   )rangelenr   r   pytestraisesr   r*   )indexr.   s     r%    test_every_order_violation_failsr8   ,   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  sJ y # 1 sw Y   xY w)Ncrash_Tr)   )r   r   r*   r5   r6   RuntimeErrorr+   )r9   r:   r.   r/   s       r%   )test_crash_each_boundary_never_duplicatesr@   3   su     OEv&H '	|	$Ju%AF4&/4)@A 
%::?? 
%	$s    A==B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(  sJ y # 1 sw Y   PxY w# 1 sw Y   'xY w)Ninvite_intentinvite_resultT)unknownr   )r   r   r*   r5   r6   r   r+   r-   s     r%   =test_duplicate_invocation_and_unknown_outcome_are_fail_closedrF   >   s    OEsOH $	KK 	w	O$ 
 	w	OT2 
 ::??	 
 			s   B5C5B>C
c                  >    t        j                  t                      y N)r   validate_interpreter_recordr&    r1   r%   $test_valid_interpreter_record_passesrK   J   s    **<>:r1   )mutationmessagec                 &    | j                  d      S )N/usr/bin/python3)r   updaterows    r%   <lambda>rT   Q   s    SZZ+=Z>r1   zwrong interpreterc                 &    | j                  d       S )N)r   rP   rR   s    r%   rT   rT   R   s    SZZZ5r1   ztelegram missingc                 2    | d   d   j                  d      S )Nr   zcheckin_cli.customer_adminz/tmp/drift.py)r	   rP   rR   s    r%   rT   rT   S   s    S^$@AHHP_H`r1   zimport path driftc                 2    | d   d   j                  d      S )Nr   zgateway.platforms.telegram@bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb)r
   rP   rR   s    r%   rT   rT   T   s    S^$@AHHW_H`r1   zimport byte driftc                    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(  sJ |dz  j                         rJ y # 1 sw Y   )xY w)	Nr   preparestartr[   c                  4    j                  dd   dz         S Nr[   r)   __setitem___counterss    r%   rT   z<test_interpreter_failures_are_pre_mutation.<locals>.<lambda>[   s    (:N:NyZbclZmpqZq:rr1   start_runtimec                  4    j                  dd   dz         S Nr\   r)   r_   ra   s    r%   rT   z<test_interpreter_failures_are_pre_mutation.<locals>.<lambda>\   s     @T@TU\^fgn^ors^s@tr1   match	customers)
copydeepcopyr&   setattrr   r5   r6   r   rI   exists)monkeypatchtmp_pathrL   rM   recordrc   s        @r%   *test_interpreter_failures_are_pre_mutationrq   N   s     ]]<>*FVq)H
I/rs
O5tu	wg	...v6 
/1q1111;&..0000 
/	.s   ;B99C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(  sJ y # 1 sw Y   xY w)Nr   rZ   r   import_modulec                 `    | dk(  r!d dD        j                  t        |             S  |       S )Ntelegramc              3       K   | ]  }|  y wrH   rJ   ).0rb   s     r%   	<genexpr>zJtest_missing_telegram_is_pre_mutation.<locals>.<lambda>.<locals>.<genexpr>g   s     OXZSTQXZs   rJ   )throwImportError)r#   real_imports    r%   rT   z7test_missing_telegram_is_pre_mutation.<locals>.<lambda>g   sP    x|  AK  yKOXZOLaLabmnrbsLt  Mb  Q\  ]a  Qb  Mbr1   r[   c                  (    j                  dd      S r^   r_   ra   s    r%   rT   z7test_missing_telegram_is_pre_mutation.<locals>.<lambda>h   s    (:N:NyZ[:\r1   rd   c                  (    j                  dd      S rf   r_   ra   s    r%   rT   z7test_missing_telegram_is_pre_mutation.<locals>.<lambda>i   s    @T@TU\^_@`r1   ztelegram unavailablerg   )r   	importlibrs   rl   sysr   r   r5   r6   r   interpreter_proof)rn   rc   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&<	=$$& 
>1q1111 
>	=s   C55C>c           
      >   | dz  }dt        t        t        j                        j	                               ddt        |      dt        | dz        g}t        j                  |ddd	      }|j                  d
k(  sJ d|j                  v sJ |j                         rJ y )Nzmust-not-existrO   zdry-runz--rootz--permissionznot-read.jsonTF)textcapture_outputcheck   z#wrong interpreter: /usr/bin/python3)
r   r   r   __file__resolve
subprocessrun
returncodestderrrm   )ro   rootcommandresults       r%   1test_usr_bin_python_dry_run_rejected_without_rootr   o   s    &&DD$$%--/0D	H&'G ^^G$t5QF!!!0FMMAAA{{}}r1   )rj   jsonr   r   pathlibr   r5   launch_controller_v4r   r   r   r   r&   r0   r8   markparametrizer3   r4   r@   rF   rK   rq   r   r   rJ   r1   r%   <module>r      s       
   ) C C0// %J"89!45 6 :	; 	>@ST	57IJ	`buv	`buv		1	1	2r1   