
    
8d                        d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlm	Z	 d dl
mZ d dlmZ ddlmZ  G d d	e          Z eed	e          Zej                            ed
           G d dej                              ZdS )    N)QtCore	QtWidgets)QTest)ConsoleWidget)CompletionWidget   )
no_displayc                       e Zd ZdZd Zd ZdS )TemporaryDirectoryz
    Context manager for tempfile.mkdtemp().
    This class is available in python +v3.2.
    See: https://gist.github.com/cpelley/10e2eeaf60dacc7956bb
    c                 @    t          j                    | _        | j        S N)tempfilemkdtempdir_nameselfs    Flib/python3.11/site-packages/qtconsole/tests/test_completion_widget.py	__enter__zTemporaryDirectory.__enter__   s     (**}    c                 8    t          j        | j                   d S r   )shutilrmtreer   )r   exc_type	exc_value	tracebacks       r   __exit__zTemporaryDirectory.__exit__   s    dm$$$$$r   N)__name__
__module____qualname____doc__r   r    r   r   r   r      s<           % % % % %r   r   zDoesn't work without a display)reasonc                   X    e Zd Zed             Zed             Zd Zd Zd Zd Z	d Z
dS )	TestCompletionWidgetc                     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TestCompletionWidget.setUpClass%   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"TestCompletionWidget.tearDownClass.   s     	##%%%%%r   c                 N    t                      | _        | j        j        | _        dS )z1 Create the main widgets (ConsoleWidget)
        N)r   console_control	text_editr   s    r   setUpzTestCompletionWidget.setUp4   s     %.r   c                     t          | j                  }|                    | j                                        g d           |                     |                                           d S )Nitem1item2item3)r   r1   
show_itemsr3   
textCursor
assertTrue	isVisibler   ws     r   test_droplist_completer_showsz2TestCompletionWidget.test_droplist_completer_shows:   sZ    T\**	T^..002M2M2MNNN&&&&&r   c                 v   t          | j                  }|                    | j                                        g d           t          j        |t          j        j	                   t          j        |t          j        j
                   |                     | j                                        d           d S )Nr6   r9   )r   r1   r:   r3   r;   r   keyClickr   QtKey_PageDown	Key_EnterassertEqualtoPlainTextr>   s     r    test_droplist_completer_keyboardz5TestCompletionWidget.test_droplist_completer_keyboard?   s    T\**	T^..002M2M2MNNNq&)0111q&)-...3355w?????r   c                    t           j        j        }t          | j                  }|                    | j                                        g d           t          j	        |
                                |t          j        dd                     t          j        |
                                |t          j        dd                     t          j        |
                                |t          j        dd                     |                     | j                                        d           |                     |                                           d S )Nr6         )posr7   )r   rC   
LeftButtonr   r1   r:   r3   r;   r   
mouseClickviewportQPointmouseReleasemouseDClickrF   rG   assertFalser=   )r   
leftButtonr?   s      r   !test_droplist_completer_mousepickz6TestCompletionWidget.test_droplist_completer_mousepickF   s   Y)
T\**	T^..002M2M2MNNNzv}R7K7KLLLL1::<<r19M9MNNNN!**,,
b!8L8LMMMM3355w???'''''r   c                    t                      5 }t          j                            |d          t          j                            |d          t          j                            |d          g}|D ]}t          j        |           t          | j                  }|                    | j        	                                |           | 
                    |                                                                d           t          j        |t          j        j                   | 
                    |                                                                d           t          j        |t          j        j                   | 
                    |                                                                d           d d d            d S # 1 swxY w Y   d S )Nzcommon/common1/item1zcommon/common1/item2zcommon/common1/item3z/item1z/item2z/item3)r   ospathjoinmakedirsr   r1   r:   r3   r;   rF   currentItemtextr   rB   r   rC   Key_Down)r   tmpdiritemsitemr?   s        r   test_common_path_completez.TestCompletionWidget.test_common_path_completeS   s   !! 	?VV%;<<V%;<<V%;<<>E  " "D!!!! ..ALL2244e<<<Q]]__1133X>>>N1fi0111Q]]__1133X>>>N1fi0111Q]]__1133X>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   F0GGGN)r   r   r   classmethodr,   r/   r4   r@   rH   rU   ra   r!   r   r   r$   r$   "   s         2 2 [2 & & [&
/ / /' ' '
@ @ @( ( (? ? ? ? ?r   r$   )rW   r   r   unittestpytestqtpyr   r   qtpy.QtTestr   qtconsole.console_widgetr   qtconsole.completion_widgetr    r	   objectr   getattrmarkskipifTestCaser$   r!   r   r   <module>ro      s3   				     " " " " " " " "       2 2 2 2 2 2 8 8 8 8 8 8      % % % % % % % % WX';/1 1  J'GHH>? >? >? >? >?8, >? >? IH>? >? >?r   