
    0hh                     Z   S SK r S SKrS SKrS SKrS SKJr  S SKJrJr  S SK	J
r
Jr  \R                  S:w  a  \R                  " S5      eS SKrS SKr " S S\R                   5      rS	rS
r " S S\R                   5      r " S S\R                   5      r\S:X  a  \R.                  " 5         gg)    N)dedent)	os_helperrequires_resource)TESTFNTESTFN_ASCIIwin32zwindows related testsc                   2    \ rS rSrS rS rS rS rS rSr	g)	TestFileOperations   c                    [        [        S5       nU R                  [        R                  [        5        [
        R                  " UR                  5       [
        R                  S5        U R                  [        [
        R                  UR                  5       [
        R                  S5        S S S 5        g ! , (       d  f       g = fNw   )openr   
addCleanupr   unlinkmsvcrtlockingfilenoLK_LOCKassertRaisesOSErrorLK_NBLCKselffs     9/opt/python-3.13.8/usr/lib/python3.13/test/test_msvcrt.pytest_lockingTestFileOperations.test_locking   sm    &#!OOI,,f5NN188:v~~q9gv~~qxxz6??TUV	 s   BB66
Cc                    [        [        S5       nU R                  [        R                  [        5        [
        R                  " UR                  5       [
        R                  S5        [
        R                  " UR                  5       [
        R                  S5        [
        R                  " UR                  5       [
        R                  S5        S S S 5        g ! , (       d  f       g = fr   )
r   r   r   r   r   r   r   r   r   LK_UNLCKr   s     r   test_unlockfile"TestFileOperations.test_unlockfile   s|    &#!OOI,,f5NN188:v~~q9NN188:v:NN188:v~~q9 s   CC
C)c                 l   [        [        S5       nU R                  [        R                  [        5        [
        R                  " UR                  5       [        R                  5        [
        R                  " UR                  5       [        R                  5        S S S 5        g ! , (       d  f       g = fNr   )r   r   r   r   r   r   setmoder   osO_BINARYO_TEXTr   s     r   test_setmodeTestFileOperations.test_setmode!   s^    &#!OOI,,f5NN188:r{{3NN188:ryy1	 s   BB%%
B3c           	         [         R                  " [        [         R                  SSSSS5      nU R	                  [
        R                  [        5         [        R                  " U[        R                  5      nS n[        R                  " U5        U(       a  [         R                  " U5        g g ! U(       a  [         R                  " U5        f f = f)Nr   r      )_winapi
CreateFiler   GENERIC_WRITEr   r   r   r   open_osfhandler'   O_RDONLYcloseCloseHandle)r   hfds      r   test_open_osfhandle&TestFileOperations.test_open_osfhandle(   s    |W-B-BAq!SRST	((,7	'&&q"++6BAHHRL##A& q##A& s   =B0 0 Cc                     [        [        S5       nU R                  [        R                  [        5        [
        R                  " UR                  5       5        S S S 5        g ! , (       d  f       g = fr%   )r   r   r   r   r   r   get_osfhandler   r   s     r   test_get_osfhandle%TestFileOperations.test_get_osfhandle4   sB    &#!OOI,,f5  , s   A	A##
A1 N)
__name__
__module____qualname____firstlineno__r   r"   r*   r7   r;   __static_attributes__r=       r   r
   r
      s    W:2
'-rC   r
   u   字s   W[c                   `    \ rS rSr\" S5      S 5       rS rS rS rS r	S r
S	 rS
 rS rSrg)TestConsoleIO?   guic                 t    [         R                  SU/n[        R                  " USS[        R                  S9  g )Nz-cT)checkcapture_outputcreationflags)sys
executable
subprocessrunCREATE_NEW_CONSOLE)r   codecmds      r   run_in_separated_process&TestConsoleIO.run_in_separated_processA   s0     ~~tT*s$t%/%B%B	DrC   c                 <    [        S5      nU R                  U5        g )NzJ
            import msvcrt
            assert msvcrt.kbhit() == 0
        )r   rS   )r   rQ   s     r   
test_kbhitTestConsoleIO.test_kbhitI   s!       	%%d+rC   c                 z    [         R                  " S5        U R                  [         R                  " 5       S5        g N   c)r   ungetchassertEqualgetchr   s    r   
test_getchTestConsoleIO.test_getchP   s$    t.rC   c           	      r    [        S[        [        5       SU S[         S35      nU R	                  U5        g )Nz
            import msvcrt
            from _testconsole import write_input
            with open("CONIN$", "rb", buffering=0) as stdin:
                write_input(stdin, z )
                assert msvcrt.z() == "z
"
        )r   ascii	c_encodedcrS   )r   funcnamerQ   s      r   check_getwchTestConsoleIO.check_getwchT   sH     $ %*)$4#5 6'js 3	  	%%d+rC   c                 &    U R                  S5        g )Ngetwchrf   r^   s    r   test_getwchTestConsoleIO.test_getwch^   s    (#rC   c                 z    [         R                  " S5        U R                  [         R                  " 5       S5        g rY   )r   r[   r\   getcher^   s    r   test_getcheTestConsoleIO.test_getchea   s$    t$/rC   c                 &    U R                  S5        g )Ngetwcherj   r^   s    r   test_getwcheTestConsoleIO.test_getwchee   s    )$rC   c                 0    [         R                  " S5        g rY   )r   putchr^   s    r   
test_putchTestConsoleIO.test_putchh   s    TrC   c                 8    [         R                  " [        5        g N)r   putwchrd   r^   s    r   test_putwchTestConsoleIO.test_putwchk   s    arC   r=   N)r>   r?   r@   rA   r   rS   rV   r_   rf   rk   ro   rs   rw   r|   rB   r=   rC   r   rE   rE   ?   sC    uD D,/,$0%rC   rE   c                       \ rS rSrS rSrg)	TestOthero   c                 P     [         R                  " 5         g ! [         a     g f = frz   )r   heapminr   r^   s    r   test_heap_minTestOther.test_heap_minp   s#    	NN 		s    
%%r=   N)r>   r?   r@   rA   r   rB   r=   rC   r   r   r   o   s    rC   r   __main__)r'   rN   rL   unittesttextwrapr   test.supportr   r   test.support.os_helperr   r   platformSkipTestr.   r   TestCaser
   rd   rc   rE   r   r>   mainr=   rC   r   <module>r      s    	  
   5 7<<7


3
44  '-** '-T 	-H%% -`!!  zMMO rC   