
    4hhn                        S SK r S SKrS SKrS SKJr  S SKJr   S SKJr  S SK	J
r
   S SK	Jr   S SK	Jr   " S S	5      r\R                  " \R                   S
5       " S S\\R"                  5      5       r\R&                  " \R                   S5       " S S\\R"                  5      5       rg! \ a     Nf = f! \ a     Nf = f! \ a     Nf = f)    N)patch)support)Event)base_eventqueue)unix_eventqueue)windows_eventqueuec                       \ rS rSrSrS\R                  4S jrS rS r	S r
S r\" S	5      S
 5       r\" S	5      S 5       r\" S	5      S 5       r\" S	5      S 5       rS rS rS rS rS rSrg)EventQueueTestBase   zOS-independent mixinreturnc                     [        5       eN)NotImplementedErrorselfs    I/opt/python-3.13.8/usr/lib/python3.13/test/test_pyrepl/test_eventqueue.pymake_eventqueue"EventQueueTestBase.make_eventqueue   s    !##    c                     U R                  5       n[        SSS5      nUR                  U5        U R                  UR	                  5       U5        g Nkeya   a)r   r   insertassertEqualgetr   eqevents      r   test_getEventQueueTestBase.test_get   s@    !!#eS$'
		%5)r   c                     U R                  5       nU R                  UR                  5       5        UR                  [	        SSS5      5        U R                  UR                  5       5        g r   )r   
assertTrueemptyr   r   assertFalser   r   s     r   
test_emptyEventQueueTestBase.test_empty"   sK    !!#
#
		%sD)*$r   c                     U R                  5       nUR                  R                  S5        U R                  UR	                  5       S5        U R                  UR                  [        5       5        g )Ns   test)r   bufextendr   	flush_buf	bytearrayr'   s     r   test_flush_buf!EventQueueTestBase.test_flush_buf(   sL    !!#
g1-r   c                     U R                  5       n[        SSS5      nUR                  U5        U R                  UR                  S   U5        g )Nr   r   r   r   )r   r   r   r   eventsr   s      r   test_insertEventQueueTestBase.test_insert.   sB    !!#eS$'
		%1u-r   z_pyrepl.base_eventqueue.keymapc                 V   SS0UR                   l        U R                  5       nSS0Ul        UR	                  S5        UR                   R                  5         U R                  UR                  S   R                  S5        U R                  UR                  S   R                  S5        g )Nr   br   r   r   
compile_keymapreturn_valuer   keymappushassert_calledr   r2   evtdatar   mock_keymapr   s      r   test_push_with_key_in_keymap/EventQueueTestBase.test_push_with_key_in_keymap4       36*""/!!#3K	
""0021))511**C0r   c                 V   SS0UR                   l        U R                  5       nSS0Ul        UR	                  S5        UR                   R                  5         U R                  UR                  S   R                  S5        U R                  UR                  S   R                  S5        g )Nr   r6      cdr   r   r   r7   r?   s      r   test_push_without_key_in_keymap2EventQueueTestBase.test_push_without_key_in_keymap>   rC   r   c                    SS0UR                   l        U R                  5       nSSS00Ul        UR	                  S5        UR                   R                  5         U R                  UR                  5       5        UR	                  S5        U R                  UR                  S   R                  S5        U R                  UR                  S   R                  S5        UR	                  S5        U R                  UR                  S	   R                  S5        U R                  UR                  S	   R                  S
5        g )Nr   r6   r      bcr   r      d   rF   )r8   r9   r   r:   r;   r<   r$   r%   r   r2   r=   r>   r?   s      r   test_push_with_keymap_in_keymap2EventQueueTestBase.test_push_with_keymap_in_keymapH   s    36*""/!!#D#;'	
""002
#
1))511**C0
1))511**C0r   c                    SS0UR                   l        U R                  5       nSSS00Ul        UR	                  S5        UR                   R                  5         U R                  UR                  5       5        UR                  5         UR	                  S5        U R                  UR                  S   R                  S5        U R                  UR                  S   R                  S	5        UR	                  S5        U R                  UR                  S
   R                  S5        U R                  UR                  S
   R                  S5        g )Nr   r6   r   rJ   rK      r   r   rM   )r8   r9   r   r:   r;   r<   r$   r%   r-   r   r2   r=   r>   r?   s      r   *test_push_with_keymap_in_keymap_and_escape=EventQueueTestBase.test_push_with_keymap_in_keymap_and_escapeW   s    36*""/!!#D#;'	
""002
#

1))511**F3
1))511**C0r   c                 <   U R                  5       n0 Ul        UR                  S5        UR                  S5        UR                  S5        U R                  UR                  S   R
                  S5        U R                  UR                  S   R                  S5        g )NrQ      [   Ar   r   rR   )r   r:   r;   r   r2   r=   r>   r'   s     r   test_push_special_key(EventQueueTestBase.test_push_special_keyg   su    !!#	


1))511**F3r   c                    U R                  5       n0 Ul        UR                  S5        UR                  S5        UR                  S5        U R                  [	        UR
                  5      S5        U R                  UR
                  S   R                  S5        U R                  UR
                  S   R                  S5        U R                  UR
                  S   R                  S5        U R                  UR
                  S   R                  S	5        U R                  UR
                  S
   R                  S5        U R                  UR
                  S
   R                  S5        g )NrQ   rV      Z   r   r   rR   rM   [   Z)r   r:   r;   r   lenr2   r=   r>   r'   s     r   &test_push_unrecognized_escape_sequence9EventQueueTestBase.test_push_unrecognized_escape_sequencep   s   !!#	


RYY+1))511**F31))511**C01))511**C0r   c                 2   U R                  5       n0 Ul        U R                  [        5         UR	                  S5        S S S 5        U R                  [        5         UR	                  S5        S S S 5        g ! , (       d  f       N>= f! , (       d  f       g = f)N   ч   ñ)r   r:   assertRaisesAssertionErrorr;   r'   s     r   "test_push_unicode_character_as_str5EventQueueTestBase.test_push_unicode_character_as_str~   sf    !!#	~.GGDM /~.GGDM /. /...s   A7B7
B
Bc                    U R                  5       n0 Ul        SR                  UR                  S5      nU R	                  [        U5      S5        UR                  US   5        UR                  5       nU R                  U5        UR                  US   5        UR                  5       nU R	                  UR                  S5        U R	                  UR                  S5        g )Nrd   replacer^   r   rM   r   )r   r:   encodeencodingr   r`   r;   r   assertIsNoner=   r>   )r   r   encodedes       r   %test_push_unicode_character_two_bytes8EventQueueTestBase.test_push_unicode_character_two_bytes   s    !!#	++bkk95Wq)

FFH!

FFH&&r   c                   ^ U R                  5       m0 Tl        S	U4S jjnU4S jnU R                  S[        5        U" S5        U R	                  [
        5         U" S5        S S S 5        U" S5        U R                  TR                  5       U" SS5      5        U R                  TR                  5       U" SS5      5        g ! , (       d  f       Ne= f)
Nc                 `   > Ub  UOUR                  TR                  5      n[        XU5      nU$ r   )rl   rm   r   )r=   r>   rawrrp   r   s        r   _eventVEventQueueTestBase.test_push_single_chars_and_unicode_character_as_str.<locals>._event   s,    DKK,DAc#AHr   c                 :   > U  H  nTR                  U5        M     g r   )r;   )keyskr   s     r   _pushUEventQueueTestBase.test_push_single_chars_and_unicode_character_as_str.<locals>._push   s    
 r   re   rJ   r   r   r6   r   r   )r   r:   assertIsInstancestrrf   rg   r   r   )r   rw   r|   r   s      @r   3test_push_single_chars_and_unicode_character_as_strFEventQueueTestBase.test_push_single_chars_and_unicode_character_as_str   s    !!#		
	 	dC( 	d~.$K /d6%#566%#56 /.s   	C
C N)__name__
__module____qualname____firstlineno____doc__r   BaseEventQueuer   r!   r(   r/   r3   r   rA   rG   rN   rS   rX   ra   rh   rq   r   __static_attributes__r   r   r   r
   r
      s    $!?!? $*%.. +,1 -1 +,1 -1 +,1 -1 +,1 -141' 7r   r
   zNo Unix event queue on Windowsc                   F    \ rS rSrS rSS jrS\R                  4S jrSr	g)	TestUnixEventQueue   c                 p    U R                  [        SS 5      5        [        R                  " 5       U l        g )Nz_pyrepl.curses.tigetstrc                     g)Nr   r   )xs    r   <lambda>*TestUnixEventQueue.setUp.<locals>.<lambda>   s    Sr   )enterContextr   tempfileTemporaryFilefiler   s    r   setUpTestUnixEventQueue.setUp   s(    % 9=IJ**,	r   r   Nc                 8    U R                   R                  5         g r   )r   closer   s    r   tearDownTestUnixEventQueue.tearDown   s    		r   c                 `    [         R                  " U R                  R                  5       S5      $ Nzutf-8)r   
EventQueuer   filenor   s    r   r   "TestUnixEventQueue.make_eventqueue   s"    ))$))*:*:*<gFFr   )r   )r   N)
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s     -G!?!? Gr   r   zNo Windows event queue on Unixc                   6    \ rS rSrS\R
                  4S jrSrg)TestWindowsEventQueue   r   c                 .    [         R                  " S5      $ r   )r   r   r   s    r   r   %TestWindowsEventQueue.make_eventqueue   s    !,,W55r   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r      s    6!?!? 6r   r   )r   unittestsysunittest.mockr   testr   _pyrepl.consoler   _pyreplr   ImportErrorr   r   r
   skipIf
MS_WINDOWSTestCaser   
skipUnlessr   r   r   r   <module>r      s      
  	%'	'	*V7 V7r 
##%EF	G+X->-> 	G G	G 
W'')IJ6.0A0A 6 K6i  		
  		
  		s3   B+ B7 C +B43B47C ?C CC