B
    '(äbÁ  ã               @   s€   d dl mZmZ d dlmZmZ d dlmZmZ d dl	Z	d dl
Z
d dlZdZedddœdd	„ZG d
d„ deƒZedkr|eƒ  dS )é    )ÚTestCaseÚmain)ÚProcessÚQueue)Ú	IPCClientÚ	IPCServerNzdmypy-test-ipcz
Queue[str])ÚmsgÚqÚreturnc          	   C   sT   t tƒ}| |j¡ d}x.|sF| | |  ¡ ¡ | ¡ }W d Q R X qW | ¡  d S )Nó    )r   ÚCONNECTION_NAMEÚputÚconnection_nameÚwriteÚencodeÚreadÚcleanup)r   r	   ÚserverÚdata© r   ú@/home/dcms/DCMS/lib/python3.7/site-packages/mypy/test/testipc.pyr      s    r   c               @   s>   e Zd Zddœdd„Zddœdd„Zejjddœdd„ƒZdS )	ÚIPCTestsN)r
   c          	   C   s‚   t ƒ }dd }tt||fdd}| ¡  | ¡ }t|dd$}| ¡ | ¡ ksRt‚| 	d¡ W d Q R X | 
¡  | ¡  | ¡  d S )NÚti@ T)ÚtargetÚargsÚdaemoné   )Útimeouts   test)r   r   r   ÚstartÚgetr   r   r   ÚAssertionErrorr   ÚcloseÚjoin_threadÚjoin)ÚselfÚqueuer   Úpr   Úclientr   r   r   Útest_transaction_large   s    zIPCTests.test_transaction_largec          	   C   sÂ   t ƒ }d}tt||fdd}| ¡  | ¡ }t|dd$}| ¡ | ¡ ksNt‚| 	d¡ W d Q R X t|dd$}| ¡ | ¡ ks„t‚| 	d¡ W d Q R X | 
¡  | ¡  | ¡  |jdks¾t‚d S )	Nzthis is a test messageT)r   r   r   r   )r   r   s   testr   )r   r   r   r   r   r   r   r   r    r   r!   r"   r#   Úexitcode)r$   r%   r   r&   r   r'   r   r   r   Útest_connect_twice&   s    zIPCTests.test_connect_twicec             C   s\   t   ¡ }xNtdƒD ]B}zt|dƒ |  ¡  W d t   ¡ }t||| ƒ tj ¡  |}X qW d S )Niè  r   )ÚtimeÚrangeÚprintr*   ÚsysÚstdoutÚflush)r$   Út0ÚiÚt1r   r   r   Útest_connect_alot;   s    

zIPCTests.test_connect_alot)	Ú__name__Ú
__module__Ú__qualname__r(   r*   ÚpytestÚmarkÚskipr4   r   r   r   r   r      s   r   Ú__main__)Zunittestr   r   Úmultiprocessingr   r   Zmypy.ipcr   r   r8   r.   r+   r   Ústrr   r   r5   r   r   r   r   Ú<module>   s   1