
    
8df                     ~   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mZ d dl	m
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        d             Z ed          ej                            dddg          d                         Z ed          d             Z ed          d             Z ed          d             Z ed          ej                            e j        dk    d          d                         Zej                            ed           G d dej                              Z dS )    N)flaky)QtCoreQtGui	QtWidgets)QTest)ConsoleWidget)JupyterQtConsoleApp   )
no_display)TransformerManageri N  c              #      K   t                      }|                    g            d|j        _        |j                                         |V  |j                                         dS )zQtconsole fixture.)argvFN)r	   
initializewindowconfirm_exitshowclose)qtbotconsoles     Flib/python3.11/site-packages/qtconsole/tests/test_00_console_widget.py	qtconsoler      sk       "##GB"'GNN
MMMN       )max_runsdebugTFc                   
 | j         }|j        j        

                                }                    fdt
                     |                                dk    sJ g d}|D ]=}                    
|                               
t          j
        j                   >                    j                  5                      
t          j
        j        t          j
        j                   ddd           n# 1 swxY w Y   d
fd	}|r9 |d	d
                               
t          j
        j                   d
fd	}|                                }t          d          D ]}	 |d           |                                |k    sJ |                                |                                dz  z   }|                    |           t          d          D ]}	 |d           |                                |k    sJ t          d          D ]}	 |d           |                                |k    sJ |                                } |dd
                               d           |                                |k    sJ |                                |                                z
  }|                    |                               d           |                                |k    sJ |                                |                                dz  dz  z
  }|                    |                               d           |                                |k    sJ dS )z(
    Make sure the scrolling works.
    c                       j         d uS N_prompt_htmlshells   r   <lambda>ztest_scroll.<locals>.<lambda>2       E.d: r   timeoutr   )import timezdef print_numbers():z    for i in range(1000):z       print(i)z       time.sleep(.01)modifierNTc                 z                        |            |rk                    j                  5                      t          j        j        t          j        j                   d d d            d S # 1 swxY w Y   d S                     t          j        j        t          j        j                   d S )Nr(   )	keyClicks
waitSignalexecutedkeyClickr   Qt	Key_EnterShiftModifier)lineblockcontrolr   r"   s     r   run_lineztest_scroll.<locals>.run_lineF   s   &&& 	A!!%.11 A Aw	(;(.	(?  A A AA A A A A A A A A A A A A A A A A A NN7FI$7(.	(?  A A A A As   7A88A<?A<z%debug print()F)r3   c                                          d| z                                  t          j        j        t          j        j                   |r                    fd           d S d S )N!r(   c                                                                                                                        d         dk    S Nzipdb>toPlainTextstripsplitr4   s   r   r#   z/test_scroll.<locals>.run_line.<locals>.<lambda>[   s;    G//1177  %''"&)01 r   )r+   r.   r   r/   r0   r1   	waitUntil)r2   r3   r4   r   s     r   r5   ztest_scroll.<locals>.run_lineU   s    OOGS4Z000NN7FI$7$*I$;  = = = 21 1 1 12 2 2 2 22 2r      za = 1   a
   zprint_numbers()i     )T)r   active_frontend_controlverticalScrollBarr@   SHELL_TIMEOUTvaluer+   r.   r   r/   r0   r,   r-   r1   rangepageStepsetValuewaitmaximum)r   r   r   r   
scroll_barcoder2   r5   prev_positionir4   r"   s    `        @@r   test_scrollrT   %   sD    F"EnG**,,J 
OO::::)  + + + """"& & &D
  5 5&&&w	 34444			%.	)	) 9 9w	 3 &	 7 	 	9 	9 	99 9 9 9 9 9 9 9 9 9 9 9 9 9 9A A A A A A A A  2!////w	 3444	2 	2 	2 	2 	2 	2 	2 $$&&M 2YY  ---- $$&&)<)<)>)>!)CCM&&&1XX  .... 2YY  ----$$&&M He,,,,	JJt ---- $$&&)<)<)>)>>M&&&	JJt .... &&((J,?,?,A,AA,E"+LLM&&&	JJt------s   7DDDc                 :   | j         }|j        j        |                    fdt                     |                    j                  5                      d           ddd           n# 1 swxY w Y   d}                    d|z   dz              |                    fd           |                    d	           |	                    t          j        j                   |                    fd
           |	                    dt          j        j                   t          d          D ]'}|	                    t          j        j                   (|                    fdt                     d                                v sJ dS )z
    Test input function
    c                       j         d uS r   r   r!   s   r   r#   ztest_input.<locals>.<lambda>   r$   r   r%   r'   Ninputzprint(z('name: ')); time.sleep(3)c                  d                                                                      d         dk    S )Nr:   zname:)r<   r>   r?   s   r   r#   ztest_input.<locals>.<lambda>   s)    G//117799"=H r   testc                       j          S r   _readingr!   s   r   r#   ztest_input.<locals>.<lambda>       . r   zr(   rD   c                       j         d uS r   r   r!   s   r   r#   ztest_input.<locals>.<lambda>   r$   r   zname: test
test)r   rF   rG   r@   rI   r,   r-   executer+   r.   r   r/   r0   ControlModifierrK   Key_Backspacer<   )r   r   r   input_functionrS   r4   r"   s        @@r   
test_inputrd      s   
 F"EnG 
OO::::)  + + + 
		%.	)	) % %m$$$% % % % % % % % % % % % % % % N	MM(^+.JJKKK	OOHHHHIII	OOGV$$$	NN7FI/000	OO....///	NN7C&)*CNDDD2YY 9 9w	 78888	OO::::)  + + + !4!4!6!6666666s   A33A7:A7c                    | j         }|j        j        |                    fdt                     d}|                    |           |                    t          j        j	        t          j        j
                   |                    fdt                     |                    d           |                    d           |                    t          j        j                   |                    d           |                    d                                                                                                           d	         d
k    sJ dS )zj
    Make sure the cursor works while debugging

    It might not because the console is "_executing"
    c                       j         d uS r   r   r!   s   r   r#   ztest_debug.<locals>.<lambda>   r$   r   r%   z%debug range(1)r(   c                                                                                                                        d         dk    S r9   r;   r?   s   r   r#   ztest_debug.<locals>.<lambda>   s5    ##%%++--3355b9WD r   abdd   cr:   abcdN)r   rF   rG   r@   rI   r+   r.   r   r/   r0   r1   rN   Key_Leftr<   r=   r>   )r   r   r   rQ   r4   r"   s       @@r   
test_debugrm      s]    F"EnG 
OO::::)  + + + D	OOGT"""	NN7FI/"I3  5 5 5 
OODDDD    
 
OOGU###	JJsOOO	NN7FI.///	NN7C   	JJsOOO  &&((..004>>>>>>r      c                 r  	 | j         }|j        		j        fd}                    	fdt                     d}	                    |            |             d}t          |          D ]G}                    d                               t          j
        j                    |             H                    t          j
        j                                       	fd                               	fdt                     d	d
|z  z   dz   }|                                v sJ dS )z
    Test that we print correctly mixed input and print statements.

    This is a regression test for spyder-ide/spyder#17710.
    c                  8                          fd           d S )Nc                  d                                                                      d         dk    S )Nr:   zWrite input: r<   
splitlinesr?   s   r   r#   z>test_input_and_print.<locals>.wait_for_input.<locals>.<lambda>   s)    G''))4466r:oM r   r@   r4   r   s   r   wait_for_inputz,test_input_and_print.<locals>.wait_for_input   s/    MMMM	
 	
 	
 	
 	
r   c                       j         d uS r   r   r!   s   r   r#   z&test_input_and_print.<locals>.<lambda>   r$   r   r%   zs
user_input = None
while user_input != '':
    user_input = input('Write input: ')
    print('Input was entered!')
r   1c                       j          S r   r[   r!   s   r   r#   z&test_input_and_print.<locals>.<lambda>   r]   r   c                       j         d uS r   r   r!   s   r   r#   z&test_input_and_print.<locals>.<lambda>   r$   r   z	   ...: 
z"Write input: 1
Input was entered!
z!Write input: 
Input was entered!
N)r   rF   rG   r@   rI   r`   rK   r+   r.   r   r/   r0   r<   )
r   r   r   rv   rQ   repetitions_outputr4   r"   s
    `      @@r   test_input_and_printr~      s    F"EnG
 
 
 
 
 
 
OO::::)  + + +D 
MM$N K;  %%%w	 3444 
NN7FI/000	OO....///	OO::::)  + + +
 	.<	=-	. 
 W((********r      ntzno SIGTERM on Windowsreasonc                    | j         }|j        j        fd}                    fdt                     t          d          D ]}                    j                  5                      d           ddd           n# 1 swxY w Y   	                    d           d}                    |                               fd	                               fd
           	                    d           dS )z?
    Test that the kernel correctly restarts after a kill.
    c                  8                          fd           d S )Nc                  0    d                                  v S NzKernel died, restartingr<   r?   s   r   r#   zCtest_restart_after_kill.<locals>.wait_for_restart.<locals>.<lambda>      -1D1D1F1FF r   rt   ru   s   r   wait_for_restartz1test_restart_after_kill.<locals>.wait_for_restart  s/    FFFF	
 	
 	
 	
 	
r   c                       j         d uS r   r   r!   s   r   r#   z)test_restart_after_kill.<locals>.<lambda>  r$   r   r%   rD   z%clearNi  z7import os, signal; os.kill(os.getpid(), signal.SIGTERM)c                  0    d                                  v S r   r   r?   s   r   r#   z)test_restart_after_kill.<locals>.<lambda>(  r   r   c                  d                                                                      d         dk    S )Nr:   zIn [1]: rr   r?   s   r   r#   z)test_restart_after_kill.<locals>.<lambda>-  s)    G''))4466r:jH r   )
r   rF   rG   r@   rI   rK   r,   r-   r`   rN   )r   r   r   r   r|   rQ   r4   r"   s    `    @@r   test_restart_after_killr     s    F"EnG
 
 
 
 
 
 
OO::::)  + + +
 2YY  en-- 	$ 	$MM(###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$

3 Id 	FFFF	
 	
 	

 	HHHH	
 	
 	
 	

3' s   )BB	B	zDoesn't work without a displayc                       e Zd Zed             Zed             Zd Zd Zd Zd Z	d Z
d Zd	 Zej                            ej        d
k    d          d             Zd Zd Zd ZdS )TestConsoleWidgetc                     t           j                                        | _        | j        t          j        g           | _        | j                            d           dS )z3 Create the application for the test case.
        NF)r   QApplicationinstance_appsetQuitOnLastWindowClosedclss    r   
setUpClasszTestConsoleWidget.setUpClass5  sP     )22448 -b11CH**511111r   c                 B    t           j                                         dS )z Exit the application.
        N)r   r   quitr   s    r   tearDownClasszTestConsoleWidget.tearDownClass>  s     	##%%%%%r   c                     |                     t          j        j                   |                                }|                     ||           d S r   )selectr   QTextCursorDocumentselectedTextassertEqual)selfcursortext	selections       r   assert_text_equalz#TestConsoleWidget.assert_text_equalD  sG    e'0111''))	D)))))r   c                    t                      }|                                }g d}g d}t          |          D ]L\  }}|                    ||           |                     |||                    |                    d           MdS )z5 Are special characters displayed correctly?
        )zxyz=
z	foo
bar
z
foo
bar
z
abcxyz=)u   x=z    foo bar r   zx=z Nr   _get_prompt_cursor	enumerate_insert_plain_textr   
insertTextr   wr   test_inputsexpected_outputsrS   r   s          r   test_special_charactersz)TestConsoleWidget.test_special_charactersI  s     OO%%''( ( (# # # !-- 	" 	"GAt  ...""6+;A+>???b!!!!		" 	"r   c                    t                      }|                                }g d}g d}t          |          D ]L\  }}|                    ||           |                     |||                    |                    d           MdS )z: Do control sequences for clearing the line work?
        )zHello[1KByezHello[0KByezHello[0KByezHello[1KByezHello[2KByezHello[2KBye)z     ByeHelloByeByeByelor   r   r   Nr   r   s          r   test_erase_in_linez$TestConsoleWidget.test_erase_in_line]  s     OO%%'', , ,# # # !-- 	" 	"GAt  ...""6+;A+>???b!!!!		" 	"r   c                    t           j        j        }t           j        j        }t           j        j        }t           j        j        }t          j        }t                      }|	                                }|
                    |d           |j        }t          j        }	|                     |	                                d            ||t          j        dd          |||          }
|                    ||
           |                     |	                                d           |                     |	                                d            ||t          j        dd          |||          }|                    ||           |                     |	                                d           |                     |	                                d            ||t          j        dd          |||          }|                    ||           |                     |	                                d           |                     |	                                d           d S )	Nz*<a href="http://python.org">written in</a>r   2   Fr
   r   Tzhttp://python.org)r   r/   NoButton
NoModifierQEvent	MouseMover   QMouseEventr   r   _insert_htmlrG   r   QToolTipr   r   QPointFeventFilter	isVisible)r   noButton	noButtonsnoModifiersr   r   r   r   objtipelsewhereEventoverTextEventstillOverTextEvents                r   test_link_handlingz$TestConsoleWidget.test_link_handlingv  s
   9%I&	i*M+	'OO%%''	vKLLLj R((( %Yr20F0F%-y+G G	c>***%000R(((#Iv~a/C/C$,iF F	c=)))$///%8999 )[FN1a4H4H)19kK K	c-...$///%899999r   c                 6   t                      }|                     |                                t          j                            |                     |                     |                                t          j                            |                     d S r   )r   r   widthr   QWidgetheight)r   r   s     r   test_width_heightz#TestConsoleWidget.test_width_height  so    OOI$5$;$;A$>$>???Y%6%=%=a%@%@AAAAAr   c                    t                      }d|_        |j                                        }|                    d           t          d          D ]}|                    d           |                                 |                     |	                                d           |                     |j
        |                                           |                     |j        |j
        t          |j                  z
             |                    d           |                     |j
        |                                t          d          z
             |                     |j        |j
        t          |j                  z
             |                                 |                     |j
        |                                           |                     |j        |j
        t          |j                  z
             |                    dd           |                     |j
        |                                           |                     |j        |j
        t          |j                  z
             dS )	zLTest the cursors that keep track of where the prompt begins and
        endsprompt>rD   	   zline
r2   T)before_promptN)r   _promptrG   documentsetMaximumBlockCountrK   _append_plain_text_show_promptr   
blockCount_prompt_pos_get_end_pos_append_before_prompt_poslen)r   r   docr|   s       r   test_prompt_cursorsz%TestConsoleWidget.test_prompt_cursors  sB    OO	j!!## 	  $$$q 	+ 	+A  **** 	
))2... 	(8(8999 	4QY7	9 	9 	9 	
X&&&))CMM9	; 	; 	;4QY7	9 	9 	9 	
(8(89994QY7	9 	9 	9 	
V4888(8(89994QY7	9 	9 	9 	9 	9r   c                    t                      }|                    d           d|_        |                                 |j        }t
          j                                        }|                                }|	                    |d           |
                                 |                    |           |                                 t          j        |t          j        j        t          j        j                   |                                                                }|                     |d           |                                 t          j        |t          j        j        t          j        j                   |                                                                }|                     |d           d S )NHeader
r   zif:
    passzif:
>     passzHeader
prompt>if:
>     pass)r   r   r   r   rG   r   r   r   _get_cursor_insert_plain_text_into_bufferclearSelectionsetTextCursorselect_all_smartr   r.   r   r/   Key_Cra   	clipboardr   r   )r   r   r4   appr   copieds         r   test_select_allz!TestConsoleWidget.test_select_all  sb   OO	Z(((		*$--//	((AAAf%%% 	
w	1JKKK%%''"3444 	
w	1JKKK%%''"BCCCCCr   darwinzFails on macOSr   c                 t   t                      }|                    d           d|_        |                                 t          j                                        }|j        }|                    d           | 	                    |
                                d           |                    d           |                                }|                    |                                dz
             |                    |           t          j        |t"          j        j        t"          j        j                   | 	                    |
                                d           |                    d           |                                                    d           t          j        |t"          j        j        t"          j        j                   | 	                    |
                                d           | 	                    |                                                                d	           |                    d           |                                                    d
           t          j        |t"          j        j        t"          j        j                   | 	                    |
                                d           | 	                    |                                                                d	           |                    d           |                                                    d           t          j        |t"          j        j        t"          j        j                   | 	                    |
                                d           | 	                    |                                                                d           | 	                    |                                                    d                                          d           | 	                    |                                                    d	                                          d           | 	                    |                                                    d                                          d           |                    d           |                                                    d           t          j        |t"          j        j        t"          j        j                   | 	                    |
                                d           |                    d           t          j        |t"          j        j        t"          j        j                   | 	                    |
                                d           t          j        |t"          j        j        t"          j        j                   t          j        |t"          j        j        t"          j        j                   | 	                    |
                                d           t          j        |t"          j        j        t"          j        j                   | 	                    |
                                d           t          j        |t"          j        j        t"          j        j                   | 	                    |
                                d           |                    d           |                                }|                    d           |                    |           t          j        |t"          j        j        t"          j        j                   | 	                    |
                                d           t          j        |t"          j        j        t"          j        j                   | 	                    |
                                d           t          j        |t"          j        j        t"          j        j                   | 	                    |
                                d           |                    d           |                                }|                    d           |                    |           t          j        |t"          j        j        t"          j        j                   | 	                    |
                                d           |                    d           |                                }|                    d            |                    |           t          j        |t"          j        j                   | 	                    |                                                                d!           t          j        |t"          j        j                   | 	                    |                                                                d            d"S )#z,Test the event handling code for keypresses.r   r   z
test inputr   ztest inztest input zpasted textztest input pasted textrB   z    pasted textzline1
line2
line3ztest input line1
line2
line3   r
   zprompt>test input line1z> line2z> line3z        If 1:
        passz;foo = ['foo', 'foo', 'foo',    
       'bar', 'bar', 'bar']z6foo = ['foo', 'foo', 'foo',    
       'bar', 'bar', 'z(foo = ['foo', 'foo', 'foo',    
       'z foo = ['foo', 'foo', 'foo',    
zfoo = ['foo', 'foo', 'foo',#   z7foo = ['foo', 'foo', ',    
       'bar', 'bar', 'bar']z1foo = ['foo', 'foo', 
       'bar', 'bar', 'bar']z)foo = ['foo', 'foo', 'bar', 'bar', 'bar']0   z4foo = ['foo', 'foo', 'foo',    
'bar', 'bar', 'bar']zline 1
line 2
line 3rA      N) r   r   r   r   r   r   r   rG   _set_input_bufferr   _get_input_buffer
textCursorsetPositionpositionr   r   r.   r   r/   Key_Kra   r   setTextKey_Vr   r   findBlockByNumberr   rb   
Key_Delete	Key_Rightrl   )r   r   r   r4   rj   s        r   test_keypressesz!TestConsoleWidget.test_keypresses  s    OO	Z(((		$--//* 	
L))),,..=== 	
L)))  	ajjllQ&'''a   w	1JKKK,,..	::: 	
M***...w	1JKKK,,..0HIII))++6688!<<< 	
M*** 1222w	1JKKK,,..0HIII))++6688!<<< 	
M*** 5666w	1JKKK,,..9	; 	; 	;))++6688!<<<))++==a@@EEGG2	4 	4 	4))++==a@@EEGG"	$ 	$ 	$))++==a@@EEGG"	$ 	$ 	$ 	
F### 9:::w	1JKKK,,..2	4 	4 	4 	
 : 	; 	; 	;w	 7y0	2 	2 	2,,..3	5 	5 	5 	w	 7y0	2 	2 	2w	 7y0	2 	2 	2,,..%	' 	' 	' 	w	 7y0	2 	2 	2,,..	 	 	 	w	 7y0	2 	2 	2,,..6	8 	8 	8 	
 : 	; 	; 	;  	ba   w	 4y0	2 	2 	2,,..8	: 	: 	: 	w	 4y0	2 	2 	2,,..8	: 	: 	: 	w	 4y0	2 	2 	2,,..D	F 	F 	F	 : 	; 	; 	;  	ba   w	 4y0	2 	2 	2,,..1	3 	3 	3
 	
 % 	& 	& 	&   	ba   w	 3444++--6688"===w	 2333++--6688"=====r   c                    t                      }|                    d           d|_        |                                 |j        }|                    d           |                                }|                                }|                    d           |                    |t          j
        j                   |                    |           t          j        |t          j        j                   |                     |                                d           |                    d           |                                }|                                }|                    d           |                    |t          j
        j                   |                    |           t          j        |t          j        j                   |                     |                                d           |                    d           |                                }|                                }|                    d           |                    |t          j
        j                   |                    |           t          j        |t          j        j                   |                     |                                d	           d
S )z;Test the event handling code for indent/dedent keypresses .r   r   r   zIf 1:
    passr   z If 2:
     passz    If 2:
        passz    If 3:
        passzIf 3:
    passN)r   r   r   r   rG   r   r   r   r   r   r   
KeepAnchorr   r   r.   r   r/   Key_Tabr   r   Key_Backtab)r   r   r4   rj   poss        r   test_indentzTestConsoleWidget.test_indente  sV   OO	Z(((		* 	
B  JJLL	-...	c5,7888a   w	 1222,,../HIII 	
B  JJLL	/000	c5,7888a   w	 1222,,../HIII 	
B  JJLL	5666	c5,7888a   w	 5666,,../@AAAAAr   c           	          G fddt                     }t                      }|                                }fd|_         |            |_        t                      g |                    dd           |                     dg           g |                    t          t                    t          dd	
                               | 	                    |d           |                     g            t                      |                    dd           |                     dg           g |                    t          t                    t          dd
                               |                     dg           g | 	                    |d           t                      |                    dd           |                     dg           g | 	                    |d           |
                                 | 	                    |d           |                    t          t                    t          dd
                               |                     g            d S )Nc                       e Zd Z fdZdS )9TestConsoleWidget.test_complete.<locals>.TestKernelClientc                 2                         |           S r   append)r   sourcecallsmsg_ids     r   is_completezETestConsoleWidget.test_complete.<locals>.TestKernelClient.is_complete  s    V$$$r   N__name__
__module____qualname__r  )r  r  s   r   TestKernelClientr	    s3               r   r  c                  .                         |           S r   r  )argsr  s    r   r#   z1TestConsoleWidget.test_complete.<locals>.<lambda>  s    5<<#5#5 r   thingTinteractive)r  
incompletez!!!)statusindent)parent_headercontentu   thing > !!!elsecompletez###)r   Fu   thing > !!!else doneu   thing > !!!else  > )objectr   r   _executekernel_clientr`   r   _handle_is_complete_replydictr   _trigger_is_complete_callback)r   r  r   r   r  r  s       @@r   test_completezTestConsoleWidget.test_complete  s   	 	 	 	 	 	 	 	v 	 	 	 OO%%''5555
**,, 	
		't	,,,	***	##t6222\%@@@B B B	C 	C 	C 	v'9:::### 			&d	+++)))	##t6222Z>>>@ @ @	A 	A 	A 	 1222v'CDDD 			&d	+++)))v'CDDD	'')))v'KLLL 	
##t6222Z>>>@ @ @	A 	A 	A 	#####r   c                      G fddt                     }g t                      }|                    d           d|_        |                                  |            |_        d                    ddg          }|                    |           |                    d	           d
gk    sJ g d                    ddg          }|                    |           |                    d	           dgk    sJ dS )z6Test that is_complete is working correctly for Python.c                       e Zd Z fdZdS )CTestConsoleWidget.test_complete_python.<locals>.TestIPyKernelClientc                 x    t                      }|                    |          }                    |           d S r   )r   check_completer  )r   r  tmr.  	responsess       r   r  zOTestConsoleWidget.test_complete_python.<locals>.TestIPyKernelClient.is_complete  s;    '))!#!2!26!:!:  00000r   Nr  )r0  s   r   TestIPyKernelClientr,    s.        1 1 1 1 1 1 1r   r1  r   r   
zif True:z	    a = 1Tr  )r  r   z    a = 1

)r!  NN)	r#  r   r   r   r   r%  joinr   r`   )r   r1  r   rQ   r0  s       @r   test_complete_pythonz&TestConsoleWidget.test_complete_python  s7   	1 	1 	1 	1 	1 	1 	1& 	1 	1 	1 	OO	Z(((		--// yy*k233	D!!!			d	###.///// 	yy*o677	D!!!			d	###/0000000r   N)r  r  r  classmethodr   r   r   r   r   r   r   r   r   pytestmarkskipifsysplatformr   r  r)  r4   r   r   r   r   2  s+        2 2 [2 & & [&
* * *
" " "(" " "2 :  :  :DB B B(9 (9 (9TD D D4 [09IJJ~> ~> KJ~>D%B %B %BN/$ /$ /$b1 1 1 1 1r   r   )!osunittestr9  r   r6  qtpyr   r   r   qtpy.QtTestr   qtconsole.console_widgetr   qtconsole.qtconsoleappr	   r   r   IPython.core.inputtransformer2r   rI   fixturer   r7  parametrizerT   rd   rm   r~   r8  namer   TestCaser   r;  r   r   <module>rG     sa   				  



        ) ) ) ) ) ) ) ) ) )       2 2 2 2 2 2 6 6 6 6 6 6       = = = = = =     dE] e. e.  e.P 7 7 7@ ? ? ?B 0+ 0+ 0+f BGtO,CDD& & ED &R J'GHHf1 f1 f1 f1 f1) f1 f1 IHf1 f1 f1r   