
    i+                        S SK rS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKr " S S\R&                  5      r\" SS\" S	S
SSS9\" 5       / SQSSS9r\S   \S'   / SQ\S   S'   \S   S   \S   S'   \" SSS9\S'    " S S\R.                  5      r\S:X  a  \R4                  " 5         gg! \ aB    \R                  R!                  S\R                  R"                  " \/S/S-  Q76 5        S SKr Nf = f)    N   z..   c                       \ rS rSrSrSrSrg)
test_const   i	  {    N)__name__
__module____qualname____firstlineno__dispatch	heartbeat__static_attributes__r	       S/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/pyaml/tests/test_cli.pyr   r      s    r   r   valuez
/some/pathu	   тест1u	   тест2u	   тест3)key1key2key3   последний)r   Nasdu
   не-asciig      @)keypath
query_dumpidsabcr   query_dump_clone)         r   u   id в уникодеu   id2 в уникоде   r   r   z	'asd'
! c                   p    \ rS rSrS rSS.S jrS rS rS rS	 r	S
 r
S rS rS rS rS rS rS rSrg)CliToolTests    c                 ,    [         R                  " USS9$ )NT)	sort_keys)jsondumps)selfdatas     r   	data_hashCliToolTests.data_hash"   s    	DD	))r   Nappendc                ,    U" U0 UD6nU(       a  XR-  nU$ Nr	   )r-   dumpr2   argskwsouts         r   pyaml_dump_corrupted!CliToolTests.pyaml_dump_corrupted%   s    dc#S]S	*r   c                     [         R                  5       [        R                  " 5       [        R                  " 5       p2n[        R
                  " U5      n[        R                  R                  [        5       [        R                  " U5      X#S9  [        R                  " UR                  5       5        U R                  [        UR                  5       5      S5        U R                  UR                  5       S5        UR                  [         R"                  [$        R&                  " SSS9S9  [        R(                  " U5      [        R                  " 5       p$[        R                  R                  [        5       [        R                  " U5      X#S9  [        R                  " UR                  5       5        U R                  [        UR                  5       5      S5        U R                  UR                  5       S5        g )Nargvstdinstdoutstderr    r   r$   r%   )dr   )r.   copyioStringIOyaml	safe_dumppyamlclimainlist	safe_loadgetvalueassertGreaterlenassertEqualupdater   r   csOrderedDictr5   r-   rC   r8   erryss        r   test_successCliToolTests.test_success*   s>   		R[[]BKKM#!~~a"))..tv	R  3.. S(#.3<<>2&((	~~Q  " JJqM2;;=c))..tv	R  3.. S(#.3<<>2&r   c                    [         R                  5       [        R                  " 5       [        R                  " 5       p2n[        R
                  " U5      n[        5       / SQpeU H  n[        R                  R                  UR                  5       [        R                  " U5      [        R                  " 5       =o#S9  U R                  UR                  5       U5        U R                  [        UR                  5       5      S5        U R                  UR                  5       S5        UR!                  UR                  5       5        M     U R                  [        U5      [        U5      5        g )N)rB   z-v0/0z-v0/0sz-v0/0sgz-vgr<   rA   rB   )r.   rD   rE   rF   rG   rH   setrI   rJ   rK   splitassertNotInrN   rO   rP   rQ   add)r-   rC   r8   rV   rW   outsinsr=   s           r   test_vspacing_flags CliToolTests.test_vspacing_flags>   s    		R[[]BKKM#!~~a"e>d99>>


++b/"++-#73  GCLLND)c#,,.)3/CLLNB'88CLLN  3s8SY'r   c                    [         R                  5       [        R                  " 5       [        R                  " 5       p2n[        R
                  " U5      S-   nU R                  [        R                  5         [        R                  R                  [        5       [        R                  " U5      X#S9  S S S 5        g ! , (       d  f       g = f)N asd : fgh : ghj r<   )r.   rD   rE   rF   rG   rH   assertRaises	YAMLErrorrI   rJ   rK   rL   rU   s        r   test_load_failCliToolTests.test_load_failK   sw    		R[[]BKKM#!~~a00"(99>>
++b/#  4 )((s   6<B;;
C	c                 4   [         R                  5       [        R                  " 5       [        R                  " 5       p2n[        R
                  [        R                  " U R                  [        R
                  SS9sn[        l         [        R                  " U5      n[        R                  R                  [        5       [        R                  " U5      X#S9  U R                  [        R                  5         [        R                   " UR#                  5       5        S S S 5        U R%                  ['        UR#                  5       5      S5        U R)                  UR#                  5       S5        U[        l        g ! , (       d  f       Nc= f! U[        l        f = f)Nrd   r1   r<   rA   	^WARNING:)r.   rD   rE   rF   rI   r5   ftpartialr9   rG   rH   rJ   rK   rL   re   rf   rM   rN   rO   rP   assertRegexr-   rC   r8   rV   
pyaml_dumprW   s         r   test_out_brokenCliToolTests.test_out_brokenR   s    		R[[]BKKM#! ::rzzejj1F(I*ej#q299>>
++b/#  4$..)NN3<<>" 	*c#,,.)3/CLLNL1"5:	 	*) #5:s&   A0F
 7%E9AF
 9
FF
 
Fc                    [         R                  5       [        R                  " 5       [        R                  " 5       p2n[        R
                  [        R                  " U R                  [        R
                  SS9sn[        l         [        R                  " U5      n[        R                  R                  [        5       [        R                  " U5      X#S9  [        R                  " UR                  5       5        U R!                  [#        UR                  5       5      S5        U R%                  UR                  5       S5        U[        l        g ! U[        l        f = f)Nz
extra-key: valuer1   r<   rA   rj   )r.   rD   rE   rF   rI   r5   rk   rl   r9   rG   rH   rJ   rK   rL   rM   rN   rO   rP   rm   rn   s         r   test_out_mismatchCliToolTests.test_out_mismatch`   s    		R[[]BKKM#! ::rzzejj1E(H*ej#q299>>
++b/#  4>>#,,.!c#,,.)3/CLLNL1"5:
5:s   B>E Ec                 &   [         R                  5       [        R                  " 5       [        R                  " 5       p2n[        R
                  [        R                  " U R                  [        R
                  SS9sn[        l         [        R                  " U5      n[        R                  R                  S/[        R                  " U5      X#S9  U R                  [        R                  5         [        R                  " UR!                  5       5        S S S 5        U R#                  [%        UR!                  5       5      S5        U R'                  UR!                  5       S5        U[        l        g ! , (       d  f       Nc= f! U[        l        f = f)Nrd   r1   z-qr<   rA   rB   )r.   rD   rE   rF   rI   r5   rk   rl   r9   rG   rH   rJ   rK   re   rf   rM   rN   rO   rP   rQ   rn   s         r   test_out_err_nocheck!CliToolTests.test_out_err_nocheckm   s    		R[[]BKKM#! ::rzzejj1F(I*ej#q299>>
++b/#  4$..)NN3<<>" 	*c#,,.)3/CLLNB'"5:	 	*) #5:s&   A)F 0%E2AF 2
F <F Fc           	      
   [         R                  5       [        R                  " 5       [        R                  " 5       p2n[        R
                  [        R                  pTU R                  [        5         X#s[        l        [        l         [        R                  R                  S/[        R                  " 5       X#S9  XEs[        l        [        l         S S S 5        U R                  UR                  5       S5        U R                  [        UR                  5       5      S5        UR!                  S5        UR#                  5         [$        R&                  " SS9 n[(        R*                  " U5      R-                  5       nUR/                  U5        UR1                  5         [2        R4                  " UR7                  5       S5        [2        R8                  " UR7                  5       5      n[        R                  R                  SUR:                  /[        R                  " 5       X#S9  [=        UR:                  S	5       n	U	R?                  5       [2        R8                  " U	R7                  5       5      pS S S 5        U R                  UR                  5       S5        U R                  UR                  5       S5        UR!                  S5        UR?                  5       nU R                  X5        U RA                  UW
5        U RC                  Xz5        U R                  [D        RF                  " U
5      U5        U R                  URH                  URJ                  URL                  4WRH                  URJ                  URL                  45        [2        RN                  " UR:                  S
5        [=        UR:                  S5       n	U	R/                  S5        U	R!                  S5        U	R?                  5       n
S S S 5        U R                  [D        RP                  5         [        R                  R                  SUR:                  /[        R                  " 5       X#S9  S S S 5        U R                  UR                  5       S5        U R                  UR                  5       S5        [=        UR:                  S5       n	U	R!                  S5        U	R?                  5       nS S S 5        U R                  U
W5        S S S 5        g ! XEs[        l        [        l        f = f! , (       d  f       GNI= f! , (       d  f       GN= f! , (       d  f       GNO= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)N-rr<   rB   2   r   .pyaml.test.prefixiH  rbi  zr+rd   r))r.   rD   rE   rF   sysr?   r@   re   
SystemExitrI   rJ   rK   rQ   rN   rO   rP   seektruncatetempfileNamedTemporaryFiler+   r,   encodewriteflushosfchmodfilenofstatnameopenreadassertNotEqualr]   rG   rM   st_modest_uidst_gidchmodrf   )r-   rC   r8   rV   sys_outsys_errtmpd_jsonstat_tmptmp_newd_newstat_newd_tmpd_new2s                 r   test_replaceCliToolTests.test_replace{   s   		R[[]BKKM#!ZZ7$3:sz6	IINN$;;=  3%,"CJ
 % 3<<>2&S("-((1+s||~"".9SJJqM  "699Vciik99SZZ\6"hhszz|$899>>sxx(
++-  2SXXtllnbhhw~~/?&@8 	CLLNB'CLLNB'88A;
E"ue$F"DNN5)1-x8x8; 88CHHeSXXtMM'(LLOW\\^U 	 	$..)	IINN$);;=  3 	* CLLNB'CLLNB'SXXswLLOgllnV 	E6"C :9 &-"CJ
 %$$ 	 	 	*)
 	? :9s   2T
3S;=TC#U.=4T(1EU.?3T:2'U.?UAU.6"UU.;TT
T%(
T7	2U.:
U		U.
U	U.
U+	'U..
U<c           
         [         R                  5       [        R                  " 5       [        R                  " 5       p2n[        R
                  " U5      n[        R                  R                  [        5       [        R                  " U5      X#S9  U R                  SUR                  5       5        [        R                  R                  [        5       [        R                  " SU-   5      X#S9  U R                  SUR                  5       5        U R                  [        [        [        R                  " UR                  5       5      5      5      S5        g )Nr<   ---z---
r   )r.   rD   rE   rF   rG   rH   rI   rJ   rK   rL   r]   rN   rQ   rP   safe_load_allrU   s        r   test_single_docCliToolTests.test_single_doc   s    		R[[]BKKM#!~~a"))..tv	R  35#,,.)))..tv	Wr\	"3  =5#,,.)3tD..s||~>?@!Dr   c                    [         R                  5       [        R                  " 5       [        R                  " 5       p2nXR                  5       pTSUS'   [        R
                  " XE/5      n[        R                  R                  [        5       [        R                  " U5      X#S9  U R                  [        UR                  5       5      S5        U R                  UR                  5       S5        U R                  SUR                  5       5        [        R                  " UR                  5       5      u  pxU R!                  SU5        U R                  UR#                  S5      US   5        g )N  doc2_valr<   rA   rB   r   )r.   rD   rE   rF   rG   safe_dump_allrI   rJ   rK   rL   rO   rP   rN   rQ   assertInr   r]   get)	r-   rC   r8   rV   d1d2rW   xd1xd2s	            r   test_multi_docCliToolTests.test_multi_doc   s    		R[[]BKKM#!ffhb:2(#"))..tv	R  3S(#.3<<>2&--s||~&/(#:s#377:&:7r   c                    [         R                  5       [        R                  " 5       [        R                  " 5       p2nXR                  5       UR                  5       penSu  US'   US'   S[        R
                  " U5      -   nUS[        R
                  " U5      -   -  nUS[        R
                  " U5      -   S-   -  nUS[        R
                  " U5      -   -  nUS	[        R
                  " U5      -   -  n[        R                  R                  S
/[        R                  " U5      X#S9  U R                  [        R                  5         [        R                  R                  [        5       [        R                  " U5      X#S9  S S S 5        U R                  [        UR                  5       5      S5        U R!                  UR                  5       S5        U R#                  SUR                  5       5        [        R$                  " UR                  5       5      u  ppnU R'                  SU5        U R'                  SU5        U R!                  U	R)                  S5      US   5        U R'                  SU	5        U R!                  U
R)                  S5      US   5        U R'                  SU
5        U R!                  UR)                  S5      US   5        U R!                  UR)                  S5      US   5        [        R                  " 5       S[        R
                  " U5      -   S-   pr[        R                  R                  S/[        R                  " U5      X#S9  [        R$                  " UR                  5       5      u  n
U R!                  U
R)                  S5      US   5        U R'                  SU
5        U R'                  SUR                  5       5        g ! , (       d  f       GNY= f)N)r   i.  r   doc3_valz

   
  z
 
   
   
z
 z	
 
   	 

 z-lr<   rA   rB   r   z
 
 	 
z--lines)r.   rD   rE   rF   r+   r,   rI   rJ   rK   re   rG   rf   rL   rO   rP   rN   rQ   r   r   r]   r   )r-   rC   r8   rV   r   r   d3rW   r   r   xd3xd3axd3bs                r   
test_linesCliToolTests.test_lines   s   		R[[]BKKM#!&&(AFFH""#- "Z."Z.

2&"djjn,,"B"333"tzz"~"tzz"~"))..v	R  3(99>>
++b/#  4 ) S(#.3<<>2&--s||~&"00@#Ct:s#:s#377:&:7:s#377:&:7:s#488J'J8488J'J8KKM6DJJrN2_Dr))..	{	R  3			CLLN	+$#377:&:7:s#5#,,.)/ )(s   <O
O%c                    [         R                  5       [        [         SS9/[        R                  " 5       [        R                  " 5       p2n[
        R                  " SS9 n[
        R                  " SS9 nXE/[        S U 5       5      pv[        Xg5       H&  u  pUR                  U	5        UR                  5         M(     U R                  [        5         X#[        R                  [        R                  4u  [        l        [        l        p[         R"                  R%                  SUR&                  SUR&                  /[        R                  " 5       X#S9  Xs[        l        [        l        [        Xg5       HD  u  pUR)                  S	5        U R+                  UR-                  5       R/                  5       U	5        MF     S S S 5        U R+                  UR1                  5       S5        U R3                  [5        UR1                  5       5      S
5        UR)                  S	5        UR7                  5         [         R"                  R%                  SUR&                  UR&                  /[        R                  " 5       X#S9  [        XaU5       H  u  pn	UR)                  S	5        UR-                  5       R/                  5       nU R9                  X5        U R+                  U R;                  U5      U R;                  [<        R>                  " U5      5      5        M     U R+                  UR1                  5       S5        U R+                  UR1                  5       S5        [<        R@                  " [        US	   [        S/S9S9S/ SQ/=n5      n[         R"                  R%                  UR&                  SUR&                  /[        R                  " U5      X#S9  U R+                  [        [<        RB                  " UR1                  5       5      5      US   /UQUS	   P5        S S S 5        S S S 5        g ! Xs[        l        [        l        f = f! , (       d  f       GN= f! , (       d  f       ND= f! , (       d  f       g = f)Nr   )diffr{   r|   c              3   j   #    U  H)  n[         R                  " U5      R                  5       v   M+     g 7fr4   )r+   r,   r   ).0rC   s     r   	<genexpr>2CliToolTests.test_multiple_args.<locals>.<genexpr>   s$     *N2a4::a=+?+?+A+A2s   13ry   rB   r<   r   rz   xyz)r   )diff2abcde)r   r$   r   r   )"r.   rD   dictrE   rF   r   r   rL   zipr   r   re   r   r   r?   r@   rI   rJ   rK   r   r   rQ   r   decoderN   rO   rP   r   r   r/   rG   rM   r   r   )r-   dsr8   rV   tmp1tmp2	tmp_filesds_jsonr   r   r   r   rC   d_yamld_stdinys_stdins                   r   test_multiple_argsCliToolTests.test_multiple_args   s   ))+tDs34bkkmR[[]3""".9T~6$d*N2*N&Ng)-{ssyy/@#))+-*%/2SZZ/O,CJ
G	B		
*;;= 
 
3 '.#SZ9.XXa[$""388:#4#4#6? / 	& CLLNB'c#,,.)2.88A;99>>tyy$))4
++-  2YG4~svHHQK#((*++-'T^^A&t~~f7M(NO 5 CLLNB'CLLNB'  RU$%/2GWEEGH899>>B		2
++h
  :D++CLLN;<r!u>Vw>VPRSTPU>VW; 7 :9 '.#SZ 	&%	 76 :9sX    Q%5AQ8QA
P'A)Q?IQQ%'P?	?Q
QQ
Q"	Q%%
Q3c           	         [         R                  5       [        R                  " 5       [        R                  " 5       p2n[        R
                  " U5      [        R                  " U5      pT[        R                  " SS9 nUR                  S=n5        U R                  [        5         X#[        R                  [        R                  4u  [        l        [        l        p [        R                   R#                  SSUR$                  /[        R                  " 5       X#S9  Xs[        l        [        l         S S S 5        U R'                  UR)                  5       S5        U R+                  [-        UR)                  5       5      S5        UR/                  S	5        UR1                  5         [2        R4                  " S
=n
5      oR6                  UR8                  4n[        R                   R#                  SU
/[        R                  " U5      X#S9  U R'                  UR)                  5       S5        U R'                  UR)                  5       S5        UR/                  S	5        U R'                  UR;                  5       U5        [2        R4                  " U
5      oR'                  UR6                  UR8                  4U5        [        R                   R#                  SUR$                  /[        R                  " U5      X#S9  U R'                  UR)                  5       S5        U R'                  UR)                  5       S5        UR/                  S	5        U R'                  UR;                  5       U5        [=        UR$                  5       oR'                  UR;                  5       U5        S S S 5        S S S 5        g ! Xs[        l        [        l        f = f! , (       d  f       GN= f! , (       d  f       ND= f! , (       d  f       g = f)Nr{   r|   s   == some earlier data ==ry   z-or<   rB   rz   r   z	/dev/null)r.   rD   rE   rF   rG   rH   rI   r5   r   r   r   re   r   r   r?   r@   rJ   rK   r   rQ   rN   rO   rP   r   r   r   statst_devst_inor   r   )r-   rC   r8   rV   rW   ys_pyamlr   r   r   r   pstst_idtmp_repls                 r   test_out_fileCliToolTests.test_out_file	  s   		R[[]BKKM#!"EJJqMh"".9S9900U1*%/2SZZ/O,CJ
G7
YY^^4sxx0KKM#  4&-#SZ 	& CLLNB'c#,,.)2.88A;
[ !299bii+?599>>q	
++b/#  4CLLNB'CLLNB'88A;  U3

2$$bii%;UC99>>sxx(
++b/#  4CLLNB'CLLNB'88A;  U3SXX($4$4X]]_h$O5 :9 '.#SZ 	&%. 	5 :9sU   =)O-&8O
?N/O
5I	O-> OO-/OO


O	O-
O*	&O--
O;r	   )r
   r   r   r   r/   r9   rX   ra   rg   rp   rs   rv   r   r   r   r   r   r   r   r	   r   r   r'   r'       sS    * 59 
'((4###.#`	E8"*H XDPr   r'   __main__)collectionsrS   	functoolsrk   r   r   rE   enumunittestr+   r   rG   	pyaml.clirI   ImportErrorr   insertjoin__file__IntEnumr   r   r.   TestCaser'   r
   rK   r	   r   r   <module>r      s   ) 2 2 2 2   	
 
V3$	1  - &/U" #'+E{3I'JU# $a1~^ FP8$$ FPP z8==?C	  BGGLL5TF1H56s   B4 4AC<;C<