o
    þâfÂS  ã                   @   sz  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	„ d	ejƒZG d
d„ dƒZG dd„ deejƒZG dd„ deejƒZej d¡rmeZneZG dd„ deƒZG dd„ deƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ deejƒZG dd„ dƒZdd „ Z e!d!kr»ej"d d" dS dS )#é    N)ÚPY2)Ú	as_string)ÚStringIO)Úunicode)Úmock)ÚDummyStreamc                   @   ó   e Zd Zdd„ ZdS )Ú
LevelTestsc                 C   s0   ddl m} |j ¡ D ]
}|  | d¡¡ qd S )Nr   ©ÚloggersÚ_)Ú
supervisorr   ÚLOG_LEVELS_BY_NUMÚvaluesÚassertFalseÚ
startswith)Úselfr   Ú
level_name© r   úP/var/www/html/venv/lib/python3.10/site-packages/supervisor/tests/test_loggers.pyÚ.test_LOG_LEVELS_BY_NUM_doesnt_include_builtins   s   ÿz9LevelTests.test_LOG_LEVELS_BY_NUM_doesnt_include_builtinsN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r	      ó    r	   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚHandlerTestsc                 C   s    t  ¡ | _tj | jd¡| _d S )NÚthelog)ÚtempfileÚmkdtempÚbasedirÚosÚpathÚjoinÚfilename©r   r   r   r   ÚsetUp   s   
zHandlerTests.setUpc                 C   s(   z	t  | j¡ W d S  ty   Y d S w ©N)ÚshutilÚrmtreer   ÚOSErrorr$   r   r   r   ÚtearDown   s
   ÿzHandlerTests.tearDownc                 O   s   |   ¡ }||i |¤ŽS r&   ©Ú_getTargetClass)r   ÚargÚkwÚklassr   r   r   Ú_makeOne#   s   zHandlerTests._makeOnec                 C   s$   ddl m} |j|jj|d d}|S )Nr   r
   )ÚlevelÚmsgÚexc_info)r   r   Ú	LogRecordÚLevelsByNameÚINFO)r   r2   r   Úrecordr   r   r   Ú_makeLogRecord'   s   ýzHandlerTests._makeLogRecordN)r   r   r   r%   r*   r0   r8   r   r   r   r   r      s
    r   c                   @   ód   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚBareHandlerTestsc                 C   ó   ddl m} |S )Nr   )ÚHandler)Úsupervisor.loggersr<   )r   r<   r   r   r   r,   1   ó   z BareHandlerTests._getTargetClassc                 C   s0   t ttjƒd}| j|d}|  | ¡ d ¡ d S ©N©Úerror©Ústream)r   ÚIOErrorÚerrnoÚEPIPEr0   ÚassertEqualÚflush©r   rC   Úinstr   r   r   Ú,test_flush_stream_flush_raises_IOError_EPIPE5   s   z=BareHandlerTests.test_flush_stream_flush_raises_IOError_EPIPEc                 C   s.   t ttjƒd}| j|d}|  t|j¡ d S r?   )r   rD   rE   ÚEALREADYr0   ÚassertRaisesrH   rI   r   r   r   Ú0test_flush_stream_flush_raises_IOError_not_EPIPE:   s   zABareHandlerTests.test_flush_stream_flush_raises_IOError_not_EPIPEc                 C   s,   t ƒ }| j|d}d|_|  | ¡ d ¡ d S )NrB   T)r   r0   ÚclosedrG   ÚcloserI   r   r   r   Útest_close_already_closed?   s   z*BareHandlerTests.test_close_already_closedc                 C   óD   t dd}| j|d}|  | ¡ d ¡ |  |j¡ |  |jj¡ d S )Né2   ©ÚfilenorB   )r   r0   rG   rP   Ú
assertTruerO   rC   rI   r   r   r   Ú test_close_stream_fileno_above_3E   ó
   
z1BareHandlerTests.test_close_stream_fileno_above_3c                 C   rR   )Nr   rT   rB   )r   r0   rG   rP   r   rO   rC   rI   r   r   r   Ú test_close_stream_fileno_below_3L   rX   z1BareHandlerTests.test_close_stream_fileno_below_3c                 C   s*   t ƒ }| j|d}| ¡  |  |j¡ d S )NrB   )r   r0   rP   rV   rO   rI   r   r   r   Ú6test_close_stream_handles_fileno_unsupported_operationS   s   zGBareHandlerTests.test_close_stream_handles_fileno_unsupported_operationc                 C   s8   t ƒ }dd„ }||_| j|d}| ¡  |  |j¡ d S )Nc                   S   s   t ƒ ‚r&   )rD   r   r   r   r   Úraise_ioerror]   s   zPBareHandlerTests.test_close_stream_handles_fileno_ioerror.<locals>.raise_ioerrorrB   )r   rU   r0   rP   rV   rO   )r   rC   r[   rJ   r   r   r   Ú(test_close_stream_handles_fileno_ioerror[   s   z9BareHandlerTests.test_close_stream_handles_fileno_ioerrorc                 C   sF   t ƒ }| j|d}|  d¡}| |¡ |  |jd¡ |  |jd¡ d S )NrB   ó   fooT)r   r0   r8   ÚemitrG   ÚflushedÚwritten©r   rC   rJ   r7   r   r   r   Útest_emit_gardenpathd   s   

z%BareHandlerTests.test_emit_gardenpathc                 C   sJ   t td}| j|d}|  d¡}| |¡ |  |jd¡ |  |jd¡ d S )Nr@   rB   r]   T)r   ÚUnicodeErrorr0   r8   r^   rG   r_   r`   ra   r   r   r   Útest_emit_unicode_errorl   s   


z(BareHandlerTests.test_emit_unicode_errorc                    s\   t td}| j|d}g ‰ ‡ fdd„|_|  d¡}| |¡ |  |jd¡ |  |jd¡ d S )Nr@   rB   c                      ó
   ˆ   d¡S ©NT©Úappendr   ©Úhandledr   r   Ú<lambda>x   ó   
 z8BareHandlerTests.test_emit_other_error.<locals>.<lambda>r]   Fó    )	r   Ú
ValueErrorr0   ÚhandleErrorr8   r^   rG   r_   r`   ra   r   ri   r   Útest_emit_other_errort   s   


z&BareHandlerTests.test_emit_other_errorN)r   r   r   r,   rK   rN   rQ   rW   rY   rZ   r\   rb   rd   rp   r   r   r   r   r:   0   s    	r:   c                   @   sl   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚFileHandlerTestsc                 C   r;   )Nr   )ÚFileHandler)r=   rr   )r   rr   r   r   r   r,      r>   z FileHandlerTests._getTargetClassc                 C   s`   |   | j¡}|  tj | j¡| j¡ |  |jd¡ |  |j| j¡ |  |j	j
| j¡ | ¡  d S )NÚab)r0   r#   rV   r    r!   ÚexistsrG   ÚmodeÚbaseFilenamerC   ÚnamerP   ©r   Úhandlerr   r   r   Ú	test_ctorƒ   s   zFileHandlerTests.test_ctorc                 C   s:   |   | j¡}|j ¡  tƒ |_| ¡  |  |jjd¡ d S rf   )r0   r#   rC   rP   r   rG   rO   rx   r   r   r   Ú
test_close‹   s
   
zFileHandlerTests.test_closec                 C   sB   |   | j¡}|j ¡  ttƒ|_|  t|j¡ |  |jjd¡ d S ©NF)	r0   r#   rC   rP   r   r)   rM   rG   rO   rx   r   r   r   Útest_close_raises’   s
   

z"FileHandlerTests.test_close_raisesc                 C   sV   |   | j¡}|j ¡  tƒ }||_| ¡  |  |jd¡ |  |jj| j¡ | ¡  d S rf   )	r0   r#   rC   rP   r   ÚreopenrG   rO   rw   ©r   ry   rC   r   r   r   Útest_reopen™   s   
zFileHandlerTests.test_reopenc                 C   sV   |   | j¡}|j ¡  tƒ }||_tj | jdd¡|_	|  
t|j¡ |  |jd¡ d S )NÚnotthereza.logT)r0   r#   rC   rP   r   r    r!   r"   r   rv   rM   rD   r~   rG   rO   r   r   r   r   Útest_reopen_raises£   s   
z#FileHandlerTests.test_reopen_raisesc                 C   sH   |   | j¡}|  tj | j¡| j¡ | ¡  |  tj | j¡| j¡ d S r&   )r0   r#   rV   r    r!   rt   Úremover   rx   r   r   r   Útest_remove_exists¬   s   z#FileHandlerTests.test_remove_existsc                 C   sT   |   | j¡}t | j¡ |  tj | j¡| j¡ | ¡  |  tj | j¡| j¡ d S r&   )r0   r#   r    rƒ   r   r!   rt   rx   r   r   r   Útest_remove_doesntexist²   s
   z(FileHandlerTests.test_remove_doesntexistc                 C   sN   |   | j¡}t | j¡ t | j¡ |  tj | j¡| j¡ |  t	|j¡ d S r&   )
r0   r#   r    rƒ   ÚmkdirrV   r!   rt   rM   r)   rx   r   r   r   Útest_remove_raises¹   s
   z#FileHandlerTests.test_remove_raisesc                 C   ój   |   | j¡}|  d¡}| |¡ | ¡  t| jdƒ}|  | ¡ d¡ W d   ƒ d S 1 s.w   Y  d S )Nó   hello!Úrb©r0   r#   r8   r^   rP   ÚopenrG   Úread©r   ry   r7   Úfr   r   r   Útest_emit_ascii_noerrorÀ   ó   

"ÿz(FileHandlerTests.test_emit_ascii_noerrorc                 C   rˆ   )Ns   fiÃ­rŠ   r‹   rŽ   r   r   r   Útest_emit_unicode_noerrorÈ   r‘   z*FileHandlerTests.test_emit_unicode_noerrorc                 C   sv   |   | j¡}|j ¡  ttd|_|  d¡}ztj}tƒ }|t_| 	|¡ W |t_n|t_w |  
|j d¡|j¡ d S )Nr@   r‰   s   OSError
)r0   r#   rC   rP   r   r)   r8   ÚsysÚstderrr^   rV   r`   Úendswith)r   ry   r7   Ú
old_stderrÚdummy_stderrr   r   r   Útest_emit_errorÐ   s   

ÿz FileHandlerTests.test_emit_errorN)r   r   r   r,   rz   r{   r}   r€   r‚   r„   r…   r‡   r   r’   r˜   r   r   r   r   rq   ~   s    
	rq   ú/dev/stdoutc                   @   r   )ÚStdoutTestsc                 C   sH   |   d¡}|  |jdv |j¡ |  |jd¡ |  |jjd¡ | ¡  d S )Nr™   )Úwbrs   )r0   rV   ru   rG   rv   rC   rw   rP   rx   r   r   r   Útest_ctor_with_dev_stdoutç   s
   
z%StdoutTests.test_ctor_with_dev_stdoutN)r   r   r   rœ   r   r   r   r   rš   æ   r   rš   c                   @   r9   )ÚRotatingFileHandlerTestsc                 C   r;   )Nr   )ÚRotatingFileHandler)r=   rž   )r   rž   r   r   r   r,   ò   r>   z(RotatingFileHandlerTests._getTargetClassc                 C   sB   |   | j¡}|  |jd¡ |  |jd¡ |  |jd¡ | ¡  d S )Nrs   i    é
   )r0   r#   rG   ru   ÚmaxBytesÚbackupCountrP   rx   r   r   r   rz   ö   s
   z"RotatingFileHandlerTests.test_ctorc                 C   s€  | j | jddd}|  d¡}| |¡ |  tj | jd ¡¡ |  tj | jd ¡¡ | |¡ |  tj | jd ¡¡ |  tj | jd ¡¡ | |¡ |  tj | jd ¡¡ |  tj | jd ¡¡ | |¡ |  tj | jd ¡¡ |  tj | jd ¡¡ | |¡ |  tj | jd ¡¡ |  tj | jd ¡¡ | |¡ |  tj | jd ¡¡ |  tj | jd ¡¡ | |¡ | 	¡  |  tj | jd ¡¡ |  tj | jd ¡¡ t
| jdƒ}|  | ¡ d¡ W d   ƒ n1 söw   Y  t
| jd dƒ}|  | ¡ d¡ W d   ƒ n	1 sw   Y  t
| jd dƒ}|  | ¡ d¡ W d   ƒ d S 1 s9w   Y  d S )	NrŸ   é   ©r    r¡   ó   aaaaú.1z.2rŠ   s   aaaaaaaaaaaa)r0   r#   r8   r^   r   r    r!   rt   rV   rP   rŒ   rG   r   rŽ   r   r   r   Útest_emit_does_rolloverý   sB   







ÿÿ$ÿz0RotatingFileHandlerTests.test_emit_does_rolloverc                 C   s´   | j | jddd}|  d¡}| |¡ |  tj | j¡¡ |  tj | jd ¡¡ t 	| j¡ |  tj | j¡¡ | |¡ | 
¡  |  tj | j¡¡ |  tj | jd ¡¡ d S )Né   é   r£   r¤   r¥   )r0   r#   r8   r^   rV   r    r!   rt   r   ÚunlinkrP   ©r   ry   r7   r   r   r   Útest_current_logfile_removed'  s   


z5RotatingFileHandlerTests.test_current_logfile_removedc                    sl   |   | j¡}g ‰g ‰ ‡ fdd„|_dd„ |_‡fdd„|_| dd¡ |  ˆdg¡ |  ˆ g ¡ | ¡  d S )Nc                    ó
   ˆ   | ¡S r&   rg   ©Úv©Úremovesr   r   rk   <  rl   zZRotatingFileHandlerTests.test_removeAndRename_destination_does_not_exist.<locals>.<lambda>c                 S   ó   dS r|   r   r­   r   r   r   rk   =  ó    c                    ó   ˆ   | |f¡S r&   rg   ©ÚsÚt©Úrenamesr   r   rk   >  ó    ÚfooÚbar©rº   r»   ©r0   r#   Ú_removeÚ_existsÚ_renameÚremoveAndRenamerG   rP   ©r   rJ   r   ©r°   r¸   r   Ú/test_removeAndRename_destination_does_not_exist8  s   
zHRotatingFileHandlerTests.test_removeAndRename_destination_does_not_existc                    sn   |   | j¡}g ‰g ‰ ‡ fdd„|_dd„ |_‡fdd„|_| dd¡ |  ˆdg¡ |  ˆ dg¡ | ¡  d S )Nc                    r¬   r&   rg   r­   r¯   r   r   rk   H  rl   zRRotatingFileHandlerTests.test_removeAndRename_destination_exists.<locals>.<lambda>c                 S   r±   rf   r   r­   r   r   r   rk   I  r²   c                    r³   r&   rg   r´   r·   r   r   rk   J  r¹   rº   r»   r¼   r½   rÂ   r   rÃ   r   Ú'test_removeAndRename_destination_existsD  s   
z@RotatingFileHandlerTests.test_removeAndRename_destination_existsc                    s\   dd„ }|   | j¡}g ‰ ||_dd„ |_‡ fdd„|_| dd¡ |  ˆ dg¡ | ¡  d S )	Nc                 S   ó
   t tjƒ‚r&   ©r)   rE   ÚENOENT©Úfnr   r   r   rƒ   Q  ó   
zRRotatingFileHandlerTests.test_removeAndRename_remove_raises_ENOENT.<locals>.removec                 S   r±   rf   r   r­   r   r   r   rk   V  r²   zTRotatingFileHandlerTests.test_removeAndRename_remove_raises_ENOENT.<locals>.<lambda>c                    r³   r&   rg   r´   r·   r   r   rk   W  r¹   rº   r»   r¼   r½   ©r   rƒ   rJ   r   r·   r   Ú)test_removeAndRename_remove_raises_ENOENTP  s   
zBRotatingFileHandlerTests.test_removeAndRename_remove_raises_ENOENTc                 C   óB   dd„ }|   | j¡}||_dd„ |_|  t|jdd¡ | ¡  d S )Nc                 S   rÆ   r&   ©r)   rE   ÚEAGAINrÉ   r   r   r   rƒ   ]  rË   z]RotatingFileHandlerTests.test_removeAndRename_remove_raises_other_than_ENOENT.<locals>.removec                 S   r±   rf   r   r­   r   r   r   rk   a  r²   z_RotatingFileHandlerTests.test_removeAndRename_remove_raises_other_than_ENOENT.<locals>.<lambda>rº   r»   )r0   r#   r¾   r¿   rM   r)   rÁ   rP   rÌ   r   r   r   Ú4test_removeAndRename_remove_raises_other_than_ENOENT\  ó   
zMRotatingFileHandlerTests.test_removeAndRename_remove_raises_other_than_ENOENTc                 C   sD   dd„ }|   | j¡}||_dd„ |_|  | dd¡d ¡ | ¡  d S )Nc                 S   rÆ   r&   rÇ   ©rµ   Údr   r   r   Úrenamef  rË   zRRotatingFileHandlerTests.test_removeAndRename_rename_raises_ENOENT.<locals>.renamec                 S   r±   r|   r   r­   r   r   r   rk   j  r²   zTRotatingFileHandlerTests.test_removeAndRename_rename_raises_ENOENT.<locals>.<lambda>rº   r»   )r0   r#   rÀ   r¿   rG   rÁ   rP   ©r   rÕ   rJ   r   r   r   Ú)test_removeAndRename_rename_raises_ENOENTe  s   
zBRotatingFileHandlerTests.test_removeAndRename_rename_raises_ENOENTc                 C   rÎ   )Nc                 S   rÆ   r&   rÏ   rÓ   r   r   r   rÕ   o  rË   z]RotatingFileHandlerTests.test_removeAndRename_rename_raises_other_than_ENOENT.<locals>.renamec                 S   r±   r|   r   r­   r   r   r   rk   s  r²   z_RotatingFileHandlerTests.test_removeAndRename_rename_raises_other_than_ENOENT.<locals>.<lambda>rº   r»   )r0   r#   rÀ   r¿   rM   r)   rÁ   rP   rÖ   r   r   r   Ú4test_removeAndRename_rename_raises_other_than_ENOENTn  rÒ   zMRotatingFileHandlerTests.test_removeAndRename_rename_raises_other_than_ENOENTc                 C   s.   |   | j¡}d|_|  | ¡ d ¡ | ¡  d S )Nr   )r0   r#   r    rG   Ú
doRolloverrP   rÂ   r   r   r   Ú!test_doRollover_maxbytes_lte_zerow  s   z:RotatingFileHandlerTests.test_doRollover_maxbytes_lte_zeroN)r   r   r   r,   rz   r¦   r«   rÄ   rÅ   rÍ   rÑ   r×   rØ   rÚ   r   r   r   r   r   ð   s    *			r   c                   @   s>   e Zd Zdd„ Zddd„Zdd„ Zdd	„ Zd
d„ Zdd„ ZdS )ÚBoundIOTestsc                 C   r;   )Nr   )ÚBoundIO)r=   rÜ   )r   rÜ   r   r   r   r,     r>   zBoundIOTests._getTargetClassÚ c                 C   ó   |   ¡ }|||ƒS r&   r+   )r   ÚmaxbytesÚbufr/   r   r   r   r0   ƒ  ó   
zBoundIOTests._makeOnec                 C   s(   |   dd¡}| d¡ |  |jd¡ d S )Nr¨   ó   aó   b)r0   ÚwriterG   rà   ©r   Úior   r   r   Útest_write_overflow‡  s   
z BoundIOTests.test_write_overflowc                 C   s    |   dd¡}|  | ¡ d¡ d S )Nr¨   râ   )r0   rG   Úgetvaluerå   r   r   r   Útest_getvalueŒ  s   zBoundIOTests.test_getvaluec                 C   ó&   |   dd¡}| ¡  |  |jd¡ d S ©Nr¨   râ   rm   )r0   ÚclearrG   rà   rå   r   r   r   Ú
test_clear  ó   zBoundIOTests.test_clearc                 C   rê   rë   )r0   rP   rG   rà   rå   r   r   r   r{   •  rî   zBoundIOTests.test_closeN)rÝ   )	r   r   r   r,   r0   rç   ré   rí   r{   r   r   r   r   rÛ   ~  s    
rÛ   c                   @   sf   e Zd Zdd„ Zddd„Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚLoggerTestsc                 C   r;   )Nr   )ÚLogger)r=   rð   )r   rð   r   r   r   r,   ›  r>   zLoggerTests._getTargetClassNc                 C   rÞ   r&   r+   )r   r1   Úhandlersr/   r   r   r   r0   Ÿ  rá   zLoggerTests._makeOnec                 C   ój   ddl m} t|jƒ}|  |j|f¡}| d¡ |  t|jƒd¡ |j	|_
| d¡ |  t|jƒd¡ d S ©Nr   ©r5   Úhellor¨   )r=   r5   ÚDummyHandlerÚBLATr0   ÚblatherrG   ÚlenÚrecordsÚTRACr1   ©r   r5   ry   Úloggerr   r   r   Útest_blather£  ó   


zLoggerTests.test_blatherc                 C   rò   ró   )r=   r5   rö   rû   r0   ÚtracerG   rù   rú   ÚDEBGr1   rü   r   r   r   Ú
test_trace­  rÿ   zLoggerTests.test_tracec                 C   rò   ró   )r=   r5   rö   r  r0   ÚdebugrG   rù   rú   r6   r1   rü   r   r   r   Ú
test_debug·  rÿ   zLoggerTests.test_debugc                 C   rò   ró   )r=   r5   rö   r6   r0   ÚinforG   rù   rú   ÚWARNr1   rü   r   r   r   Ú	test_infoÁ  rÿ   zLoggerTests.test_infoc                 C   rò   ró   )r=   r5   rö   r  r0   ÚwarnrG   rù   rú   ÚERROr1   rü   r   r   r   Ú	test_warnË  rÿ   zLoggerTests.test_warnc                 C   rò   ró   )r=   r5   rö   r	  r0   rA   rG   rù   rú   ÚCRITr1   rü   r   r   r   Ú
test_errorÕ  rÿ   zLoggerTests.test_errorc                 C   sF   ddl m} t|jƒ}|  |j|f¡}| d¡ |  t|jƒd¡ d S ró   )	r=   r5   rö   r  r0   ÚcriticalrG   rù   rú   rü   r   r   r   Útest_criticalß  s
   

zLoggerTests.test_criticalc                 C   s@   ddl m} t|jƒ}|  |j|f¡}| ¡  |  |jd¡ d S )Nr   rô   T)r=   r5   rö   r  r0   rP   rG   rO   rü   r   r   r   r{   æ  s
   
zLoggerTests.test_closec                 C   s8   ddl m} t|jƒ}|  |j|f¡}|  t|j¡ d S )Nr   rô   )r=   r5   rö   r  r0   rM   ÚNotImplementedErrorrè   rü   r   r   r   ré   í  s   
zLoggerTests.test_getvalue)NN)r   r   r   r,   r0   rþ   r  r  r  r
  r  r  r{   ré   r   r   r   r   rï   š  s    






rï   c                       s   e Zd Z‡ fdd„Z‡  ZS )Ú
MockSysLogc                    s>   |d }t jdk rt|tƒr| ¡  tt| ƒj|i |¤Ž d S )Néÿÿÿÿ)é   r   )r“   Úversion_infoÚ
isinstancer   ÚencodeÚsuperr  Ú__call__)r   ÚargsÚkwargsÚmessage©Ú	__class__r   r   r  õ  s   zMockSysLog.__call__)r   r   r   r  Ú__classcell__r   r   r  r   r  ô  s    r  c                   @   sº   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Ze 	de
ƒ ¡dd„ ƒZe 	de
ƒ ¡dd„ ƒZe 	de
ƒ ¡dd„ ƒZerLe 	de
ƒ ¡dd„ ƒZdd„ ZdS e 	de
ƒ ¡dd„ ƒZdd„ ZdS )ÚSyslogHandlerTestsc                 C   ó   d S r&   r   r$   r   r   r   r%   ÿ  ó   zSyslogHandlerTests.setUpc                 C   r  r&   r   r$   r   r   r   r*     r   zSyslogHandlerTests.tearDownc                 C   s   t dƒjjS )Nzsupervisor.loggers)Ú
__import__r   ÚSyslogHandlerr$   r   r   r   r,     s   z"SyslogHandlerTests._getTargetClassc                 C   s
   |   ¡ ƒ S r&   r+   r$   r   r   r   r0     rË   zSyslogHandlerTests._makeOnec                    sL   G dd„ dt ƒ}|ƒ }|  ¡ }g ‰ ‡ fdd„|_| |¡ |  ˆ dg¡ d S )Nc                   @   r   )zASyslogHandlerTests.test_emit_record_asdict_raises.<locals>.Recordc                 S   s   t ‚r&   )Ú	TypeErrorr$   r   r   r   Úasdict  r   zHSyslogHandlerTests.test_emit_record_asdict_raises.<locals>.Record.asdictN)r   r   r   r$  r   r   r   r   ÚRecord  r   r%  c                      re   rf   rg   r   ri   r   r   rk     rl   zCSyslogHandlerTests.test_emit_record_asdict_raises.<locals>.<lambda>T)Úobjectr0   ro   r^   rG   )r   r%  r7   ry   r   ri   r   Útest_emit_record_asdict_raises  s   
z1SyslogHandlerTests.test_emit_record_asdict_raiseszsyslog.syslogc                 C   sL   |   ¡ }|  d¡}| |¡ tj d¡ |  d¡}| |¡ tj d¡ d S )Nr‰   zhello!zhi!©r0   r8   r^   ÚsyslogÚassert_called_withrª   r   r   r   r     s   



z*SyslogHandlerTests.test_emit_ascii_noerrorc                 C   ó   |   ¡ }| ¡  d S r&   )r0   rP   rx   r   r   r   r{   !  ó   zSyslogHandlerTests.test_closec                 C   r+  r&   )r0   r~   rx   r   r   r   r€   &  r,  zSyslogHandlerTests.test_reopenc                 C   s4   |   ¡ }tdƒ}|  |¡}| |¡ tj d¡ d S )Nõ   fiÃ­õ   fiÃƒÂ­)r0   r   r8   r^   r)  r*  )r   ry   Úinpr7   r   r   r   r’   ,  s
   

z,SyslogHandlerTests.test_emit_unicode_noerrorc                    sL   |   ¡ }g ‰ ‡ fdd„}||_|  tdƒ¡}| |¡ |  ˆ tdƒg¡ d S )Nc                    ó   ˆ s	ˆ   | ¡ t‚d S r&   ©rh   rc   ©r2   ©Úcalledr   r   Úfake_syslog6  ó   
þúCSyslogHandlerTests.test_emit_unicode_witherror.<locals>.fake_syslogr-  r.  )r0   Ú_syslogr8   r   r^   rG   ©r   ry   r5  r7   r   r3  r   Útest_emit_unicode_witherror3  s   
z.SyslogHandlerTests.test_emit_unicode_witherrorc                 C   s,   |   ¡ }|  d¡}| |¡ tj d¡ d S )Nr-  r(  rª   r   r   r   r’   ?  s   

c                    sD   |   ¡ }g ‰ ‡ fdd„}||_|  d¡}| |¡ |  ˆ dg¡ d S )Nc                    r0  r&   r1  r2  r3  r   r   r5  H  r6  r7  r-  )r0   r8  r8   r^   rG   r9  r   r3  r   r:  E  s   

N)r   r   r   r%   r*   r,   r0   r'  r   Úpatchr  r   r{   r€   r   r’   r:  r   r   r   r   r  þ  s&    
	



r  c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	rö   Fc                 C   s   || _ g | _d S r&   )r1   rú   )r   r1   r   r   r   Ú__init__S  s   
zDummyHandler.__init__c                 C   s   | j  |¡ d S r&   )rú   rh   )r   r7   r   r   r   r^   V  ó   zDummyHandler.emitc                 C   s
   d| _ d S rf   )rO   r$   r   r   r   rP   X  rË   zDummyHandler.closeN)r   r   r   rP   r<  r^   r   r   r   r   rö   Q  s
    rö   c                   C   s   t  tjt ¡S r&   )ÚunittestÚfindTestCasesr“   Úmodulesr   r   r   r   r   Ú
test_suite[  r=  rA  Ú__main__)ÚdefaultTest)#rE   r“   r>  r   r'   r    r)  Úsupervisor.compatr   r   r   r   Úsupervisor.tests.baser   r   ÚTestCaser	   r   r:   rq   r!   rt   ÚStdoutTestsBaser&  rš   r   rÛ   rï   ÚMockr  r  rö   rA  r   Úmainr   r   r   r   Ú<module>   s@   Nb
 Z
S
ÿ