
    vgS                     x   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d dlmZ d dlmZ  G d d	ej                  Z G d
 d          Z G d deej                  Z G d deej                  Zej                            d          reZneZ G d de          Z G d de          Z G d dej                  Z G d dej                  Z G d dej                  Z G d deej                  Z G d d          Zd Z e!d k    r ej"        d!"           dS dS )#    N)PY2)	as_string)StringIO)unicode)mock)DummyStreamc                       e Zd Zd ZdS )
LevelTestsc                     ddl m} |j                                        D ]*}|                     |                    d                     +d S )Nr   loggers_)
supervisorr   LOG_LEVELS_BY_NUMvaluesassertFalse
startswith)selfr   
level_names      Z/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/supervisor/tests/test_loggers.py.test_LOG_LEVELS_BY_NUM_doesnt_include_builtinsz9LevelTests.test_LOG_LEVELS_BY_NUM_doesnt_include_builtins   sa    &&&&&&!3::<< 	9 	9JZ223778888	9 	9    N)__name__
__module____qualname__r    r   r   r
   r
      s#        9 9 9 9 9r   r
   c                   &    e Zd Zd Zd Zd Zd ZdS )HandlerTestsc                     t          j                    | _        t          j                            | j        d          | _        d S )Nthelog)tempfilemkdtempbasedirospathjoinfilenamer   s    r   setUpzHandlerTests.setUp   s/    '))T\8<<r   c                 \    	 t          j        | j                   d S # t          $ r Y d S w xY wN)shutilrmtreer#   OSErrorr(   s    r   tearDownzHandlerTests.tearDown   sA    	M$,''''' 	 	 	DD	s    
++c                 :    |                                  } ||i |S r+   _getTargetClass)r   argkwklasss       r   _makeOnezHandlerTests._makeOne#   s(    $$&&uc R   r   c                 V    ddl m} |                    |j        j        |d           }|S )Nr   r   )levelmsgexc_info)r   r   	LogRecordLevelsByNameINFO)r   r9   r   records       r   _makeLogRecordzHandlerTests._makeLogRecord'   sD    &&&&&&""&+ #  
 r   N)r   r   r   r)   r/   r6   r?   r   r   r   r   r      sP        = = =  ! ! !    r   r   c                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )BareHandlerTestsc                     ddl m} |S )Nr   )Handler)supervisor.loggersrC   )r   rC   s     r   r2   z BareHandlerTests._getTargetClass1       ......r   c                     t          t          t          j                            }|                     |          }|                     |                                d            d S Nerrorstream)r   IOErrorerrnoEPIPEr6   assertEqualflushr   rK   insts      r   ,test_flush_stream_flush_raises_IOError_EPIPEz=BareHandlerTests.test_flush_stream_flush_raises_IOError_EPIPE5   sS    75;#7#7888}}F}++t,,,,,r   c                     t          t          t          j                            }|                     |          }|                     t          |j                   d S rG   )r   rL   rM   EALREADYr6   assertRaisesrP   rQ   s      r   0test_flush_stream_flush_raises_IOError_not_EPIPEzABareHandlerTests.test_flush_stream_flush_raises_IOError_not_EPIPE:   sM    75>#:#:;;;}}F}++'4:.....r   c                     t                      }|                     |          }d|_        |                     |                                d            d S )NrJ   T)r   r6   closedrO   closerQ   s      r   test_close_already_closedz*BareHandlerTests.test_close_already_closed?   sI    }}F}++t,,,,,r   c                    t          d          }|                     |          }|                     |                                d            |                     |j                   |                     |j        j                   d S )N2   filenorJ   )r   r6   rO   rZ   
assertTruerY   rK   rQ   s      r    test_close_stream_fileno_above_3z1BareHandlerTests.test_close_stream_fileno_above_3E   st    B'''}}F}++t,,,$$$*+++++r   c                    t          d          }|                     |          }|                     |                                d            |                     |j                   |                     |j        j                   d S )Nr   r^   rJ   )r   r6   rO   rZ   r   rY   rK   rQ   s      r    test_close_stream_fileno_below_3z1BareHandlerTests.test_close_stream_fileno_below_3L   sx    A&&&}}F}++t,,,%%%+,,,,,r   c                     t                      }|                     |          }|                                 |                     |j                   d S )NrJ   )r   r6   rZ   r`   rY   rQ   s      r   6test_close_stream_handles_fileno_unsupported_operationzGBareHandlerTests.test_close_stream_handles_fileno_unsupported_operationS   sG     }}F}++

$$$$$r   c                     t                      }d }||_        |                     |          }|                                 |                     |j                   d S )Nc                      t                      r+   )rL   r   r   r   raise_ioerrorzPBareHandlerTests.test_close_stream_handles_fileno_ioerror.<locals>.raise_ioerror]   s    ))Or   rJ   )r   r_   r6   rZ   r`   rY   )r   rK   rh   rR   s       r   (test_close_stream_handles_fileno_ioerrorz9BareHandlerTests.test_close_stream_handles_fileno_ioerror[   s[    	 	 	%}}F}++

$$$$$r   c                    t                      }|                     |          }|                     d          }|                    |           |                     |j        d           |                     |j        d           d S )NrJ      fooT)r   r6   r?   emitrO   flushedwrittenr   rK   rR   r>   s       r   test_emit_gardenpathz%BareHandlerTests.test_emit_gardenpathd   sy    }}F}++$$V,,		&...00000r   c                    t          t                    }|                     |          }|                     d          }|                    |           |                     |j        d           |                     |j        d           d S )NrH   rJ   rk   T)r   UnicodeErrorr6   r?   rl   rO   rm   rn   ro   s       r   test_emit_unicode_errorz(BareHandlerTests.test_emit_unicode_errorl   s    <000}}F}++$$V,,		&...00000r   c                 6   t          t                    }|                     |          }g fd|_        |                     d          }|                    |           |                     |j        d           |                     |j        d           d S )NrH   rJ   c                  .                          d          S NTappendhandleds   r   <lambda>z8BareHandlerTests.test_emit_other_error.<locals>.<lambda>x   s    7>>$#7#7 r   rk   Fr   )	r   
ValueErrorr6   handleErrorr?   rl   rO   rm   rn   )r   rK   rR   r>   rz   s       @r   test_emit_other_errorz&BareHandlerTests.test_emit_other_errort   s    :...}}F}++7777$$V,,		&///-----r   N)r   r   r   r2   rS   rW   r[   ra   rc   re   ri   rp   rs   r~   r   r   r   rA   rA   0   s          - - -
/ / /
- - -, , ,- - -% % %% % %1 1 11 1 1. . . . .r   rA   c                   V    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )FileHandlerTestsc                     ddl m} |S )Nr   )FileHandler)rD   r   )r   r   s     r   r2   z FileHandlerTests._getTargetClass   s    222222r   c                    |                      | j                  }|                     t          j                            | j                  | j                   |                     |j        d           |                     |j        | j                   |                     |j	        j
        | j                   |                                 d S )Nab)r6   r'   r`   r$   r%   existsrO   modebaseFilenamerK   namerZ   r   handlers     r   	test_ctorzFileHandlerTests.test_ctor   s    --..t}55t}EEEt,,,-t}===,dm<<<r   c                     |                      | j                  }|j                                         t	                      |_        |                                 |                     |j        j        d           d S rv   )r6   r'   rK   rZ   r   rO   rY   r   s     r   
test_closezFileHandlerTests.test_close   sb    --..$.55555r   c                    |                      | j                  }|j                                         t	          t
                    |_        |                     t
          |j                   |                     |j        j        d           d S NF)	r6   r'   rK   rZ   r   r.   rV   rO   rY   r   s     r   test_close_raisesz"FileHandlerTests.test_close_raises   sq    --..$W--'7=111.66666r   c                 f   |                      | j                  }|j                                         t	                      }||_        |                                 |                     |j        d           |                     |j        j        | j                   |                                 d S rv   )	r6   r'   rK   rZ   r   reopenrO   rY   r   r   r   rK   s      r   test_reopenzFileHandlerTests.test_reopen   s    --..---,dm<<<r   c                 b   |                      | j                  }|j                                         t	                      }||_        t
          j                            | j        dd          |_	        | 
                    t          |j                   |                     |j        d           d S )Nnotthereza.logT)r6   r'   rK   rZ   r   r$   r%   r&   r#   r   rV   rL   r   rO   rY   r   s      r   test_reopen_raisesz#FileHandlerTests.test_reopen_raises   s    --..!w||DL*gNN'7>222-----r   c                 V   |                      | j                  }|                     t          j                            | j                  | j                   |                                 |                     t          j                            | j                  | j                   d S r+   )r6   r'   r`   r$   r%   r   remover   r   s     r   test_remove_existsz#FileHandlerTests.test_remove_exists   sy    --..t}55t}EEE66FFFFFr   c                    |                      | j                  }t          j        | j                   |                     t          j                            | j                  | j                   |                                 |                     t          j                            | j                  | j                   d S r+   )r6   r'   r$   r   r   r%   r   r   s     r   test_remove_doesntexistz(FileHandlerTests.test_remove_doesntexist   s    --..
	$-   66FFF66FFFFFr   c                 X   |                      | j                  }t          j        | j                   t          j        | j                   |                     t          j                            | j                  | j                   |                     t          |j                   d S r+   )
r6   r'   r$   r   mkdirr`   r%   r   rV   r.   r   s     r   test_remove_raisesz#FileHandlerTests.test_remove_raises   s}    --..
	$-   
t}55t}EEE'7>22222r   c                 b   |                      | j                  }|                     d          }|                    |           |                                 t          | j        d          5 }|                     |                                d           d d d            d S # 1 swxY w Y   d S )N   hello!rbr6   r'   r?   rl   rZ   openrO   readr   r   r>   fs       r   test_emit_ascii_noerrorz(FileHandlerTests.test_emit_ascii_noerror   s    --..$$Y//V$-&& 	2!QVVXXy111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2   .)B$$B(+B(c                 b   |                      | j                  }|                     d          }|                    |           |                                 t          | j        d          5 }|                     |                                d           d d d            d S # 1 swxY w Y   d S )Ns   fiír   r   r   s       r   test_emit_unicode_noerrorz*FileHandlerTests.test_emit_unicode_noerror   s    --..$$]33V$-&& 	6!QVVXX}555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6r   c                    |                      | j                  }|j                                         t	          t
                    |_        |                     d          }	 t          j        }t	                      }|t          _        |	                    |           |t          _        n# |t          _        w xY w| 
                    |j                            d          |j                   d S )NrH   r   s   OSError
)r6   r'   rK   rZ   r   r.   r?   sysstderrrl   r`   rn   endswith)r   r   r>   
old_stderrdummy_stderrs        r   test_emit_errorz FileHandlerTests.test_emit_error   s    --..$7333$$Y//	$J&==L%CJLL   #CJJCJ####,55lCC$,	. 	. 	. 	. 	.s   $;B, ,B:N)r   r   r   r2   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ~   s            6 6 67 7 7  . . .G G GG G G3 3 32 2 26 6 6. . . . .r   r   /dev/stdoutc                       e Zd Zd ZdS )StdoutTestsc                    |                      d          }|                     |j        dv |j                   |                     |j        d           |                     |j        j        d           |                                 d S )Nr   )wbr   )r6   r`   r   rO   r   rK   r   rZ   r   s     r   test_ctor_with_dev_stdoutz%StdoutTests.test_ctor_with_dev_stdout   sw    --.. 	4glCCC-}===,m<<<r   N)r   r   r   r   r   r   r   r   r      s#            r   r   c                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )RotatingFileHandlerTestsc                     ddl m} |S )Nr   )RotatingFileHandler)rD   r   )r   r   s     r   r2   z(RotatingFileHandlerTests._getTargetClass   s    ::::::""r   c                    |                      | j                  }|                     |j        d           |                     |j        d           |                     |j        d           |                                 d S )Nr   i    
   )r6   r'   rO   r   maxBytesbackupCountrZ   r   s     r   r   z"RotatingFileHandlerTests.test_ctor   sp    --..t,,,)=999,b111r   c                 
   |                      | j        dd          }|                     d          }|                    |           |                     t
          j                            | j        dz                        |                     t
          j                            | j        dz                        |                    |           |                     t
          j                            | j        dz                        |                     t
          j                            | j        dz                        |                    |           |                     t
          j                            | j        dz                        |                     t
          j                            | j        dz                        |                    |           |                     t
          j                            | j        dz                        |                     t
          j                            | j        dz                        |                    |           |                     t
          j                            | j        dz                        |                     t
          j                            | j        dz                        |                    |           |                     t
          j                            | j        dz                        |                     t
          j                            | j        dz                        |                    |           |	                                 |                     t
          j                            | j        dz                        |                     t
          j                            | j        dz                        t          | j        d          5 }|                     |                                d           d d d            n# 1 swxY w Y   t          | j        dz   d          5 }|                     |                                d           d d d            n# 1 swxY w Y   t          | j        dz   d          5 }|                     |                                d           d d d            d S # 1 swxY w Y   d S )	Nr      r   r      aaaa.1z.2r   s   aaaaaaaaaaaa)r6   r'   r?   rl   r   r$   r%   r   r`   rZ   r   rO   r   r   s       r   test_emit_does_rolloverz0RotatingFileHandlerTests.test_emit_does_rollover   s   ---JJ$$X..V(<==>>>(<==>>>V(<==>>>(<==>>>Vt}t';<<===(<==>>>Vt}t';<<===(<==>>>Vt}t';<<===(<==>>>Vt}t';<<===t}t';<<===Vt}t';<<===t}t';<<===$-&& 	1!QVVXXx000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 $-$d++ 	2qQVVXXy111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 $-$d++ 	2qQVVXXy111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s6   )QQQ3)R((R,/R,)TTTc                 J   |                      | j        dd          }|                     d          }|                    |           |                     t
          j                            | j                             |                     t
          j                            | j        dz                        t          j	        | j                   |                     t
          j                            | j                             |                    |           |
                                 |                     t
          j                            | j                             |                     t
          j                            | j        dz                        d S )N      r   r   r   )r6   r'   r?   rl   r`   r$   r%   r   r   unlinkrZ   r   r   r>   s      r   test_current_logfile_removedz5RotatingFileHandlerTests.test_current_logfile_removed'  s3   --q-II$$X..Vt}55666(<==>>> 		$-   66777Vt}55666(<==>>>>>r   c                 ,   |                      | j                  }g g fd|_        d |_        fd|_        |                    dd           |                     dg           |                     g            |                                 d S )Nc                 .                         |           S r+   rw   vremovess    r   r{   zZRotatingFileHandlerTests.test_removeAndRename_destination_does_not_exist.<locals>.<lambda><      !2!2 r   c                     dS r   r   r   s    r   r{   zZRotatingFileHandlerTests.test_removeAndRename_destination_does_not_exist.<locals>.<lambda>=       r   c                 2                         | |f          S r+   rw   strenamess     r   r{   zZRotatingFileHandlerTests.test_removeAndRename_destination_does_not_exist.<locals>.<lambda>>      GNNAq6$:$: r   foobarr   r   r6   r'   _remove_exists_renameremoveAndRenamerO   rZ   r   rR   r   r   s     @@r   /test_removeAndRename_destination_does_not_existzHRotatingFileHandlerTests.test_removeAndRename_destination_does_not_exist8  s    }}T]++2222&::::UE***>"2333"%%%

r   c                 .   |                      | j                  }g g fd|_        d |_        fd|_        |                    dd           |                     dg           |                     dg           |                                 d S )Nc                 .                         |           S r+   rw   r   s    r   r{   zRRotatingFileHandlerTests.test_removeAndRename_destination_exists.<locals>.<lambda>H  r   r   c                     dS rv   r   r   s    r   r{   zRRotatingFileHandlerTests.test_removeAndRename_destination_exists.<locals>.<lambda>I       r   c                 2                         | |f          S r+   rw   r   s     r   r{   zRRotatingFileHandlerTests.test_removeAndRename_destination_exists.<locals>.<lambda>J  r   r   r   r   r   r   r   s     @@r   'test_removeAndRename_destination_existsz@RotatingFileHandlerTests.test_removeAndRename_destination_existsD  s    }}T]++2222%~::::UE***>"23335'***

r   c                     d }|                      | j                  }g ||_        d |_        fd|_        |                    dd           |                     dg           |                                 d S )Nc                 4    t          t          j                  r+   r.   rM   ENOENTfns    r   r   zRRotatingFileHandlerTests.test_removeAndRename_remove_raises_ENOENT.<locals>.removeQ      %,'''r   c                     dS rv   r   r   s    r   r{   zTRotatingFileHandlerTests.test_removeAndRename_remove_raises_ENOENT.<locals>.<lambda>V  r   r   c                 2                         | |f          S r+   rw   r   s     r   r{   zTRotatingFileHandlerTests.test_removeAndRename_remove_raises_ENOENT.<locals>.<lambda>W  r   r   r   r   r   r   )r   r   rR   r   s      @r   )test_removeAndRename_remove_raises_ENOENTzBRotatingFileHandlerTests.test_removeAndRename_remove_raises_ENOENTP  s    	( 	( 	(}}T]++%~::::UE***>"2333

r   c                     d }|                      | j                  }||_        d |_        |                     t
          |j        dd           |                                 d S )Nc                 4    t          t          j                  r+   r.   rM   EAGAINr   s    r   r   z]RotatingFileHandlerTests.test_removeAndRename_remove_raises_other_than_ENOENT.<locals>.remove]  r   r   c                     dS rv   r   r   s    r   r{   z_RotatingFileHandlerTests.test_removeAndRename_remove_raises_other_than_ENOENT.<locals>.<lambda>a  r   r   r   r   )r6   r'   r   r   rV   r.   r   rZ   )r   r   rR   s      r   4test_removeAndRename_remove_raises_other_than_ENOENTzMRotatingFileHandlerTests.test_removeAndRename_remove_raises_other_than_ENOENT\  sb    	( 	( 	(}}T]++%~'4#7FFF

r   c                     d }|                      | j                  }||_        d |_        |                     |                    dd          d            |                                 d S )Nc                 4    t          t          j                  r+   r   r   ds     r   renamezRRotatingFileHandlerTests.test_removeAndRename_rename_raises_ENOENT.<locals>.renamef  r   r   c                     dS r   r   r   s    r   r{   zTRotatingFileHandlerTests.test_removeAndRename_rename_raises_ENOENT.<locals>.<lambda>j  r   r   r   r   )r6   r'   r   r   rO   r   rZ   r   r   rR   s      r   )test_removeAndRename_rename_raises_ENOENTzBRotatingFileHandlerTests.test_removeAndRename_rename_raises_ENOENTe  sk    	( 	( 	(}}T]++&--eU;;TBBB

r   c                     d }|                      | j                  }||_        d |_        |                     t
          |j        dd           |                                 d S )Nc                 4    t          t          j                  r+   r   r   s     r   r   z]RotatingFileHandlerTests.test_removeAndRename_rename_raises_other_than_ENOENT.<locals>.renameo  r   r   c                     dS r   r   r   s    r   r{   z_RotatingFileHandlerTests.test_removeAndRename_rename_raises_other_than_ENOENT.<locals>.<lambda>s  r   r   r   r   )r6   r'   r   r   rV   r.   r   rZ   r  s      r   4test_removeAndRename_rename_raises_other_than_ENOENTzMRotatingFileHandlerTests.test_removeAndRename_rename_raises_other_than_ENOENTn  sb    	( 	( 	(}}T]++&'4#7FFF

r   c                     |                      | j                  }d|_        |                     |                                d            |                                 d S )Nr   )r6   r'   r   rO   
doRolloverrZ   )r   rR   s     r   !test_doRollover_maxbytes_lte_zeroz:RotatingFileHandlerTests.test_doRollover_maxbytes_lte_zerow  sM    }}T]++**D111

r   N)r   r   r   r2   r   r   r   r   r   r   r   r  r  r
  r   r   r   r   r      s        # # #  (2 (2 (2T? ? ?"
 
 

 
 

 
 
          r   r   c                   4    e Zd Zd Zd	dZd Zd Zd Zd ZdS )
BoundIOTestsc                     ddl m} |S )Nr   )BoundIO)rD   r  )r   r  s     r   r2   zBoundIOTests._getTargetClass  rE   r    c                 B    |                                  } |||          S r+   r1   )r   maxbytesbufr5   s       r   r6   zBoundIOTests._makeOne  s%    $$&&uXs###r   c                     |                      dd          }|                    d           |                     |j        d           d S )Nr      a   b)r6   writerO   r  r   ios     r   test_write_overflowz BoundIOTests.test_write_overflow  sB    ]]1d##
&&&&&r   c                     |                      dd          }|                     |                                d           d S )Nr   r  )r6   rO   getvaluer  s     r   test_getvaluezBoundIOTests.test_getvalue  s9    ]]1d##-----r   c                     |                      dd          }|                                 |                     |j        d           d S Nr   r  r   )r6   clearrO   r  r  s     r   
test_clearzBoundIOTests.test_clear  @    ]]1d##



%%%%%r   c                     |                      dd          }|                                 |                     |j        d           d S r  )r6   rZ   rO   r  r  s     r   r   zBoundIOTests.test_close  r!  r   N)r  )	r   r   r   r2   r6   r  r  r   r   r   r   r   r  r  ~  ss          $ $ $ $' ' '
. . .& & &
& & & & &r   r  c                   R    e Zd Zd ZddZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd ZdS )LoggerTestsc                     ddl m} |S )Nr   )Logger)rD   r&  )r   r&  s     r   r2   zLoggerTests._getTargetClass  s    ------r   Nc                 B    |                                  } |||          S r+   r1   )r   r8   handlersr5   s       r   r6   zLoggerTests._makeOne  s%    $$&&uUH%%%r   c                 ~   ddl m} t          |j                  }|                     |j        |f          }|                    d           |                     t          |j                  d           |j	        |_
        |                    d           |                     t          |j                  d           d S Nr   r<   hellor   )rD   r<   DummyHandlerBLATr6   blatherrO   lenrecordsTRACr8   r   r<   r   loggers       r   test_blatherzLoggerTests.test_blather  s    333333|011|07*==wW_--q111#(wW_--q11111r   c                 ~   ddl m} t          |j                  }|                     |j        |f          }|                    d           |                     t          |j                  d           |j	        |_
        |                    d           |                     t          |j                  d           d S r*  )rD   r<   r-  r2  r6   tracerO   r0  r1  DEBGr8   r3  s       r   
test_tracezLoggerTests.test_trace      333333|011|07*==WW_--q111#(WW_--q11111r   c                 ~   ddl m} t          |j                  }|                     |j        |f          }|                    d           |                     t          |j                  d           |j	        |_
        |                    d           |                     t          |j                  d           d S r*  )rD   r<   r-  r8  r6   debugrO   r0  r1  r=   r8   r3  s       r   
test_debugzLoggerTests.test_debug  r:  r   c                 ~   ddl m} t          |j                  }|                     |j        |f          }|                    d           |                     t          |j                  d           |j	        |_
        |                    d           |                     t          |j                  d           d S r*  )rD   r<   r-  r=   r6   inforO   r0  r1  WARNr8   r3  s       r   	test_infozLoggerTests.test_info      333333|011|07*==GW_--q111#(GW_--q11111r   c                 ~   ddl m} t          |j                  }|                     |j        |f          }|                    d           |                     t          |j                  d           |j	        |_
        |                    d           |                     t          |j                  d           d S r*  )rD   r<   r-  r@  r6   warnrO   r0  r1  ERROr8   r3  s       r   	test_warnzLoggerTests.test_warn  rB  r   c                 ~   ddl m} t          |j                  }|                     |j        |f          }|                    d           |                     t          |j                  d           |j	        |_
        |                    d           |                     t          |j                  d           d S r*  )rD   r<   r-  rE  r6   rI   rO   r0  r1  CRITr8   r3  s       r   
test_errorzLoggerTests.test_error  r:  r   c                     ddl m} t          |j                  }|                     |j        |f          }|                    d           |                     t          |j                  d           d S r*  )	rD   r<   r-  rH  r6   criticalrO   r0  r1  r3  s       r   test_criticalzLoggerTests.test_critical  st    333333|011|07*==   W_--q11111r   c                     ddl m} t          |j                  }|                     |j        |f          }|                                 |                     |j        d           d S )Nr   r+  T)rD   r<   r-  rH  r6   rZ   rO   rY   r3  s       r   r   zLoggerTests.test_close  sg    333333|011|07*==.....r   c                     ddl m} t          |j                  }|                     |j        |f          }|                     t          |j                   d S )Nr   r+  )rD   r<   r-  rH  r6   rV   NotImplementedErrorr  r3  s       r   r  zLoggerTests.test_getvalue  s[    333333|011|07*==-v?????r   )NN)r   r   r   r2   r6   r5  r9  r=  rA  rF  rI  rL  r   r  r   r   r   r$  r$    s          & & & &2 2 22 2 22 2 22 2 22 2 22 2 22 2 2/ / /@ @ @ @ @r   r$  c                        e Zd Z fdZ xZS )
MockSysLogc                     |d         }t           j        dk     r)t          |t                    r|                                  t          t          |           j        |i | d S )N)   r   )r   version_info
isinstancer   encodesuperrQ  __call__)r   argskwargsmessage	__class__s       r   rY  zMockSysLog.__call__  sc    r(f$$GW)E)E$ NN(j$($9&99999r   )r   r   r   rY  __classcell__)r]  s   @r   rQ  rQ    s8        : : : : : : : : :r   rQ  c                      e Zd Zd Zd Zd Zd Zd Z ej	        d e
                      d             Z ej	        d e
                      d             Z ej	        d e
                      d	             Zer' ej	        d e
                      d
             Zd ZdS  ej	        d e
                      d             Zd ZdS )SyslogHandlerTestsc                     d S r+   r   r(   s    r   r)   zSyslogHandlerTests.setUp      r   c                     d S r+   r   r(   s    r   r/   zSyslogHandlerTests.tearDown  rb  r   c                 4    t          d          j        j        S )Nzsupervisor.loggers)
__import__r   SyslogHandlerr(   s    r   r2   z"SyslogHandlerTests._getTargetClass  s    .//7EEr   c                 :     |                                              S r+   r1   r(   s    r   r6   zSyslogHandlerTests._makeOne  s    %t##%%'''r   c                      G d dt                     } |            }|                                 }g fd|_        |                    |           |                     dg           d S )Nc                       e Zd Zd ZdS )ASyslogHandlerTests.test_emit_record_asdict_raises.<locals>.Recordc                     t           r+   )	TypeErrorr(   s    r   asdictzHSyslogHandlerTests.test_emit_record_asdict_raises.<locals>.Record.asdict  s    r   N)r   r   r   rm  r   r   r   Recordrj    s#                 r   rn  c                  .                          d          S rv   rw   ry   s   r   r{   zCSyslogHandlerTests.test_emit_record_asdict_raises.<locals>.<lambda>  s    gnnT&:&: r   T)objectr6   r}   rl   rO   )r   rn  r>   r   rz   s       @r   test_emit_record_asdict_raisesz1SyslogHandlerTests.test_emit_record_asdict_raises  s    	  	  	  	  	 V 	  	  	  --//::::V4&)))))r   zsyslog.syslogc                 R   |                                  }|                     d          }|                    |           t          j                            d           |                     d          }|                    |           t          j                            d           d S )Nr   zhello!zhi!r6   r?   rl   syslogassert_called_withr   s      r   r   z*SyslogHandlerTests.test_emit_ascii_noerror  s    --//$$Y//V((222$$U++V((/////r   c                 V    |                                  }|                                 d S r+   )r6   rZ   r   s     r   r   zSyslogHandlerTests.test_close!  s     --//r   c                 V    |                                  }|                                 d S r+   )r6   r   r   s     r   r   zSyslogHandlerTests.test_reopen&  s%    --//r   c                     |                                  }t          d          }|                     |          }|                    |           t          j                            d           d S )N   fií   fiÃ­)r6   r   r?   rl   rt  ru  )r   r   inpr>   s       r   r   z,SyslogHandlerTests.test_emit_unicode_noerror,  s]    mmooGF##C((--FLL   M,,\:::::r   c                    |                                  }g fd}||_        |                     t          d                    }|                    |           |                     t          d          g           d S )Nc                 D    s                     |            t          d S r+   rx   rr   r9   calleds    r   fake_syslogzCSyslogHandlerTests.test_emit_unicode_witherror.<locals>.fake_syslog6  -     'MM#&&&&&' 'r   ry  rz  )r6   _syslogr?   r   rl   rO   r   r   r  r>   r  s       @r   test_emit_unicode_witherrorz.SyslogHandlerTests.test_emit_unicode_witherror3  s    mmooGF' ' ' ' ' *GO((6):):;;FLL   Vi&=&=%>?????r   c                     |                                  }|                     d          }|                    |           t          j                            d           d S )Nry  rs  r   s      r   r   z,SyslogHandlerTests.test_emit_unicode_noerror?  sP    mmooG((00FLL   M,,V44444r   c                     |                                  }g fd}||_        |                     d          }|                    |           |                     dg           d S )Nc                 D    s                     |            t          d S r+   r~  r  s    r   r  zCSyslogHandlerTests.test_emit_unicode_witherror.<locals>.fake_syslogH  r  r   ry  )r6   r  r?   rl   rO   r  s       @r   r  z.SyslogHandlerTests.test_emit_unicode_witherrorE  sz    mmooGF' ' ' ' ' *GO((00FLL   VfX.....r   N)r   r   r   r)   r/   r2   r6   rq  r   patchrQ  r   r   r   r   r   r  r   r   r   r`  r`    s           F F F( ( (	* 	* 	* TZ..0 0 /.0 TZ..  /. TZ..  /.  $/	OZZ\\	2	2	; 	; 
3	2	;
	@ 
	@ 
	@ 
	@ 
	@ 
OZZ\\	2	2	5 	5 
3	2	5

	/ 
	/ 
	/ 
	/ 
	/r   r`  c                   $    e Zd ZdZd Zd Zd ZdS )r-  Fc                 "    || _         g | _        d S r+   )r8   r1  )r   r8   s     r   __init__zDummyHandler.__init__S  s    
r   c                 :    | j                             |           d S r+   )r1  rx   )r   r>   s     r   rl   zDummyHandler.emitV  s    F#####r   c                     d| _         d S rv   )rY   r(   s    r   rZ   zDummyHandler.closeX  s    r   N)r   r   r   rZ   r  rl   r   r   r   r-  r-  Q  sF        E  $ $ $    r   r-  c                  T    t          j        t          j        t                             S r+   )unittestfindTestCasesr   modulesr   r   r   r   
test_suiter  [  s    !#+h"7888r   __main__r  )defaultTest)#rM   r   r  r!   r,   r$   rt  supervisor.compatr   r   r   r   supervisor.tests.baser   r   TestCaser
   r   rA   r   r%   r   StdoutTestsBaserp  r   r   r  r$  MockrQ  r`  r-  r  r   mainr   r   r   <module>r     s/    



    				  ! ! ! ! ! ! ' ' ' ' ' ' & & & & & & % % % % % % & & & & & & - - - - - -9 9 9 9 9" 9 9 9       0L. L. L. L. L.|X%6 L. L. L.\`. `. `. `. `.|X%6 `. `. `.D 7>>-   &OO O    /   K K K K K/ K K K\& & & & &8$ & & &8W@ W@ W@ W@ W@(# W@ W@ W@t: : : : : : : :Q/ Q/ Q/ Q/ Q/x'8 Q/ Q/ Q/f       9 9 9 zHMl++++++ r   