
    Ef}                     ~    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 Z
ej                   G d de             Zy)	    N)wraps)mark)BaseZMQTestCase)allow_interruptc                 @     t                fd       d_        S )Nc                  t    	  | i |xj                   dz  c_         S # xj                   dz  c_         w xY w)N   )	__calls__)argskwds_fs     ;/usr/lib/python3/dist-packages/zmq/tests/test_win32_shim.pyr   zcount_calls.<locals>._   s2    	d#d#KK1KAKK1Ks     7r   )r   r
   )r   r   s   `@r   count_callsr      s'    
1X  AKH    c                       e Zd Zej                   ej
                  ej                  j                  d       d      d               Z	y) TestWindowsConsoleControlHandlerwinzWindows only test)reasonc                    t         d        }ddlm} ddlm}m} |j                  d      }|j                  }||f|_        ||_	        	 t        |      5 } |dd      }t        j                  d       d d d        dk(  r
t               | j                  d       	 |j                   dk(  sJ y # 1 sw Y   <xY w# t        $ r Y )w xY w)	Nc                      t        d       y )NzCaught CTRL-C!)print r   r   interrupt_pollingzHTestWindowsConsoleControlHandler.test_handler.<locals>.interrupt_polling   s    "#r   r   )windll)BOOLDWORDkernel32g      ?z(Expecting `KeyboardInterrupt` exception!r	   )r   ctypesr   ctypes.wintypesr   r   LoadLibraryGenerateConsoleCtrlEventargtypesrestyper   timesleepOSErrorfailKeyboardInterruptr
   )	selfr   r   r   r   r   r"   contextresults	            r   test_handlerz-TestWindowsConsoleControlHandler.test_handler   s     
	$ 
	$ 	"/%%j1 $,#D#D -2EN )+/ (	F !23  w1!Q7 

3	  {i		DE !**a///   
 ! 		s*   	B: B.3B: .B73B: :	CCN)
__name__
__module____qualname__r   new_consoleskipifsysplatform
startswithr-   r   r   r   r   r      sC    	T[[S\\,,U33<OP0 Q 0r   r   )r3   r%   	functoolsr   pytestr   	zmq.testsr   zmq.utils.win32r   r   r1   r   r   r   r   <module>r:      s=    
    % +	 "0 "0 "0r   