o
    fk                     @   s   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d ZedkrIejdd dS 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   S/var/www/html/venv/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   c                   C   s   t tjt S )N)unittestfindTestCasesrJ   modulesr9   r   r   r   r   
test_suite   s   ru   __main__)defaultTest)rM   r   rJ   r5   rr   supervisor.compatr   r   TestCaser   r<   rR   ru   r9   mainr   r   r   r   <module>   s    +$2