
    kck                         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ej                        Z	 G d dej                        Z
 G d	 d
ej                        Zd Zedk(  r ej                  d       yy)    )BytesION)StringIO)	as_stringc                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)ChildUtilsTestsc                 J    ddl m}  |ddi      }| j                  |d u       y )Nr   )getRPCInterfaceSUPERVISOR_SERVER_URLhttp://localhost:9001)supervisor.childutilsr	   
assertTrue)selfr	   rpcs      B/usr/lib/python3/dist-packages/supervisor/tests/test_childutils.pytest_getRPCInterfacez$ChildUtilsTests.test_getRPCInterface	   s&    967NOP4(    c                     ddl m}  |ddi      }| j                  |j                  d       | j                  |j                  d       | j                  |j
                  d       y )Nr   getRPCTransportr
   r    r   r   assertEqualusernamepassword	serverurl)r   r   ts      r   "test_getRPCTransport_no_uname_passz2ChildUtilsTests.test_getRPCTransport_no_uname_pass   sS    945LMNR(R(&=>r   c                     ddl m} dddd} ||      }| j                  |j                  d       | j                  |j                  d       | j                  |j
                  d       y )Nr   r   r   chrismabc123)r
   SUPERVISOR_USERNAMESUPERVISOR_PASSWORDr   )r   r   envr   s       r   $test_getRPCTransport_with_uname_passz4ChildUtilsTests.test_getRPCTransport_with_uname_pass   s^    9'>%-%-/ C X.X.&=>r   c                 N    ddl m} d} ||      }| j                  |ddd       y )Nr   )get_headersza:1 b:212ab)r   r&   r   )r   r&   lineresults       r   test_get_headersz ChildUtilsTests.test_get_headers    s)    5T"cs!34r   c                 x    ddl m} d} ||      \  }}| j                  |ddd       | j                  |d       y )Nr   )	eventdataza:1 b:2
thedata
r'   r(   r)   zthedata
)r   r0   r   )r   r0   payloadheadersdatas        r   test_eventdatazChildUtilsTests.test_eventdata&   s=    3&!'*s"45{+r   c                 n    ddl m} t        j                  d      } ||      }| j	                  |d       y )Nr   )get_asctime)	i                 r   r   z2009-01-18 22:14:07,000)r   r6   timemktimer   )r   r6   	timestampr-   s       r   test_get_asctimez ChildUtilsTests.test_get_asctime-   s/    5KK BC	Y'!:;r   N)	__name__
__module____qualname__r   r   r$   r.   r4   r@    r   r   r   r      s     )??5,<r   r   c                       e Zd Zd Zd Zd Zy)!TestProcessCommunicationsProtocolc                     ddl m} t               }|j                  d|       ddlm} |j                  }|j                  }| j                  |j                         |dz   |z          y Nr   )pcomms   hello)ProcessCommunicationEvent)
r   rI   r   sendsupervisor.eventsrJ   BEGIN_TOKEN	END_TOKENr   getvalue)r   rI   stdoutrJ   beginends         r   	test_sendz+TestProcessCommunicationsProtocol.test_send4   sT    /

8V$?)55'11*EH,<s,BCr   c                 <   ddl m} t        j                  }	 t	               x}t        _        |j                  d       ddlm} |j                  }|j                  }| j                  |j                         |dz   |z          |t        _        y # |t        _        w xY wrH   )r   rI   sysrP   r   rL   rJ   rM   rN   r   rO   r   rI   oldiorJ   rQ   rR   s          r   test_stdoutz-TestProcessCommunicationsProtocol.test_stdout=   u    /jj	%i'BLL"C-99E+55CR[[]EH,<s,BCCJCJ   A*B Bc                 <   ddl m} t        j                  }	 t	               x}t        _        |j                  d       ddlm} |j                  }|j                  }| j                  |j                         |dz   |z          |t        _        y # |t        _        w xY wrH   )r   rI   rU   stderrr   rL   rJ   rM   rN   r   rO   rV   s          r   test_stderrz-TestProcessCommunicationsProtocol.test_stderrJ   rZ   r[   N)rA   rB   rC   rS   rY   r^   rD   r   r   rF   rF   3   s    Dr   rF   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestEventListenerProtocolc                     ddl m}  G d d      } |       }t               }|j                  ||      \  }}| j	                  |ddi       | j	                  |d       | j	                  |j                         d       y )	Nr   listenerc                       e Zd Zd Zd Zy)2TestEventListenerProtocol.test_wait.<locals>.Dummyc                      y)Nzlen:5rD   )r   s    r   readlinez;TestEventListenerProtocol.test_wait.<locals>.Dummy.readline[       r   c                      y)NhellorD   )r   ignoreds     r   readz7TestEventListenerProtocol.test_wait.<locals>.Dummy.read]   rh   r   N)rA   rB   rC   rg   rl   rD   r   r   Dummyre   Z   s    r   rm   len5rj   zREADY
)r   rc   r   waitr   rO   )r   rc   rm   stdinrP   r2   r1   s          r   	test_waitz#TestEventListenerProtocol.test_waitX   so    2	 	
 #==75+.'**I6r   c                     ddl m} ddlm} t	        |j
                        }t               }|j                  |       | j                  |j                         |       y )Nr   rb   PEventListenerDispatcher)
r   rc   supervisor.dispatchersru   r   READY_FOR_EVENTS_TOKENr   readyr   rO   )r   rc   ru   tokenrP   s        r   
test_tokenz$TestEventListenerProtocol.test_tokenf   sC    2C2IIJv*E2r   c                     ddl m} ddlm} t	        |j
                        }t               }|j                  |       | j                  |j                         |dz          y )Nr   rb   rt   z2
OK)
r   rc   rv   ru   r   RESULT_TOKEN_STARTr   okr   rO   r   rc   ru   rQ   rP   s        r   test_okz!TestEventListenerProtocol.test_okn   sG    2C2EEFF*EGO<r   c                     ddl m} ddlm} t	        |j
                        }t               }|j                  |       | j                  |j                         |dz          y )Nr   rb   rt   z4
FAIL)
r   rc   rv   ru   r   r|   r   failr   rO   r~   s        r   	test_failz#TestEventListenerProtocol.test_failv   sH    2C2EEFf*EI,=>r   c                     ddl m} ddlm} t	        |j
                        }t               }d}|j                  ||       |t        |      d|}| j                  |j                         |       y )Nr   rb   rt   zthe body data ya fool

)r   rc   rv   ru   r   r|   r   rK   rn   r   rO   )r   rc   ru   rQ   rP   msgexpecteds          r   rS   z#TestEventListenerProtocol.test_send~   sZ    2C2EEF'c6"!&C#6*H5r   N)rA   rB   rC   rr   rz   r   r   rS   rD   r   r   r`   r`   W   s    73=?6r   r`   c                  V    t        j                  t        j                  t                 S )N)unittestfindTestCasesrU   modulesrA   rD   r   r   
test_suiter      s    !!#++h"788r   __main__r   )defaultTest)rX   r   rU   r=   r   supervisor.compatr   r   TestCaser   rF   r`   r   rA   mainrD   r   r   <module>r      sr     
   & ')<h'' )<V"(9(9 "H/6 1 1 /6d9 zHMMl+ r   