Ë
   8†t‰e|Qã                   ó€   — d dl Zd dlmc mZ d dlZd dlmZm	Z	 d dl
mZmZmZ d dlmZ d„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zy)é    N)ÚprogressÚ	proposals)Ú
_safe_pathÚlist_dirÚ	read_file)Úsystem_statusc                  óf  — t        d«      } | j                  } |«       }|s�ddt        j                  «       v st	        j
                  | «      rt	        j                  | «      ndt	        j                  |«      t	        j                  |«      dœz  }t        t	        j                  |«      «      ‚d x}}y )Núpyproject.tomlzBassert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.is_file
}()
}Úp)Úpy0Úpy2Úpy4)	r   Úis_fileÚ@py_builtinsÚlocalsÚ
@pytest_arÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanation)r   Ú@py_assert1Ú@py_assert3Ú@py_format5s       ú:/home/oem/CyberBrain26-unified/tests/test_safe_oi_tools.pyÚtest_safe_path_validr   	   sd   € ÜÐ#Ó$€AØ�9‰9Ð‰9‹;Ð‰;××××Õˆ1××Óˆ1××Ôˆ9××Òˆ;×××××Óó    c                  óv   — t        j                  t        «      5  t        d«       d d d «       y # 1 sw Y   y xY w)Nz/etc/passwd)ÚpytestÚraisesÚPermissionErrorr   © r   r   Útest_safe_path_invalidr"      s+   € Ü	�‰”Ó	'ñ "Ü�=Ô!÷"÷ "ñ "ús   š/¯8c                  óv  — t        d«      } | 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}}g }d	}| d
   }||v }|}|sd}	| d
   }
|	|
v }|}|sþt        j                  d|fd||f«      t        j                  |«      t        j                  |«      dœz  }dd|iz  }|j                  |«       |s_t        j                  dfd	
f«      t        j                  |	«      t        j                  |
«      dœz  }dd|iz  }|j                  |«       t        j                  |d«      i z  }dd|iz  }t	        t        j
                  |«      «      ‚d x}x}x}x}x}x}	x}}
y )Nr
   ÚstatusÚsuccess©ú==©z%(py1)s == %(py4)s©Úpy1r   úassert %(py6)sÚpy6ÚprojectÚcontentÚtool)Úin)z%(py3)s in %(py6)s)Úpy3r,   z%(py8)sÚpy8)z%(py11)s in %(py14)s)Úpy11Úpy14z%(py16)sÚpy16é   zassert %(py19)sÚpy19)r   r   Ú_call_reprcomparer   r   r   ÚappendÚ_format_boolop)ÚresÚ@py_assert0r   Ú@py_assert2r   Ú@py_format7r   Ú@py_assert5Ú@py_assert4Ú@py_assert10Ú@py_assert13Ú@py_assert12Ú@py_format9Ú@py_format15Ú@py_format17Ú@py_format18Ú@py_format20s                    r   Útest_read_file_successrI      s  € Ü
Ð$Ó
%€CØˆx‰=Ð%˜IÐ%ˆ=˜IÑ%×%×%Õ%ˆ=˜I×%×%Ó%ˆ=×%×%Ò%˜I×%×%×%×%×%×%Ó%ÙBˆ9ÐB˜˜I™ÐBˆ9˜Ð&ÔB¨&ÐB°C¸	±NÐB¨&°NÐ*B×B×B×Bˆ9˜×B×BÓBˆ9×B×BÒB˜×B×B×B×B×B×BÕB¨&°N×B×BÓB¨&×B×BÒB°N×B×B×B×B×B×B×B×B×B×B×B×B×B×Br   c                  ó  — t        d«      } | 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	   }t        |t        «      }|sÞd
dt        j                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  |«      dt        j                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  |«      dœz  }t	        t        j
                  |«      «      ‚d x}}y )Nú.r$   r%   r&   r(   r)   r+   r,   Úentriesz5assert %(py5)s
{%(py5)s = %(py0)s(%(py2)s, %(py3)s)
}Ú
isinstanceÚlist)r   r   r1   Úpy5)r   r   r8   r   r   r   rM   rN   r   r   r   )	r;   r<   r   r=   r   r>   r   r@   Ú@py_format6s	            r   Útest_list_dir_successrQ      sÖ   € Ü
�3‹-€CØˆx‰=Ð%˜IÐ%ˆ=˜IÑ%×%×%Õ%ˆ=˜I×%×%Ó%ˆ=×%×%Ò%˜I×%×%×%×%×%×%Ó%Ø˜)‘nÐ+Œ:�n¤dÓ+Ð+Ñ+×+×+×+×+Õ+Œ:×+×+Ó+Œ:×+×+Ô+�n×+×+×+×+×+Ð+¤d×+×+Ó+¤d×+×+Ô+Ð+×+×+×+×+×+Ó+r   c                  óX  — t        «       } t        | t        «      }|�sddt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  | «      rt        j                  | «      nddt        j                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  |«      dœz  }t        t        j                  |«      «      ‚d }y )Nz5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}rM   ÚstÚdict)r   r*   r   r   )
r   rM   rT   r   r   r   r   r   r   r   )rS   r   r   s      r   Útest_system_statusrU      s‘   € Ü	‹€BÜ�bœ$ÓÐÒ××××ÕŒ:××ÓŒ:×××××Ò�b××Ó�b×××××Òœ$××Óœ$××ÔÐ×××××Ñr   c                  ó0  — d} t        j                  | «       t        j                  | ddd«       t        j                  | «      }d }||u}|s™t	        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   }d}||k(  }|slt	        j
                  d|fd||f«      t	        j                  |«      t	        j                  |«      dœz  }dd|iz  }	t        t	        j                  |	«      «      ‚d x}x}}t        j                  | ddi¬«       t        j                  | «      }
|
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 )Nztest-job-123z
test-phaseé2   z
Testing...)úis not)z%(py0)s is not %(py3)sÚsnap)r   r1   zassert %(py5)srO   Úpercentr&   r(   r)   r+   r,   ÚokT)ÚresultÚdone)Úis)z%(py1)s is %(py4)s)r   ÚcreateÚ	set_phaseÚsnapshotr   r8   r   r   r   r   r   r   Úfinish)Újob_idrY   r=   r   Ú@py_format4rP   r<   r   r   r>   Ú	snap_dones              r   Útest_progress_functionsrf      sR  € Ø€FÜ‡O�O�FÔÜ×Ñ�v˜|¨R°Ô>Ü×Ñ˜VÓ$€DØÐˆ4�tÐ××Õˆ4�t×××××Ñˆ4××Óˆ4××Ô�t××××××ÑØ�	‰?Ð ˜bÐ ˆ?˜bÑ × × Õ ˆ?˜b× × Ó ˆ?× × Ò ˜b× × × × × × Ó Ü‡O�O�F D¨$ <Õ0Ü×!Ñ! &Ó)€IØ�VÑÐ$ Ð$Ð Ð$×$×$Õ$Ð ×$×$Ó$Ð×$×$Ò$ ×$×$×$×$×$×$Ô$r   c                 ó  — | j                  t        d|«       |j                  dd¬«       t        j                  ddd«      }|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   }t        j                  |«      }	|	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}}t        j                  |d«       t        j                  |«      }
|
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}}y )NÚPROPOSALS_DIRT)ÚparentsÚexist_okz
Test Titlez	Test Desczprint(1)r$   r%   r&   r(   r)   r+   r,   Úproposal_idÚtitleÚpendingÚapproved)Úsetattrr   ÚmkdirÚsave_proposalr   r8   r   r   r   Úread_proposalÚupdate_status)ÚmonkeypatchÚtmp_pathr;   r<   r   r=   r   r>   ÚpidÚpropÚprop_updateds              r   Útest_proposals_functionsry   *   s®  € Ø×Ñœ	 ?°HÔ=Ø‡N�N˜4¨$€NÔ/Ü
×
!Ñ
! ,°¸ZÓ
H€CØˆx‰=Ð%˜IÐ%ˆ=˜IÑ%×%×%Õ%ˆ=˜I×%×%Ó%ˆ=×%×%Ò%˜I×%×%×%×%×%×%Ó%Ø
ˆmÑ
€CÜ×"Ñ" 3Ó'€DØ�‰=Ð(˜LÐ(ˆ=˜LÑ(×(×(Õ(ˆ=˜L×(×(Ó(ˆ=×(×(Ò(˜L×(×(×(×(×(×(Ó(Ø�‰>Ð&˜YÐ&ˆ>˜YÑ&×&×&Õ&ˆ>˜Y×&×&Ó&ˆ>×&×&Ò&˜Y×&×&×&×&×&×&Ó&Ü×Ñ˜C Ô,Ü×*Ñ*¨3Ó/€LØ˜Ñ!Ð/ ZÐ/Ð! ZÑ/×/×/Õ/Ð! Z×/×/Ó/Ð!×/×/Ò/ Z×/×/×/×/×/×/Ô/r   )Úbuiltinsr   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter   r   Úcyberbrain26.services.safe_oir   r   Ú(cyberbrain26.services.safe_oi.file_toolsr   r   r   Ú*cyberbrain26.services.safe_oi.system_toolsr   r   r"   rI   rQ   rU   rf   ry   r!   r   r   ú<module>r�      s<   ðç  „ ƒç =ß TÑ TÝ Dòò"òCò
,ò
 ò	%ó0r   