
    /hh)                     v   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Jr   " S S\5      r " S S\5      r	 " S S\5      r
 " S	 S
\	\
5      r " S S\
\	5      r " S S\5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r\S:X  a  \R&                  " 5         gg)    N)EEXISTc                       \ rS rSrSrg)
SubOSError
    N__name__
__module____qualname____firstlineno____static_attributes__r       F/opt/python-3.13.8/usr/lib/python3.13/test/test_exception_hierarchy.pyr   r   
       r   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )SubOSErrorWithInit   c                 0   > X l         [        TU ]	  U5        g N)barsuper__init__)selfmessager   	__class__s      r   r   SubOSErrorWithInit.__init__   s    !r   r   )r	   r
   r   r   r   r   __classcell__r   s   @r   r   r      s    " "r   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )SubOSErrorWithNew   c                 2   > [         TU ]  X5      nX#l        U$ r   )r   __new__baz)clsr   r%   r   r   s       r   r$   SubOSErrorWithNew.__new__   s    ws,r   r%   )r	   r
   r   r   r$   r   r   r   s   @r   r!   r!      s     r   r!   c                       \ rS rSrSrg)SubOSErrorCombinedInitFirst   r   Nr   r   r   r   r*   r*      r   r   r*   c                       \ rS rSrSrg)SubOSErrorCombinedNewFirst   r   Nr   r   r   r   r-   r-      r   r   r-   c                       \ rS rSrS rSrg)SubOSErrorWithStandaloneInit   c                     g r   r   r   s    r   r   %SubOSErrorWithStandaloneInit.__init__   s    r   r   N)r	   r
   r   r   r   r   r   r   r   r0   r0      s    r   r0   c                   L    \ rS rSrS rS rS rSrS r\" \5      r	S r
S rS	rg
)HierarchyTest#   c                     U R                  [        R                  S5        U R                  [        [        5        U R                  [
        [        5        g )NOSError)assertEqualr9   r	   assertIsIOErrorEnvironmentErrorr3   s    r   test_builtin_errors!HierarchyTest.test_builtin_errors%   s5    ))95gw'&0r   c                 L   U R                  [        R                  [        5        U R                  [        R                  R
                  [        5        U R                  [        R                  R
                  [        5        U R                  [        R                  [        5        g r   )	r;   socketerrorr9   gaierror__base__herrortimeoutTimeoutErrorr3   s    r   test_socket_errors HierarchyTest.test_socket_errors*   sV    fllG,foo..8fmm,,g6fnnl3r   c                 L    U R                  [        R                  [        5        g r   )r;   selectrB   r9   r3   s    r   test_select_errorHierarchyTest.test_select_error0   s    fllG,r   ae  
        +-- BlockingIOError        EAGAIN, EALREADY, EWOULDBLOCK, EINPROGRESS
        +-- ChildProcessError                                          ECHILD
        +-- ConnectionError
            +-- BrokenPipeError                              EPIPE, ESHUTDOWN
            +-- ConnectionAbortedError                           ECONNABORTED
            +-- ConnectionRefusedError                           ECONNREFUSED
            +-- ConnectionResetError                               ECONNRESET
        +-- FileExistsError                                            EEXIST
        +-- FileNotFoundError                                          ENOENT
        +-- InterruptedError                                            EINTR
        +-- IsADirectoryError                                          EISDIR
        +-- NotADirectoryError                                        ENOTDIR
        +-- PermissionError                        EACCES, EPERM, ENOTCAPABLE
        +-- ProcessLookupError                                          ESRCH
        +-- TimeoutError                                            ETIMEDOUT
    c                 p   0 nU R                  5        H  nUR                  S5      nU(       d  M  UR                  S5      u  p4n[        S UR                  5       R	                  S5      5       HA  nUS:X  a  [        [        U5      (       d  M   [        [        U5      U[        [        U5      '   MC     M     U$ )Nz+-  z, ENOTCAPABLE)	
splitlinesstrip	partitionfiltersplithasattrerrnogetattrbuiltins)s_maplineexcname_errnameserrnames          r   	_make_mapHierarchyTest._make_mapF   s    LLND::e$D#'>>##6 G!$(8(>(>t(DEm+GE74K4K07'0JWUG,- F # r   c                    [        [        S5      nU R                  [        U5      [        5        U R
                  R                  5        H,  u  p#[        US5      nU R                  [        U5      U5        M.     [        [        R                  5      [        U R
                  5      -
  nU H8  n[        US5      nU R                  [        U5      [         [        U5      5        M:     g )NBad file descriptorzSome message)r9   r   r;   typeFileExistsErrorr[   itemssetrW   	errorcoderepr)r   eerrcodeexc
othercodess        r   test_errno_mapping HierarchyTest.test_errno_mappingT   s     F12d1g/ IIOO-LG0AMM$q'3' . )C		N:
!G0AMM$q'7DG4 "r   c                 .   Sn [        U5        U R                  S5        U R                  [        R
                  R                  U5      5         [        R                  " U5        U R                  S5        g ! [         a     Ncf = f! [         a     g f = f)N some_hopefully_non_existing_filez&should have raised a FileNotFoundError)openfailFileNotFoundErrorassertFalseospathexistsunlink)r   filenames     r   test_try_exceptHierarchyTest.test_try_exceptb   s    5	@N II>? 	12	@IIh II>? ! 		 ! 		s#   A7 B 7
BB
BBr   N)r	   r
   r   r   r>   rH   rL   _pep_mapra   r[   ro   r|   r   r   r   r   r6   r6   #   s4    1
4-
H" XD5@r   r6   c                   r    \ rS rSrS rS r\R                  " \R                  S:H  S5      S 5       r
S rSrg	)
AttributesTestz   c                     [         R                  S:X  a   U R                  S[        [        5      5        g U R                  S[        [        5      5        g )Nntwinerror)rw   nameassertIndirr9   assertNotInr3   s    r   test_windows_error!AttributesTest.test_windows_error|   s3    77d?MM*c'l3ZW6r   c                 ~   [        [        SS5      nU R                  UR                  [        5        U R                  UR                  S   [        5        U R                  UR
                  S5        U R                  UR                  S5        [        R                  S:X  a  U R                  UR                  S 5        g g )NFile already existsfoo.txtr   r   )
r9   r   r:   rW   argsstrerrorr{   rw   r   r   r   rk   s     r   test_posix_errorAttributesTest.test_posix_error   s    F19=&)F+%:;Y/77d?QZZ. r   r   zWindows-specific testc                 N   [        SSSS5      nU R                  UR                  S5        U R                  UR                  [        5        U R                  UR
                  S   [        5        U R                  UR                  S5        U R                  UR                  S5        g )Nr   r   r      )r9   r:   r   rW   r   r   r   r{   r   s     r   test_errno_translation%AttributesTest.test_errno_translation   s~     A,i=S)&)F+%:;Y/r   c                 .   Sn[        S5       HX  n[        US U 6 nU R                  [        5         UR                    S S S 5        U R                  [        5         U?S S S 5        MZ     [        SSS5      nU R                  UR                  S5        SUl        U R                  UR                  S5        U?U R                  [        5         UR                    S S S 5        g ! , (       d  f       N= f! , (       d  f       M  = f! , (       d  f       g = f)N)abcdrk      r   r         )rangeBlockingIOErrorassertRaisesAttributeErrorcharacters_writtenr:   )r   r   nrk   s       r   test_blockingioerror#AttributesTest.test_blockingioerror   s    (qAbq*A"">2$$ 3"">2( 32	  Ca(--q1 --q1 ~.   /. 3222 /.s#   C#C4D#
C1	4
D	
Dr   N)r	   r
   r   r   r   r   unittest
skipUnlessrw   r   r   r   r   r   r   r   r   r   z   s<    7/ D*AB0 C0!r   r   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)ExplicitSubclassingTest   c                 b    [        [        S5      nU R                  [        U5      [         5        g )Nrd   )r   r   r;   re   r   s     r   ro   *ExplicitSubclassingTest.test_errno_mapping   s!    v45d1gz*r   c                     [        SS5      nU R                  UR                  S5        U R                  UR                  S5        g Nsome messager%   r   r   r:   r   r   r   s     r   test_init_overridden,ExplicitSubclassingTest.test_init_overridden   s7    ~u5&!23r   c                     [        SSS9nU R                  UR                  S5        U R                  UR                  S5        g )Nr   r%   r   r   r   r   s     r   test_init_kwdargs)ExplicitSubclassingTest.test_init_kwdargs   s7    ~59&!23r   c                     [        SS5      nU R                  UR                  S5        U R                  UR                  S5        g r   r!   r:   r%   r   r   s     r   test_new_overridden+ExplicitSubclassingTest.test_new_overridden   s7    ne4&!23r   c                     [        SSS9nU R                  UR                  S5        U R                  UR                  S5        g )Nr   r%   r(   r   r   r   s     r   test_new_kwdargs(ExplicitSubclassingTest.test_new_kwdargs   s7    n%8&!23r   c                    [        SS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        [        SS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g r   )r*   r:   r   r%   r   r-   r   s     r   test_init_new_overridden0ExplicitSubclassingTest.test_init_new_overridden   s    '>&&!23&~u=&&!23r   c                     [        5       nU R                  UR                  S5        U R                  [        U5      S5        g )Nr    )r0   r:   r   strr   s     r   test_init_standalone,ExplicitSubclassingTest.test_init_standalone   s2    (*$Q$r   r   N)r	   r
   r   r   ro   r   r   r   r   r   r   r   r   r   r   r   r      s%    +
4
4
4
4
4%r   r   __main__)rY   rw   rK   rA   r   rW   r   r9   r   r   r!   r*   r-   r0   TestCaser6   r   r   r	   mainr   r   r   <module>r      s     	     	 	" "
 	"46G 		!24F 	7 
T@H%% T@n)!X&& )!X)%h// )%X zMMO r   