U
    /e                     @   s|   d dl Z d dlZd dlZd dlmZ d dlZd dlmZmZ ej	j
e jdkdddd Zej	j
e jdkd	dd
d ZdS )    N)mock)ParentPollerUnixParentPollerWindowsntzonly works on posix)reasonc                  C   s   t  } tddd D dd }td|$ tt |   W 5 Q R X W 5 Q R X W 5 Q R X dd }td|$ tt |   W 5 Q R X W 5 Q R X d S )	Nz
os.getppidc                   S   s   dS N    r	   r	   r	   E/tmp/pip-unpacked-wheel-g43y689f/ipykernel/tests/test_parentpoller.py<lambda>       z)test_parent_poller_unix.<locals>.<lambda>c                  W   s   t d d S r   )sysexit)argsr	   r	   r
   	exit_mock   s    z*test_parent_poller_unix.<locals>.exit_mockzos._exitc                   S   s   t dd S )Nhi)
ValueErrorr	   r	   r	   r
   mock_getppid   s    z-test_parent_poller_unix.<locals>.mock_getppid)r   r   patchpytestZraises
SystemExitrunr   )pollerr   r   r	   r	   r
   test_parent_poller_unix   s    &r   zonly works on windowsc               
   C   sT   t dd} dd }td|, t  td |   W 5 Q R X W 5 Q R X d S )Nr   )Zinterrupt_handlec                  _   s   dS )Nr	   )r   kwargsr	   r	   r
   	mock_wait!   s    z-test_parent_poller_windows.<locals>.mock_waitz-ctypes.windll.kernel32.WaitForMultipleObjectsignore)r   r   r   warningscatch_warningssimplefilterr   )r   r   r	   r	   r
   test_parent_poller_windows   s    


r!   )osr   r   Zunittestr   r   Zipykernel.parentpollerr   r   markZskipifnamer   r!   r	   r	   r	   r
   <module>   s   
