
    vg                     \   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e j                  Z G d de j                  Z G d de j                  Z G d de j                  Zd Zedk    r e j        d           dS dS )    N)as_bytes)DummyOptions)DummyProcess)DummyPConfig)DummyLogger)
DummyEventc                   :    e Zd Zd Zd Zd ZddZd Zd	 Zd
 Z	dS )PDispatcherTestsc                 &    ddl m}  |             d S Nr   )clearsupervisor.eventsr   selfr   s     ^/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/supervisor/tests/test_dispatchers.pysetUpzPDispatcherTests.setUp   #    ++++++    c                 &    ddl m}  |             d S r   r   r   s     r   tearDownzPDispatcherTests.tearDown   r   r   c                     ddl m} |S )Nr   )PDispatcher)supervisor.dispatchersr   )r   r   s     r   _getTargetClassz PDispatcherTests._getTargetClass   s    666666r   Nstdoutr   c                 @     |                                  |||          S Nr   )r   processchannelfds       r   _makeOnezPDispatcherTests._makeOne   s"    %t##%%gw;;;r   c                 n    |                                  }|                     t          |j                   d S r   )r#   assertRaisesNotImplementedErrorreadabler   insts     r   test_readablezPDispatcherTests.test_readable   .    }}-t}=====r   c                 n    |                                  }|                     t          |j                   d S r   )r#   r%   r&   writabler(   s     r   test_writablezPDispatcherTests.test_writable!   r+   r   c                 ~    |                                  }|                     |                                d            d S r   )r#   assertEqualflushr(   s     r   
test_flushzPDispatcherTests.test_flush%   s3    }}t,,,,,r   Nr   r   )
__name__
__module____qualname__r   r   r   r#   r*   r.   r2    r   r   r
   r
      s              < < < <> > >> > >- - - - -r   r
   c                       e Zd Zd 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 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 Zd Zd Z d  Z!d! Z"d" Z#d# Z$d$S )&POutputDispatcherTestsc                 &    ddl m}  |             d S r   r   r   s     r   r   zPOutputDispatcherTests.setUp*   r   r   c                 &    ddl m}  |             d S r   r   r   s     r   r   zPOutputDispatcherTests.tearDown.   r   r   c                     ddl m} |S )Nr   )POutputDispatcher)r   r=   )r   r=   s     r   r   z&POutputDispatcherTests._getTargetClass2   s    <<<<<<  r   r   c                 v    ddl m} |j        |j        d} |                                 |||         d          S )Nr   events)r   stderr)
supervisorr@   ProcessCommunicationStdoutEventProcessCommunicationStderrEventr   )r   r    r!   r@   s       r   r#   zPOutputDispatcherTests._makeOne6   sT    %%%%%%"B"BD D &t##%%gvgBBBr   c                     t                      }t          |dd          }t          |          }|                     |          }|                     |                                d           d S Nprocess1/bin/process1Fr   r   r   r#   r0   r-   r   optionsconfigr    
dispatchers        r   r.   z$POutputDispatcherTests.test_writable=   b    ..gz?CCv&&]]7++
,,..66666r   c                     t                      }t          |dd          }t          |          }|                     |          }d|_        |                     |                                d           d S NrG   rH   FTr   r   r   r#   closedr0   r'   rJ   s        r   test_readable_openz)POutputDispatcherTests.test_readable_openD   j    ..gz?CCv&&]]7++
!
,,..55555r   c                     t                      }t          |dd          }t          |          }|                     |          }d|_        |                     |                                d           d S NrG   rH   TFrQ   rJ   s        r   test_readable_closedz+POutputDispatcherTests.test_readable_closedL   j    ..gz?CCv&&]]7++
 
,,..66666r   c                     t                      }t          |dd          }t          |          }|                     |          }|                     t
          |j                   d S NrG   rH   r   r   r   r#   r%   r&   handle_write_eventrJ   s        r   test_handle_write_eventz.POutputDispatcherTests.test_handle_write_eventT   Z    ..gz?CCv&&]]7++
-z/LMMMMMr   c                 $   t                      }d|_        t          |ddd          }t          |          }|                     |          }|                     |                                d            |                     |j        d           d S )N   abcrG   rH   d   stdout_capture_maxbytes)r   readfd_resultr   r   r#   r0   handle_read_eventoutput_bufferrJ   s        r   test_handle_read_eventz-POutputDispatcherTests.test_handle_read_event[   s    .. &gz?69; ; ;v&&]]7++
5577>>>16:::::r   c                    t                      }d|_        t          |ddd          }t          |          }|                     |          }|                     |j                   |                     |                                d            |                     |j	        d           | 
                    |j                   d S )Nr   rG   rH   ra   rb   )r   rd   r   r   r#   assertFalserR   r0   re   rf   
assertTruerJ   s        r   %test_handle_read_event_no_data_closesz<POutputDispatcherTests.test_handle_read_event_no_data_closese   s    .. #gz?69; ; ;v&&]]7++
*+++5577>>>13777
)*****r   c                 X   t                      }t          |dd          }t          |          }|                     |          }	 t	          d          #  |                                 Y nxY w|j        j        d         }|                     |	                    d          |           d S Ntest/testfoor   z,uncaptured python exception, closing channel
r   r   r   r#   
ValueErrorhandle_errorloggerdatarj   
startswithr   rK   rL   r    rM   results         r   test_handle_errorz(POutputDispatcherTests.test_handle_errorq       ..gvw77v&&]]7++
	&U###	&##%%%%%$Q')):< <<B	D 	D 	D 	D 	D   A A,c                 D   t                      }t          |dddd          }t          |          }d|_        |                     |          }d|_        d |j        _        g fd	}d
dlm	} |
                    |j        j        |           |                                 |                     t                    d           d
         }|                     |j        |           |                     |j        d           |                     |j        d           d S )NrG   rH   /tmp/fooi  stdout_logfilerc   i  Tc                      dS )Nhallooor7   r7   r   r   <lambda>zLPOutputDispatcherTests.test_toggle_capturemode_sends_event.<locals>.<lambda>   s     r   c                 2                         |            d S r   appendeventLs    r   doitzHPOutputDispatcherTests.test_toggle_capturemode_sends_event.<locals>.doit       HHUOOOOOr   r   r?      r   )r   r   r   pidr#   capturemode
captureloggetvaluerB   r@   	subscribe
EventTypesPROCESS_COMMUNICATIONtoggle_capturemoder0   lenr    ru   	r   rK   rL   r    rM   r   r@   r   r   s	           @r   #test_toggle_capturemode_sends_eventz:POutputDispatcherTests.test_toggle_capturemode_sends_event~   s:   ..gz?-769; ; ; v&&]]7++
!%
):):
&	 	 	 	 	%%%%%%*@$GGG%%'''Q###!000D)))Y/////r   c                    t                      }t          |ddd          }t          |          }|                     |          }|                                 |                     |j        j        d         j        d           |                     |j        j        d         j	        d           |                     |j
        j        d         j        d           |                     |j
        j        d         j	        d           d S NrG   rH   r}   r   r   T)r   r   r   r#   
removelogsr0   	normalloghandlersreopenedremovedchildlogrJ   s        r   test_removelogsz&POutputDispatcherTests.test_removelogs   s    ..gz?-79 9 9v&&]]7++
-6q9BDIII-6q9A4HHH,5a8A4HHH,5a8@$GGGGGr   c                 d   t                      }t          |ddd          }t          |          }|                     |          }|                                 |                     |j        j        d         j        d           |                     |j	        j        d         j        d           d S r   )
r   r   r   r#   
reopenlogsr0   r   r   r   r   rJ   s        r   test_reopenlogsz&POutputDispatcherTests.test_reopenlogs   s    ..gz?-79 9 9v&&]]7++
,5a8A4HHH-6q9BDIIIIIr   c                    t                      }ddlm} |j        j        |_        t          |ddd          }t          |          }|                     |          }d|_	        |
                                 |                     |j        j        dg           |                     |j        j        d         d           |                     |j	        d	           d S )
Nr   loggersrG   rH   r}   r   az'process1' stdout output:
ar   r   rB   r   LevelsByNameTRACloglevelr   r   r#   rf   record_outputr0   r   ru   rt   r   rK   r   rL   r    rM   s         r   &test_record_output_log_non_capturemodez=POutputDispatcherTests.test_record_output_log_non_capturemode   s     ..&&&&&&"/4gz?-79 9 9v&&]]7++
#&
   """,1C5999,Q/+	- 	- 	-1377777r   c                    t                      }t          |ddd          }t          |          }|                     |d          }d|_        g fd}dd	lm} |                    |j        j	        |           |
                                 |                     t                    d
           d         }|                     |j        |           |                     |j        d           d S )NrG   rH   Tstdout_events_enabledr      hello from stdoutc                 2                         |            d S r   r   r   s    r   r   zWPOutputDispatcherTests.test_record_output_emits_stdout_event_when_enabled.<locals>.doit   r   r   r   r?   r   )r   r   r   r#   rf   rB   r@   r   r   PROCESS_LOG_STDOUTr   r0   r   r    ru   r   s	           @r   2test_record_output_emits_stdout_event_when_enabledzIPOutputDispatcherTests.test_record_output_emits_stdout_event_when_enabled      ..gz?48: : :v&&]]7H55
#7
 	 	 	 	 	%%%%%%*=tDDD  """Q###!000%9:::::r   c                 j   t                      }t          |ddd          }t          |          }|                     |d          }d|_        g fd}dd	lm} |                    |j        j	        |           |
                                 |                     t                    d           d S )
NrG   rH   Fr   r   r   c                 2                         |            d S r   r   r   s    r   r   z`POutputDispatcherTests.test_record_output_does_not_emit_stdout_event_when_disabled.<locals>.doit   r   r   r   r?   )r   r   r   r#   rf   rB   r@   r   r   r   r   r0   r   r   rK   rL   r    rM   r   r@   r   s          @r   ;test_record_output_does_not_emit_stdout_event_when_disabledzRPOutputDispatcherTests.test_record_output_does_not_emit_stdout_event_when_disabled       ..gz?49; ; ;v&&]]7H55
#7
 	 	 	 	 	%%%%%%*=tDDD  """Q#####r   c                    t                      }t          |ddd          }t          |          }|                     |d          }d|_        g fd}dd	lm} |                    |j        j	        |           |
                                 |                     t                    d
           d         }|                     |j        |           |                     |j        d           d S )NrG   rH   Tstderr_events_enabledrA      hello from stderrc                 2                         |            d S r   r   r   s    r   r   zWPOutputDispatcherTests.test_record_output_emits_stderr_event_when_enabled.<locals>.doit   r   r   r   r?   r   )r   r   r   r#   rf   rB   r@   r   r   PROCESS_LOG_STDERRr   r0   r   r    ru   r   s	           @r   2test_record_output_emits_stderr_event_when_enabledzIPOutputDispatcherTests.test_record_output_emits_stderr_event_when_enabled   r   r   c                 j   t                      }t          |ddd          }t          |          }|                     |d          }d|_        g fd}dd	lm} |                    |j        j	        |           |
                                 |                     t                    d           d S )
NrG   rH   Fr   rA   r   c                 2                         |            d S r   r   r   s    r   r   z`POutputDispatcherTests.test_record_output_does_not_emit_stderr_event_when_disabled.<locals>.doit   r   r   r   r?   )r   r   r   r#   rf   rB   r@   r   r   r   r   r0   r   r   s          @r   ;test_record_output_does_not_emit_stderr_event_when_disabledzRPOutputDispatcherTests.test_record_output_does_not_emit_stderr_event_when_disabled   r   r   c                    t                      }ddlm} |j        j        |_        t          |dddd          }t          |          }|                     |          }d|_	        |
                                 |                     |j        j        dg           |                     |j        j        d         d	           d S )
Nr   r   rG   rH   r}   ra   r~   s!   stdout string longer than a tokenz;'process1' stdout output:
stdout string longer than a tokenr   r   s         r   7test_record_output_capturemode_string_longer_than_tokenzNPOutputDispatcherTests.test_record_output_capturemode_string_longer_than_token  s     ..&&&&&&"/4gz?-769; ; ; v&&]]7++
#G
   """,1>?	A 	A 	A,Q/K	M 	M 	M 	M 	Mr   c                 >   t                      }t          |dddd          }t          |          }|                     |          }d|_        |                                 |                     |j        j        g            |                     |j        d           d S )NrG   rH   r}   ra   r~   r   )	r   r   r   r#   rf   r   r0   r   ru   rJ   s        r   ;test_record_output_capturemode_string_not_longer_than_tokenzRPOutputDispatcherTests.test_record_output_capturemode_string_not_longer_than_token  s     ..gz?-769; ; ; v&&]]7++
#&
   """,126661377777r   c                    ddl m} ddl m} g fd} |||           |j        }|j        }|dz   |z   }t                      }ddlm} ||_        d}	t          |dd	|	d
          }
t          |
          }| 
                    |          }	 ||_        |                                 |                     t          j                            |	          d           |                     t#          |j                  d           |                     t#                    d           d         }ddl m} |                     |j        |           |                     |j        |           |                     |j        d           |                     |j        d           	 |j                                         |j                                         t          j        |	           d S # t6          t8          f$ r Y d S w xY w# 	 |j                                         |j                                         t          j        |	           w # t6          t8          f$ r Y w w xY wxY w)Nr   ProcessCommunicationEventr   c                 2                         |            d S r   r   r   r@   s    r   r   zJPOutputDispatcherTests.test_stdout_capturemode_single_buffer.<locals>.doit-      MM%     r   s   hello	getLogger/tmp/logrG   rH   i  r~   r   rC   r   )r   r   r   BEGIN_TOKEN	END_TOKENr   supervisor.loggersr   r   r   r#   rf   r   r0   ospathgetsizer   rC   	__class__r    r!   ru   r   closer   removeOSErrorIOError)r   r   r   r   r   r   ru   rK   r   logfilerL   r    rM   r   rC   r@   s                  @r   %test_stdout_capturemode_single_bufferz<POutputDispatcherTests.test_stdout_capturemode_single_buffer'  s    	@?????//////	! 	! 	! 	! 	!	+T222/;-7	X%	1..000000%gz?-46:< < < v&&]]7++
	'+J$$$&&&RW__W55q999S!9::A>>>S[[!,,,1IEIIIIIIU_.MNNNU]G444U]H555UZ222%++---#))+++	'"""""W%   	%++---#))+++	'""""W%   sE   DH !AG) )G>=G>I!AI
	I!
II!II!c                 	   ddl m} ddl m} g fd} |||           dd l}t	          t          |d|j                            }t	          |j                  dz  }|j        }|j	        }||z   |z   |z   |z   }	d}
|	
                    |
          }|d         |
z   }|d         |
z   }|d	         }t                      }dd
lm} ||_        d}t          |dd|d          }t          |          }|                     |          }	 ||_        |                                 d |j        j        D              t+          |d          5 }|                     |                                |           d d d            n# 1 swxY w Y   |                     |j        |t1          |          d                     |                     t1                    d           |xj        |z  c_        |                                 |                     t1                    d           d |j        j        D              t+          |d          5 }|                     |                                |           d d d            n# 1 swxY w Y   |                     |j        |t1          |          d                     |                     t1                    d           |xj        |z  c_        |                                 d |j        j        D              t+          |d          5 }|                     |                                |d	z             d d d            n# 1 swxY w Y   |                     t1                    d           d         }ddl m} |                     |j        |           |                     |j        |           |                     |j        d           |                     |j        |           	 |j                                         |j                                         tA          j!        |           d S # tD          tF          f$ r Y d S w xY w# 	 |j                                         |j                                         tA          j!        |           w # tD          tF          f$ r Y w w xY wxY w)Nr   r   r   c                 2                         |            d S r   r   r   s    r   r   zMPOutputDispatcherTests.test_stdout_capturemode_multiple_buffers.<locals>.doitW  r   r   letters      :r      r   r   rG   rH   i'  r~   c                 6    g | ]}|                                 S r7   r1   .0xs     r   
<listcomp>zSPOutputDispatcherTests.test_stdout_capturemode_multiple_buffers.<locals>.<listcomp>u       ???Aaggii???r   rbc                 6    g | ]}|                                 S r7   r   r   s     r   r   zSPOutputDispatcherTests.test_stdout_capturemode_multiple_buffers.<locals>.<listcomp>~  r   r   c                 6    g | ]}|                                 S r7   r   r   s     r   r   zSPOutputDispatcherTests.test_stdout_capturemode_multiple_buffers.<locals>.<listcomp>  r   r   r   r   )$r   r   r   stringr   getattrascii_lettersdigitsr   r   splitr   r   r   r   r   r#   rf   r   r   r   openr0   readr   rC   r   r    r!   ru   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   ru   colonbrokenfirstsecondthirdrK   r   r   rL   r    rM   fr   rC   r@   s                           @r   (test_stdout_capturemode_multiple_buffersz?POutputDispatcherTests.test_stdout_capturemode_multiple_buffersS  s   ??????//////	! 	! 	! 	! 	!	+T222769f6JKKLL&-((1,/;-7	;&/);gE E""q	E!U"q	..000000%gz?-46;= = = v&&]]7++
%	',J$$$&&&??!4!=????gt$$ 4  73334 4 4 4 4 4 4 4 4 4 4 4 4 4 4Z5uS\\]]7KLLLS[[!,,,$$.$$$$&&&S[[!,,,??!4!=????gt$$ 4  73334 4 4 4 4 4 4 4 4 4 4 4 4 4 4Z5uS\\]]7KLLLS[[!,,,$$-$$$$&&&??!4!=????gt$$ 8  7Q;7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8S[[!,,,1IEIIIIIIU_.MNNNU]G444U]H555UZ000%++---#))+++	'"""""W%   	%++---#))+++	'""""W%   s   AQ% )E<0Q% <F  Q% F CQ% )I<0Q% <J  Q% J B Q% $,MQ% M  Q% #M $B Q% AQ Q"!Q"%S'AR.-S.S?SSSc                 l   t                      }d|_        t          |ddd          }t          |          }|                     |          }d}d}||_        |                                 |                     t          |j	        j
                  d           |                     |j	        j
        d	         |           d
|_        ||_        |                                 |                     t          |j	        j
                  d           |                     |j	        j
        d         |           d S NTrG   rH   r}   r   4   [34mHello world... this is longer than a token![0m+   Hello world... this is longer than a token!r   r   Fr   )r   
strip_ansir   r   r#   rf   r   r0   r   r   ru   r   rK   rL   r    rM   ansinoansis          r   test_strip_ansiz&POutputDispatcherTests.test_strip_ansi  s$   ..!gz?-79 9 9v&&]]7++
L?#'
   """Z0566:::,1!4f==="#'
   """Z0566:::,1!4d;;;;;r   c                    t                      }t          |dd          }t          |          }|                     |          }|                     |j        |           |                     |j        d           |                     |j        d           |                     |j        d            |                     |j	        d            |                     |j
        d            d S NrG   rH   r   r   )r   r   r   r#   r0   r    r!   r"   r   r   r   rJ   s        r   test_ctor_no_logfilesz,POutputDispatcherTests.test_ctor_no_logfiles  s    ..gz?CCv&&]]7++
+W555+X666***.555-t444,d33333r   c                    t                      }t          |ddd          }t          |          }|                     |          }|                     |j        |           |                     |j        d           |                     |j        d           |                     |j        d            |                     |j	        j
        t                     |                     |j        |j	                   d S NrG   rH   r}   r   r   r   )r   r   r   r#   r0   r    r!   r"   r   r   r   r   r   rJ   s        r   test_ctor_logfile_onlyz-POutputDispatcherTests.test_ctor_logfile_only  s    ..gz?-79 9 9v&&]]7++
+W555+X666***.555-7EEE,j.BCCCCCr   c                    t                      }t          |ddd          }t          |          }|                     |          }|                     |j        |           |                     |j        d           |                     |j        d           |                     |j        j	        t                     |                     |j        d            |                     |j        d            d S )NrG   rH   i,  rb   r   r   )r   r   r   r#   r0   r    r!   r"   r   r   r   r   r   rJ   s        r   test_ctor_capturelog_onlyz0POutputDispatcherTests.test_ctor_capturelog_only  s    ..gz?69; ; ;v&&]]7++
+W555+X666***.8+FFF-t444,d33333r   c                    ddl m} t                      }t          |dd |d                    }t	          |          }|                     |          }|                     |j        |           |                     |j        d           |                     |j	        d           |                     |j
        d            d S )Nr   )logfile_namerG   rH    r   r   )supervisor.datatypesr  r   r   r   r#   r0   r    r!   r"   r   )r   r  rK   rL   r    rM   s         r   (test_ctor_stdout_logfile_is_empty_stringz?POutputDispatcherTests.test_ctor_stdout_logfile_is_empty_string  s    555555..gz?-9\"-=-=? ? ?v&&]]7++
+W555+X666***-t44444r   c           	         ddl m}m} t                      }t	          |dd |d           |d                    }t          |          }|                     |          }|                     |j        |           |                     |j	        d           |                     |j
        d           |                     |j        d            d S )	Nr   booleanr  rG   rH   NONEfalser   stdout_syslogr   )r  r  r  r   r   r   r#   r0   r    r!   r"   r   )r   r  r  rK   rL   r    rM   s          r   5test_ctor_stdout_logfile_none_and_stdout_syslog_falsezLPOutputDispatcherTests.test_ctor_stdout_logfile_none_and_stdout_syslog_false  s    >>>>>>>>..gz?-9\&-A-A,3GG,<,<> > > v&&]]7++
+W555+X666***-t44444r   c           	      D   ddl m}m} ddlm}m} ddlm}  |            }|j        |_	        t          |dd |d           |d          	          }t          |          }|                     |          }	|                     |	j        |           |                     |	j        d
           |                     |	j        d           |                     t#          |	j        j                  d           |                     |	j        j        d         j        |           d S )Nr   r  )r   SyslogHandlerServerOptionsrG   rH   r  truer  r   r   )r  r  r  r   r   r  supervisor.optionsr!  r   r   r   r   r#   r0   r    r!   r"   r   r   r   r   )
r   r  r  r   r  r!  rK   rL   r    rM   s
             r   4test_ctor_stdout_logfile_none_and_stdout_syslog_truezKPOutputDispatcherTests.test_ctor_stdout_logfile_none_and_stdout_syslog_true  sO   >>>>>>>>BBBBBBBB444444-//',gz?-9\&-A-A,3GFOO= = = v&&]]7++
+W555+X666***Z1:;;Q???-6q9C	 	 	 	 	r   c           	      v   ddl m}m} ddlm}m} ddlm}  |            }|j        |_	        t          |dd |d           |d          	          }t          |          }|                     |          }	|                     |	j        |           |                     |	j        d
           |                     |	j        d           |                     t#          |	j        j                  d           |                     |	j        j        d         j        |           |	j                                         d S )Nr   r  )FileHandlerr   r   rG   rH   r}   r  r  r   r   )r  r  r  r   r&  r   r#  r!  r   r   r   r   r#   r0   r    r!   r"   r   r   r   r   r   )
r   r  r  r&  r   r!  rK   rL   r    rM   s
             r   4test_ctor_stdout_logfile_str_and_stdout_syslog_falsezKPOutputDispatcherTests.test_ctor_stdout_logfile_str_and_stdout_syslog_false   s[   >>>>>>>>@@@@@@@@444444-//',gz?-9\*-E-E,3GG,<,<> > > v&&]]7++
+W555+X666***Z1:;;Q???-6q9C[QQQ""$$$$$r   c           	        	
 ddl m}m} ddlm	m}m
 ddlm}  |            }|j	        |_
        t          |dd |d           |d          	          }t          |          }|                     |          }|                     |j        |           |                     |j        d
           |                     |j        d           |                     t%          |j        j                  d           |                     t-          	fd|j        j        D                                  |                     t-          
fd|j        j        D                                  |j                                         d S )Nr   r  )r&  r   r  r   rG   rH   r}   r"  r  r   r   c              3   8   K   | ]}t          |          V  d S r   
isinstance)r   hr&  s     r   	<genexpr>z]POutputDispatcherTests.test_ctor_stdout_logfile_str_and_stdout_syslog_true.<locals>.<genexpr>!  s=       + +1Jq+66 + + + + + +r   c              3   8   K   | ]}t          |          V  d S r   r*  )r   r,  r  s     r   r-  z]POutputDispatcherTests.test_ctor_stdout_logfile_str_and_stdout_syslog_true.<locals>.<genexpr>#  s=       + +QJq-88 + + + + + +r   )r  r  r  r   r&  r   r  r#  r!  r   r   r   r   r#   r0   r    r!   r"   r   r   r   rj   anyr   )r   r  r  r   r!  rK   rL   r    rM   r&  r  s            @@r   3test_ctor_stdout_logfile_str_and_stdout_syslog_truezJPOutputDispatcherTests.test_ctor_stdout_logfile_str_and_stdout_syslog_true  s   >>>>>>>>OOOOOOOOOO444444-//',gz?-9\*-E-E,3GFOO= = = v&&]]7++
+W555+X666***Z1:;;Q??? + + + + )+ + + + + 	, 	, 	, + + + + )+ + + + + 	, 	, 	,""$$$$$r   c                 |   t                      }t          |dd          }t          |          }|                     |          }t	          |          }|                     d|v            |                     |                    d          d           |                     |                    d          |           d S )NrG   rH   r=   "supervisor.tests.base.DummyProcess	(stdout)>	r   r   r   r#   reprrj   assertNotEqualfindendswithr   rK   rL   r    rM   dreprs         r   	test_reprz POutputDispatcherTests.test_repr'  s    ..gz?CCv&&]]7++
Z  +u4555JJ;<<	 	 	 	{33U;;;;;r   c                 H   t                      }t          |dd          }t          |          }|                     |          }|                                 |                     |j        d           |                                 |                     |j        d           d S NrG   rH   Tr   r   r   r#   r   r0   rR   rJ   s        r   
test_closez!POutputDispatcherTests.test_close3      ..gz?CCv&&]]7++
*D111*D11111r   N)r   )%r4   r5   r6   r   r   r   r#   r.   rS   rW   r]   rg   rk   ry   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r$  r'  r0  r<  r@  r7   r   r   r9   r9   )   s2           ! ! !C C C C7 7 76 6 67 7 7N N N; ; ;
+ 
+ 
+D D D0 0 0,
H 
H 
HJ J J8 8 8"; ; ;($ $ $"; ; ;($ $ $"M M M&8 8 8* * *XD D DL< < <,
4 
4 
4D D D4 4 4
5 
5 
55 5 5  $% % %$% % %*
< 
< 
<2 2 2 2 2r   r9   c                   n    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 Zd Zd Zd ZdS )PInputDispatcherTestsc                     ddl m} |S )Nr   )PInputDispatcher)r   rE  )r   rE  s     r   r   z%PInputDispatcherTests._getTargetClass?  s    ;;;;;;r   c                 D    d} |                                  ||d          S )Nstdinr   r   r   r    r!   s      r   r#   zPInputDispatcherTests._makeOneC  s'    %t##%%gw:::r   c                     t          d           }|                     |          }d|_        d|_        |                     |                                d           d S )Nr   FTr   r#   input_bufferrR   r0   r-   r   r    rM   s      r   test_writable_open_nodataz/PInputDispatcherTests.test_writable_open_nodataG  sX    t$$]]7++
"%
!
,,..55555r   c                     t          d           }|                     |          }d|_        d|_        |                     |                                d           d S )Nr  FrJ  rL  s      r   test_writable_open_withdataz1PInputDispatcherTests.test_writable_open_withdataN  sX    t$$]]7++
"$
!
,,..66666r   c                     t          d           }|                     |          }d|_        d|_        |                     |                                d           d S )Nr   TFrJ  rL  s      r   test_writable_closed_nodataz1PInputDispatcherTests.test_writable_closed_nodataU  sX    t$$]]7++
"%
 
,,..66666r   c                     t          d           }|                     |          }d|_        d|_        |                     |                                d           d S )Nr  TFrJ  rL  s      r   test_writable_closed_withdataz3PInputDispatcherTests.test_writable_closed_withdata\  sX    t$$]]7++
"$
 
,,..66666r   c                     t          d           }|                     |          }|                     |                                d           d S )NF)r   r#   r0   r'   rL  s      r   r*   z#PInputDispatcherTests.test_readablec  sH    t$$]]7++
,,..66666r   c                 ,   t                      }t          |dd          }t          |          }|                     |          }d|_        |                     |                                d            |                     |j        d         d           d S )NrG   rH   halloooor   )r   r   r   r#   rK  r0   r\   writtenrJ   s        r   r]   z-PInputDispatcherTests.test_handle_write_eventh  s    ..gz?CCv&&]]7++
",
6688$???+Z88888r   c                 V   t                      }t          |dd          }t          |          }|                     |          }|                     |j        d           |                                 |                     |j        d           |                     |j        i            d S )Nrn   ro   r   )r   r   r   r#   r0   rK  r\   rW  rJ   s        r   test_handle_write_event_nodataz4PInputDispatcherTests.test_handle_write_event_nodataq  s    ..gvw77v&&]]7++
0#666%%'''0#666"-----r   c                 B   t                      }t          |dd          }t          |          }|                     |          }d|_        dd l}t          |j        t          j	        |j                            |_
        |                                 |                     |j        d           |                     |j        j        d                             d                     |                     |j        j        d                             d                     d S )Nrn   ro   rV  r   r   zfd 0 closed, stopped monitoring(stdin)>)r   r   r   r#   rK  errnor   EPIPEr   strerrorwrite_exceptionr\   r0   rj   rt   ru   rv   r9  r   rK   rL   r    rM   r\  s         r   $test_handle_write_event_epipe_raisedz:PInputDispatcherTests.test_handle_write_event_epipe_raised{  s   ..gvw77v&&]]7++
",
")%+*,+ek*B*B#D #D%%'''0#666+A.99-/ / 	0 	0 	0+A.77
CCDDDDDr   c                 D   t                      }t          |dd          }t          |          }|                     |          }d|_        dd l}t          |j        t          j	        |j                            |_
        |                     t          |j                   d S )Nrn   ro   rV  r   )r   r   r   r#   rK  r\  r   EBADFr   r^  r_  r%   r\   r`  s         r   'test_handle_write_event_uncaught_raisedz=PInputDispatcherTests.test_handle_write_event_uncaught_raised  s    ..gvw77v&&]]7++
",
")%+*,+ek*B*B#D #D':#@AAAAAr   c                 b   t                      }t          |dd          }t          |          }|                     |          }d|_        d|_        |                                 |                     t          |j                  d           |                     |j	        d         d           d S )Nrn   ro   r   2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1   r   r   )
r   r   r   r#   write_acceptrK  r\   r0   r   rW  rJ   s        r   %test_handle_write_event_over_os_limitz;PInputDispatcherTests.test_handle_write_event_over_os_limit  s    ..gvw77v&&]]7++
 "*
%%'''Z455r:::+S11111r   c                     t          d           }|                     |          }|                     t          |j                   d S r   )r   r#   r%   r&   re   rL  s      r   rg   z,PInputDispatcherTests.test_handle_read_event  s@    t$$]]7++
-z/KLLLLLr   c                 X   t                      }t          |dd          }t          |          }|                     |          }	 t	          d          #  |                                 Y nxY w|j        j        d         }|                     |	                    d          |           d S rm   rq   rw   s         r   ry   z'PInputDispatcherTests.test_handle_error  rz   r{   c                 |   t                      }t          |dd          }t          |          }|                     |          }t	          |          }|                     d|v            |                     |                    d          d           |                     |                    d          |           d S )NrG   rH   rE  r2  r3  r[  r5  r:  s         r   r<  zPInputDispatcherTests.test_repr  s    ..gz?CCv&&]]7++
Z  *e3444JJ;<<	 	 	 	z22E:::::r   c                 H   t                      }t          |dd          }t          |          }|                     |          }|                                 |                     |j        d           |                                 |                     |j        d           d S r>  r?  rJ   s        r   r@  z PInputDispatcherTests.test_close  rA  r   N)r4   r5   r6   r   r#   rM  rO  rQ  rS  r*   r]   rY  ra  rd  ri  rg   ry   r<  r@  r7   r   r   rC  rC  >  s            ; ; ;6 6 67 7 77 7 77 7 77 7 7
9 9 9. . .E E E	B 	B 	B	2 	2 	2M M M
D D D
; 
; 
;2 2 2 2 2r   rC  c                       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 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 Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d#S )$PEventListenerDispatcherTestsc                 &    ddl m}  |             d S r   r   r   s     r   r   z#PEventListenerDispatcherTests.setUp  r   r   c                 &    ddl m}  |             d S r   r   r   s     r   r   z&PEventListenerDispatcherTests.tearDown  r   r   c                     ddl m} |S )Nr   )PEventListenerDispatcher)r   rs  )r   rs  s     r   r   z-PEventListenerDispatcherTests._getTargetClass  s    CCCCCC''r   c                 D    d} |                                  ||d          S r3   r   rH  s      r   r#   z&PEventListenerDispatcherTests._makeOne  s'    %t##%%gw:::r   c                     t                      }t          |dd          }t          |          }|                     |          }|                     |                                d           d S rF   rI   rJ   s        r   r.   z+PEventListenerDispatcherTests.test_writable  rN   r   c                     t                      }t          |dd          }t          |          }|                     |          }d|_        |                     |                                d           d S rP   rQ   rJ   s        r   rS   z0PEventListenerDispatcherTests.test_readable_open  rT   r   c                     t                      }t          |dd          }t          |          }|                     |          }d|_        |                     |                                d           d S rV   rQ   rJ   s        r   rW   z2PEventListenerDispatcherTests.test_readable_closed  rX   r   c                     t                      }t          |dd          }t          |          }|                     |          }|                     t
          |j                   d S rZ   r[   rJ   s        r   r]   z5PEventListenerDispatcherTests.test_handle_write_event  r^   r   c                 B   t                      }t          |ddd          }t          |          }ddlm} |j        |_        |                     |          }|j        |_	        | 
                    |                                d            | 
                    |j        |j                   | 
                    |j        d           | 
                    t          |j        j                  d           | 
                    |j        j        d         |j                   d S )	NrG   rH   r}   r   r   EventListenerStatesr   r   )r   r   r   r   r{  ACKNOWLEDGEDlistener_stater#   READY_FOR_EVENTS_TOKENrd   r0   re   READYstate_bufferr   r   ru   r   rK   rL   r    r{  rM   s         r   9test_handle_read_event_calls_handle_listener_state_changezWPEventListenerDispatcherTests.test_handle_read_event_calls_handle_listener_state_change  s   ..gz?-79 9 9v&&>>>>>>!4!A]]7++
 * A5577>>>/1D1JKKK0#666Z0566:::,1!4#:	< 	< 	< 	< 	<r   c                 v   t                      }d|_        t          |dd          }t          |          }|                     |          }|                     |                                d            |                     |j        d           ddlm	} |                     |j
        j        |j                   d S )Nr  rG   rH   r   r   rz  )r   rd   r   r   r#   r0   re   r  r   r{  r    r}  r|  )r   rK   rL   r    rM   r{  s         r   test_handle_read_event_nodataz;PEventListenerDispatcherTests.test_handle_read_event_nodata  s    .. "gz?CCv&&]]7++
5577>>>0#666>>>>>>+:,9	; 	; 	; 	; 	;r   c                     t                      }d|_        t          |dd          }t          |          }|                     |          }|                     |                                d            |                     |j        d            d S )N"   supercalifragilisticexpialidociousrG   rH   )r   rd   r   r   r#   r0   re   r   rJ   s        r   %test_handle_read_event_logging_nologszCPEventListenerDispatcherTests.test_handle_read_event_logging_nologs  s    .. Egz?CCv&&]]7++
 	5577>>>,d33333r   c                    t                      }d|_        t          |ddd          }t          |          }|                     |          }|                     |                                d            |                     t          |j        j	                  d           |                     |j        j	        d         d           d S )Nr  rG   rH   r}   r   r   r   )
r   rd   r   r   r#   r0   re   r   r   ru   rJ   s        r   'test_handle_read_event_logging_childlogzEPEventListenerDispatcherTests.test_handle_read_event_logging_childlog  s    .. Egz?-79 9 9v&&]]7++
5577>>>Z0566:::,1!4>	@ 	@ 	@ 	@ 	@r   c                    t                      }t          |dd          }t          |          }ddlm} |                     |          }|j        |_        d|_        | 	                    |
                                d            | 	                    |j        d           | 	                    |j        j        g            | 	                    |j        |j                   d S )NrG   rH   r   rz  s   whateverr   )r   r   r   r   r{  r#   UNKNOWNr}  r  r0   handle_listener_state_changert   ru   r  s         r   .test_handle_listener_state_change_from_unknownzLPEventListenerDispatcherTests.test_handle_listener_state_change_from_unknown*  s    ..gz?CCv&&>>>>>>]]7++
!4!<"-
@@BBDIII0#666,b111/1D1LMMMMMr   c                    t                      }t          |dd          }t          |          }ddlm} |                     |          }|j        |_        d|_        | 	                    |
                                d            | 	                    |j        d           | 	                    |j        j        d         d           | 	                    |j        |j                   d S )NrG   rH   r   rz  s   READY
r   process1: ACKNOWLEDGED -> READY)r   r   r   r   r{  r#   r|  r}  r  r0   r  rt   ru   r  r  s         r   7test_handle_listener_state_change_acknowledged_to_readyzUPEventListenerDispatcherTests.test_handle_listener_state_change_acknowledged_to_ready7  s    ..gz?CCv&&>>>>>>]]7++
!4!A",
@@BBDIII0#666,Q/:	< 	< 	</1D1JKKKKKr   c                    t                      }t          |dd          }t          |          }ddlm} |                     |          }|j        |_        d|_        | 	                    |
                                d            | 	                    |j        d           | 	                    |j        j        d         d           | 	                    |j        j        d         d	           | 	                    |j        |j                   d S )
NrG   rH   r   rz  s   READY
garbage
r   r  r   process1: READY -> UNKNOWNr   r   r   r   r{  r#   r|  r}  r  r0   r  rt   ru   r  r  s         r   6test_handle_listener_state_change_acknowledged_gobbleszTPEventListenerDispatcherTests.test_handle_listener_state_change_acknowledged_gobblesE  s   ..gz?CCv&&>>>>>>]]7++
!4!A"5
@@BBDIII0#666,Q/:	< 	< 	<,Q/5	7 	7 	7/1D1LMMMMMr   c                    t                      }t          |dd          }t          |          }ddlm} |                     |          }|j        |_        d|_        | 	                    |
                                d            | 	                    |j        d           | 	                    |j        j        g            | 	                    |j        |j                   d S )NrG   rH   r   rz  s   RE)r   r   r   r   r{  r#   r|  r}  r  r0   r  rt   ru   r  s         r   >test_handle_listener_state_change_acknowledged_to_insufficientz\PEventListenerDispatcherTests.test_handle_listener_state_change_acknowledged_to_insufficientU  s    ..gz?CCv&&>>>>>>]]7++
!4!A"'
@@BBDIII0%888,b111/,9	; 	; 	; 	; 	;r   c                    t                      }t          |dd          }t          |          }ddlm} |                     |          }|j        |_        d|_        | 	                    |
                                d            | 	                    |j        d           | 	                    |j        j        d         d           | 	                    |j        j        d         d	           | 	                    |j        |j                   d S )
NrG   rH   r   rz     bogus data yor   !process1: ACKNOWLEDGED -> UNKNOWNr   process1: has entered the UNKNOWN state and will no longer receive events, this usually indicates the process violated the eventlistener protocolr  r  s         r   9test_handle_listener_state_change_acknowledged_to_unknownzWPEventListenerDispatcherTests.test_handle_listener_state_change_acknowledged_to_unknownc  s   ..gz?CCv&&>>>>>>]]7++
!4!A"2
@@BBDIII0#666,Q/<	> 	> 	>,Q/K	L 	L 	L 	/1D1LMMMMMr   c                    t                      }t          |dd          }t          |          }ddlm} |                     |          }|j        |_        d|_        | 	                    |
                                d            | 	                    |j        d           | 	                    |j        j        d         d           | 	                    |j        j        d         d	           | 	                    |j        |j                   d S )
NrG   rH   r   rz  r  r   r  r   r  )r   r   r   r   r{  r#   r  r}  r  r0   r  rt   ru   r  r  s         r   2test_handle_listener_state_change_ready_to_unknownzPPEventListenerDispatcherTests.test_handle_listener_state_change_ready_to_unknownu  s   ..gz?CCv&&>>>>>>]]7++
!4!:"2
@@BBDIII0#666,Q/5	7 	7 	7,Q/K	L 	L 	L 	/1D1LMMMMMr   c                    t                      }t          |dd          }t          |          }ddlm} |                     |          }|j        |_        d|_        | 	                    |
                                d            | 	                    |j        d           | 	                    |j        |j                   d S )NrG   rH   r   rz  r  )r   r   r   r   r{  r#   BUSYr}  r  r0   r  r  s         r   6test_handle_listener_state_change_busy_to_insufficientzTPEventListenerDispatcherTests.test_handle_listener_state_change_busy_to_insufficient  s    ..gz?CCv&&>>>>>>]]7++
!4!9"2
@@BBDIII02BCCC/1D1IJJJJJr   c                    t                      }t          |dd          }t          |          }ddlm} |                     |          }|j        |_         G d d          } |            |_         |            |j        _	        ddlm
} ||j        j	        _        d|_        |                     |                                d            |                     |j        d	           |                     |j        j        d         d
           |                     |j        j        d         d           |                     |j        |j                   d S )NrG   rH   r   rz  c                       e Zd ZdS )iPEventListenerDispatcherTests.test_handle_listener_state_change_busy_to_acknowledged_procd.<locals>.DummyNr4   r5   r6   r7   r   r   Dummyr            Dr   r  default_handlers   RESULT 2
OKabcr`   process1: event was processedr   process1: BUSY -> ACKNOWLEDGEDr   r   r   r   r{  r#   r  r}  grouprL   r  result_handlerr  r0   r  rt   ru   r|  r   rK   rL   r    r{  rM   r  r  s           r   <test_handle_listener_state_change_busy_to_acknowledged_procdzZPEventListenerDispatcherTests.test_handle_listener_state_change_busy_to_acknowledged_procd  sy   ..gz?CCv&&>>>>>>]]7++
!4!9	 	 	 	 	 	 	 	$uww::::::.=+"4
@@BBDIII0&999,Q/8	: 	: 	:,Q/9	; 	; 	;/,9	; 	; 	; 	; 	;r   c                    t                      }t          |dd          }t          |          }ddlm} |                     |          }|j        |_         G d d          } |            |_         |            |j        _	        ddlm
} ||j        j	        _        d|_        |                     |                                d            |                     |j        d	           |                     |j        j        d         d
           |                     |j        j        d         d           |                     |j        |j                   d S )NrG   rH   r   rz  c                       e Zd ZdS )lPEventListenerDispatcherTests.test_handle_listener_state_change_busy_to_acknowledged_rejected.<locals>.DummyNr  r7   r   r   r  r    r  r   r  r  s   RESULT 4
FAILabcr`   process1: event was rejectedr   r  r  r  s           r   ?test_handle_listener_state_change_busy_to_acknowledged_rejectedz]PEventListenerDispatcherTests.test_handle_listener_state_change_busy_to_acknowledged_rejected  sy   ..gz?CCv&&>>>>>>]]7++
!4!9	 	 	 	 	 	 	 	$uww::::::.=+"6
@@BBDIII0&999,Q/7	9 	9 	9,Q/9	; 	; 	;/,9	; 	; 	; 	; 	;r   c                 V  
 ddl m} ddl m} g 

fd} |||           t                      }t	          |dd          }t          |          }ddlm} |                     |          }|j	        |_
        t                      }	|	|_        d|_        |                     |                                d            |                     |j        d	           |                     |j        j        d         d
           |                     |j        j        d         d           |                     |j        j        d         d           |                     |j
        |j                   |                     
d         j        |           |                     
d         j        |	           d S )Nr   )EventRejectedEventr   c                 2                         |            d S r   r   r   s    r   r   z]PEventListenerDispatcherTests.test_handle_listener_state_change_busy_to_unknown.<locals>.doit  r   r   rG   rH   rz  s   bogus data
r   z'process1: bad result line: 'bogus data'r   process1: BUSY -> UNKNOWNr   r  )r   r  r   r   r   r   r   r{  r#   r  r}  r   r   r  r0   r  rt   ru   r  r    )r   r  r   r   rK   rL   r    r{  rM   current_eventr@   s             @r   1test_handle_listener_state_change_busy_to_unknownzOPEventListenerDispatcherTests.test_handle_listener_state_change_busy_to_unknown  s   888888//////	! 	! 	! 	! 	!	$d+++..gz?CCv&&>>>>>>]]7++
!4!9"%"1
@@BBDIII0#666,Q/9	; 	; 	;,Q/+	- 	- 	-,Q/K	L 	L 	L 	/,4	6 	6 	6*G444-88888r   c                 B   t                      }t          |dd          }t          |          }ddlm} |                     |          }|j        |_         G d d          } |            |_         |            |j        _	        ddlm
} ||j        j	        _        d|_        |                     |                                d            |                     |j        d	           |                     |j        j        d         d
           |                     |j        j        d         d           |                     |j        j        d         d           |                     |j        j        d         d           |                     |j        |j                   d S )NrG   rH   r   rz  c                       e Zd ZdS )TPEventListenerDispatcherTests.test_handle_listener_state_busy_gobbles.<locals>.DummyNr  r7   r   r   r  r    r  r   r  r  s   RESULT 2
OKbogus data
r   r  r   r  r   r     r  )r   r   r   r   r{  r#   r  r}  r  rL   r  r  r  r0   r  rt   ru   r  r  s           r   'test_handle_listener_state_busy_gobbleszEPEventListenerDispatcherTests.test_handle_listener_state_busy_gobbles  s   ..gz?CCv&&>>>>>>]]7++
!4!9	 	 	 	 	 	 	 	$uww::::::.=+"=
@@BBDIII0#666,Q/8	: 	: 	:,Q/9	; 	; 	;,Q/<	> 	> 	>,Q/K	L 	L 	L 	/,4	6 	6 	6 	6 	6r   c                    ddl m} t                      }t          |dd          }t	          |          }g fd}ddlm}  ||j        |           ddlm	} | 
                    |          }d }	 G d	 d
          }
 |
            |_         |
            |j        _        |	|j        j        _        |j        |_        |                    d           |                     t%                    d           |                     |j        |j                   |                     |j        j        d         d           |                     |j        j        d         d           d S )Nr   r   rG   rH   c                 2                         |            d S r   r   r   s    r   r   zEPEventListenerDispatcherTests.test_handle_result_accept.<locals>.doit  r   r   r?   rz  c                     d S r   r7   r   rx   s     r   handlezGPEventListenerDispatcherTests.test_handle_result_accept.<locals>.handle	  s    Dr   c                       e Zd ZdS )FPEventListenerDispatcherTests.test_handle_result_accept.<locals>.DummyNr  r7   r   r   r  r    r  r   r  rp   r  r   r  )r   r   r   r   r   rB   r@   r  r   r{  r#   r  rL   r  r  r}  handle_resultr0   r   r|  rt   ru   )r   r   rK   rL   r    r   r@   r{  rM   r  r  r   s              @r   test_handle_result_acceptz7PEventListenerDispatcherTests.test_handle_result_accept  s   //////..gz?CCv&&	 	 	 	 	%%%%%%	&+T222>>>>>>]]7++
	 	 		 	 	 	 	 	 	 	$uww.4+!4!9  '''Q###/,9	; 	; 	;,Q/8	: 	: 	:,Q/9	; 	; 	; 	; 	;r   c                    ddl m} t                      }t          |dd          }t	          |          }g fd}ddlm}  ||j        |           ddlm	} | 
                    |          }d }	 G d	 d
          }
 |
            |_         |
            |j        _        |	|j        j        _        |j        |_        |                    d           |                     t%                    d           |                     d         j        |j                   |                     |j        |j                   |                     |j        j        d         d           |                     |j        j        d         d           d S )Nr   r   rG   rH   c                 2                         |            d S r   r   r   s    r   r   zJPEventListenerDispatcherTests.test_handle_result_rejectevent.<locals>.doit   r   r   r?   rz  c                 $    ddl m}  ||          )Nr   )RejectEvent)r   r  )r   rx   r  s      r   rejectedzNPEventListenerDispatcherTests.test_handle_result_rejectevent.<locals>.rejected&  s$    ::::::+f%%%r   c                       e Zd ZdS )KPEventListenerDispatcherTests.test_handle_result_rejectevent.<locals>.DummyNr  r7   r   r   r  r  )  r  r   r  rp   r   r  r  )r   r   r   r   r   rB   r@   r  r   r{  r#   r  rL   r  r  r}  r  r0   r   r   r|  rt   ru   )r   r   rK   rL   r    r   r@   r{  rM   r  r  r   s              @r   test_handle_result_rejecteventz<PEventListenerDispatcherTests.test_handle_result_rejectevent  s   //////..gz?CCv&&	 	 	 	 	%%%%%%	&+T222>>>>>>]]7++
	& 	& 	&	 	 	 	 	 	 	 	$uww.6+!4!9  '''Q###1)BCCC/,9	; 	; 	;,Q/7	9 	9 	9,Q/9	; 	; 	; 	; 	;r   c                 z   ddl m} t                      }t          |dd          }t	          |          }g fd}ddlm}  ||j        |           ddlm	} | 
                    |          }d }	 G d	 d
          }
 |
            |_         |
            |j        _        |	|j        j        _        |	|j        _        |j        |_        |                    d           |                     t%                    d           |                     d         j        |j                   |                     |j        |j                   |                     |j        j        d         d           |                     |j        j        d         d           |                     |j        j        d         d           d S )Nr   r   rG   rH   c                 2                         |            d S r   r   r   s    r   r   zHPEventListenerDispatcherTests.test_handle_result_exception.<locals>.doit?  r   r   r?   rz  c                     t           r   )rr   r  s     r   	exceptionzMPEventListenerDispatcherTests.test_handle_result_exception.<locals>.exceptionE  s    r   c                       e Zd ZdS )IPEventListenerDispatcherTests.test_handle_result_exception.<locals>.DummyNr  r7   r   r   r  r  G  r  r   r  rp   r   zprocess1: event caused an errorr  r   r  )r   r   r   r   r   rB   r@   r  r   r{  r#   r  rL   r  r  r}  r  r0   r   r   r  rt   ru   )r   r   rK   rL   r    r   r@   r{  rM   r  r  r   s              @r   test_handle_result_exceptionz:PEventListenerDispatcherTests.test_handle_result_exception9  s   //////..gz?CCv&&	 	 	 	 	%%%%%%	&+T222>>>>>>]]7++
	 	 		 	 	 	 	 	 	 	$uww.7+'0$!4!9  '''Q###1)BCCC/,4	6 	6 	6,Q/:	< 	< 	<,Q/4	6 	6 	6,Q/K	L 	L 	L 	L 	Lr   c                 X   t                      }t          |dd          }t          |          }|                     |          }	 t	          d          #  |                                 Y nxY w|j        j        d         }|                     |	                    d          |           d S rm   rq   rw   s         r   ry   z/PEventListenerDispatcherTests.test_handle_error\  rz   r{   c                 d   t                      }t          |ddd          }t          |          }|                     |          }|                                 |                     |j        j        d         j        d           |                     |j        j        d         j	        d           d S r   )
r   r   r   r#   r   r0   r   r   r   r   rJ   s        r   r   z-PEventListenerDispatcherTests.test_removelogsi  s    ..gz?-79 9 9v&&]]7++
,5a8A4HHH,5a8@$GGGGGr   c                    t                      }t          |ddd          }t          |          }|                     |          }|                                 |                     |j        j        d         j        d           d S r   )	r   r   r   r#   r   r0   r   r   r   rJ   s        r   r   z-PEventListenerDispatcherTests.test_reopenlogss  s    ..gz?-79 9 9v&&]]7++
,5a8A4HHHHHr   c                 l   t                      }d|_        t          |ddd          }t          |          }|                     |          }d}d}||_        |                                 |                     t          |j	        j
                  d           |                     |j	        j
        d	         |           d
|_        ||_        |                                 |                     t          |j	        j
                  d           |                     |j	        j
        d         |           d S r  )r   r  r   r   r#   rd   re   r0   r   r   ru   r  s          r   r  z-PEventListenerDispatcherTests.test_strip_ansi|  s$   ..!gz?-79 9 9v&&]]7++
L? $$$&&&Z0566:::,1!4f===" $$$&&&Z0566:::,1!4d;;;;;r   c                 d   t                      }t          |dd          }t          |          }|                     |          }|                     |j        |           |                     |j        d           |                     |j        d           |                     |j        d            d S r
  )	r   r   r   r#   r0   r    r!   r"   r   rJ   s        r   test_ctor_nologfilesz2PEventListenerDispatcherTests.test_ctor_nologfiles  s    ..gz?CCv&&]]7++
+W555+X666***,d33333r   c                 |   t                      }t          |ddd          }t          |          }|                     |          }|                     |j        |           |                     |j        d           |                     |j        d           |                     |j        j	        t                     d S r  )r   r   r   r#   r0   r    r!   r"   r   r   r   rJ   s        r   r  z4PEventListenerDispatcherTests.test_ctor_logfile_only  s    ..gz?-79 9 9v&&]]7++
+W555+X666***,6DDDDDr   c                 |   t                      }t          |dd          }t          |          }|                     |          }t	          |          }|                     d|v            |                     |                    d          d           |                     |                    d          |           d S )NrG   rH   rs  r2  r3  r4  r5  r:  s         r   r<  z'PEventListenerDispatcherTests.test_repr  s    ..gz?CCv&&]]7++
Z  2e;<<<JJ;<<	 	 	 	{33U;;;;;r   c                 H   t                      }t          |dd          }t          |          }|                     |          }|                                 |                     |j        d           |                                 |                     |j        d           d S r>  r?  rJ   s        r   r@  z(PEventListenerDispatcherTests.test_close  rA  r   N)%r4   r5   r6   r   r   r   r#   r.   rS   rW   r]   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ry   r   r   r  r  r  r<  r@  r7   r   r   ro  ro    s:           ( ( (; ; ;7 7 76 6 67 7 7N N N< < < 
; 
; 
;	4 	4 	4
@ 
@ 
@N N NL L LN N N ; ; ;N N N$N N N$
K 
K 
K; ; ;.; ; ;.9 9 9>6 6 6:; ; ;:; ; ;>!L !L !LFD D DH H HI I I< < <,4 4 4	E 	E 	E
< 
< 
<2 2 2 2 2r   ro  c                   &    e Zd Zd Zd Zd Zd ZdS )stripEscapeTestsc                 $    ddl m}  ||          S )Nr   )stripEscapes)r   r  )r   sr  s      r   _callFUTzstripEscapeTests._callFUT  s"    777777|Ar   c                 X    |                      |                     d          d           d S )Nr   r0   r  )r   s    r   test_zero_length_stringz(stripEscapeTests.test_zero_length_string  s*    s++S11111r   c                 `    d}d}|                      |                     |          |           d S )Nr  r  r  )r   r  r  s      r   	test_ansizstripEscapeTests.test_ansi  s4    L?t,,f55555r   c                 \    d}|                      |                     |          |           d S )Nr  r  )r   r  s     r   test_noansizstripEscapeTests.test_noansi  s/    ?v..77777r   N)r4   r5   r6   r  r  r  r  r7   r   r   r  r    sP          2 2 26 6 6
8 8 8 8 8r   r  c                  T    t          j        t          j        t                             S r   )unittestfindTestCasessysmodulesr4   r7   r   r   
test_suiter    s    !#+h"7888r   __main__r  )defaultTest)r  r   r  supervisor.compatr   supervisor.tests.baser   r   r   r   r   TestCaser
   r9   rC  ro  r  r  r4   mainr7   r   r   <module>r     s    				 



 & & & & & & . . . . . . . . . . . . . . . . . . - - - - - - , , , , , ,- - - - -x( - - -8R2 R2 R2 R2 R2X. R2 R2 R2jH2 H2 H2 H2 H2H- H2 H2 H2Ts2 s2 s2 s2 s2H$5 s2 s2 s2l8 8 8 8 8x( 8 8 8"9 9 9 zHMl++++++ r   