o
    Í°“iÖ  ã                   @   sv   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ G dd„ dejƒZ	G dd„ dejƒZ
G d	d
„ d
ejƒZdS )é    )ÚBytesION)ÚStringIO)Ú	as_stringc                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚChildUtilsTestsc                 C   s*   ddl m} |ddiƒ}|  |d u¡ d S )Nr   )ÚgetRPCInterfaceÚSUPERVISOR_SERVER_URLúhttp://localhost:9001)Úsupervisor.childutilsr   Ú
assertTrue)Úselfr   Úrpc© r   úT/home/ubuntu/.local/lib/python3.10/site-packages/supervisor/tests/test_childutils.pyÚtest_getRPCInterface	   s   z$ChildUtilsTests.test_getRPCInterfacec                 C   sF   ddl m} |ddiƒ}|  |jd¡ |  |jd¡ |  |jd¡ d S )Nr   ©ÚgetRPCTransportr   r   Ú ©r	   r   ÚassertEqualÚusernameÚpasswordÚ	serverurl)r   r   Útr   r   r   Ú"test_getRPCTransport_no_uname_pass   s
   z2ChildUtilsTests.test_getRPCTransport_no_uname_passc                 C   sN   ddl m} ddddœ}||ƒ}|  |jd¡ |  |jd¡ |  |jd¡ d S )Nr   r   r   ÚchrismÚabc123)r   ÚSUPERVISOR_USERNAMEÚSUPERVISOR_PASSWORDr   )r   r   Úenvr   r   r   r   Ú$test_getRPCTransport_with_uname_pass   s   þz4ChildUtilsTests.test_getRPCTransport_with_uname_passc                 C   s.   ddl m} d}||ƒ}|  |dddœ¡ d S )Nr   )Úget_headersza:1 b:2Ú1Ú2©ÚaÚb)r	   r    r   )r   r    ÚlineÚresultr   r   r   Útest_get_headers    s   z ChildUtilsTests.test_get_headersc                 C   s>   ddl m} d}||ƒ\}}|  |dddœ¡ |  |d¡ d S )Nr   )Ú	eventdataza:1 b:2
thedata
r!   r"   r#   zthedata
)r	   r)   r   )r   r)   ÚpayloadÚheadersÚdatar   r   r   Útest_eventdata&   s
   zChildUtilsTests.test_eventdatac                 C   s.   ddl m} t d¡}||ƒ}|  |d¡ d S )Nr   )Úget_asctime)	iÙ  é   é   é   é   é   r   r   éÿÿÿÿz2009-01-18 22:14:07,000)r	   r.   ÚtimeÚmktimer   )r   r.   Ú	timestampr'   r   r   r   Útest_get_asctime-   s   
z ChildUtilsTests.test_get_asctimeN)	Ú__name__Ú
__module__Ú__qualname__r   r   r   r(   r-   r8   r   r   r   r   r      s    
r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú!TestProcessCommunicationsProtocolc                 C   sR   ddl m} tƒ }| d|¡ ddlm} |j}|j}|  | 	¡ |d | ¡ d S ©Nr   )Úpcomms   hello)ÚProcessCommunicationEvent)
r	   r>   r   ÚsendÚsupervisor.eventsr?   ÚBEGIN_TOKENÚ	END_TOKENr   Úgetvalue)r   r>   Ústdoutr?   ÚbeginÚendr   r   r   Ú	test_send4   s   z+TestProcessCommunicationsProtocol.test_sendc                 C   ón   ddl m} tj}z)tƒ  }t_| d¡ ddlm} |j}|j}|  	| 
¡ |d | ¡ W |t_d S |t_w r=   )r	   r>   ÚsysrE   r   rA   r?   rB   rC   r   rD   ©r   r>   ÚoldÚior?   rF   rG   r   r   r   Útest_stdout=   ó   
z-TestProcessCommunicationsProtocol.test_stdoutc                 C   rI   r=   )r	   r>   rJ   Ústderrr   rA   r?   rB   rC   r   rD   rK   r   r   r   Útest_stderrJ   rO   z-TestProcessCommunicationsProtocol.test_stderrN)r9   r:   r;   rH   rN   rQ   r   r   r   r   r<   3   s    	r<   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestEventListenerProtocolc                 C   sf   ddl m} G dd„ dƒ}|ƒ }tƒ }| ||¡\}}|  |ddi¡ |  |d¡ |  | ¡ d¡ d S )	Nr   ©Úlistenerc                   @   s   e Zd Zdd„ Zdd„ ZdS )z2TestEventListenerProtocol.test_wait.<locals>.Dummyc                 S   ó   dS )Nzlen:5r   )r   r   r   r   Úreadline[   ó   z;TestEventListenerProtocol.test_wait.<locals>.Dummy.readlinec                 W   rU   )NÚhellor   )r   Úignoredr   r   r   Úread]   rW   z7TestEventListenerProtocol.test_wait.<locals>.Dummy.readN)r9   r:   r;   rV   rZ   r   r   r   r   ÚDummyZ   s    r[   ÚlenÚ5rX   zREADY
)r	   rT   r   Úwaitr   rD   )r   rT   r[   ÚstdinrE   r+   r*   r   r   r   Ú	test_waitX   s   z#TestEventListenerProtocol.test_waitc                 C   sF   ddl m} ddlm} t|jƒ}tƒ }| |¡ |  | 	¡ |¡ d S )Nr   rS   ©ÚPEventListenerDispatcher)
r	   rT   Úsupervisor.dispatchersrb   r   ÚREADY_FOR_EVENTS_TOKENr   Úreadyr   rD   )r   rT   rb   ÚtokenrE   r   r   r   Ú
test_tokenf   s   

z$TestEventListenerProtocol.test_tokenc                 C   óJ   ddl m} ddlm} t|jƒ}tƒ }| |¡ |  | 	¡ |d ¡ d S )Nr   rS   ra   z2
OK)
r	   rT   rc   rb   r   ÚRESULT_TOKEN_STARTr   Úokr   rD   ©r   rT   rb   rF   rE   r   r   r   Útest_okn   ó   

z!TestEventListenerProtocol.test_okc                 C   rh   )Nr   rS   ra   z4
FAIL)
r	   rT   rc   rb   r   ri   r   Úfailr   rD   rk   r   r   r   Ú	test_failv   rm   z#TestEventListenerProtocol.test_failc                 C   s^   ddl m} ddlm} t|jƒ}tƒ }d}| ||¡ d|t|ƒ|f }|  	| 
¡ |¡ d S )Nr   rS   ra   zthe body data ya fool
z%s%s
%s)r	   rT   rc   rb   r   ri   r   r@   r\   r   rD   )r   rT   rb   rF   rE   ÚmsgÚexpectedr   r   r   rH   ~   s   
z#TestEventListenerProtocol.test_sendN)r9   r:   r;   r`   rg   rl   ro   rH   r   r   r   r   rR   W   s    rR   )rM   r   rJ   r5   ÚunittestÚsupervisor.compatr   r   ÚTestCaser   r<   rR   r   r   r   r   Ú<module>   s    +$