o
    i}                     @   sb   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 dd Z
ejG dd	 d	eZdS )
    N)wraps)mark)BaseZMQTestCase)allow_interruptc                    s    t  fdd d _ S )Nc               	      s0   z| i |W   j d7  _ S   j d7  _ w )N   )	__calls__)argskwds_f T/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/zmq/tests/test_win32_shim.pyr      s    zcount_calls.<locals>._r   )r   r   )r   r   r
   r   count_calls   s   r   c                   @   s2   e Zd Zejejejd dddd Z	dS ) TestWindowsConsoleControlHandlerwinzWindows only test)reasonc           	      C   s   t dd }ddlm} ddlm}m} |d}|j}||f|_||_	z t
|}|dd}td W d    n1 s>w   Y  W n	 tyM   Y nw |dkrUt | d |jd	ksaJ d S )
Nc                   S   s   t d d S )NzCaught CTRL-C!)printr   r   r   r   interrupt_polling   s   zHTestWindowsConsoleControlHandler.test_handler.<locals>.interrupt_pollingr   )windll)BOOLDWORDkernel32g      ?z(Expecting `KeyboardInterrupt` exception!r   )r   ctypesr   ctypes.wintypesr   r   LoadLibraryGenerateConsoleCtrlEventargtypesrestyper   timesleepKeyboardInterruptOSErrorfailr   )	selfr   r   r   r   r   r   contextresultr   r   r   test_handler   s*   





z-TestWindowsConsoleControlHandler.test_handlerN)
__name__
__module____qualname__r   new_consoleskipifsysplatform
startswithr'   r   r   r   r   r      s    r   )r-   r   	functoolsr   pytestr   	zmq.testsr   zmq.utils.win32r   r   r+   r   r   r   r   r   <module>   s    