ó
    Ö›‘hu  ã                  óÂ   • S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	J
r
JrJr  SSKJr   " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      rg)zJ
Tests for the insults windowing module, L{twisted.conch.insults.window}.
é    )Úannotations)ÚCallable)ÚServerProtocol)ÚScrolledAreaÚ	SelectionÚ
TextOutputÚ	TopWindowÚWidget)ÚTestCasec                  ó"   • \ rS rSrSrSS jrSrg)ÚTopWindowTestsé   z:
Tests for L{TopWindow}, the root window container class.
c                óŽ  ^• / m/ n[        U4S jUR                  5      nU R                  T/ 5        U R                  U/ 5        UR                  5         U R                  T/ 5        U R                  [	        U5      S5        UR                  5         U R                  T/ 5        U R                  [	        U5      S5        UR                  5       " 5         U R                  [	        T5      S5        U R                  U/ 5        UR                  5         U R                  [	        T5      S5        U R                  [	        U5      S5        g)z|
Verify that L{TopWindow.repaint} schedules an actual paint to occur
using the scheduling object passed to its initializer.
c                 ó&   >• T R                  S 5      $ ©N)Úappend)Úpaintss   €ÚbC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/conch/test/test_window.pyÚ<lambda>Ú5TopWindowTests.test_paintScheduling.<locals>.<lambda>   s   ø€  §¡¨tÔ!4ó    é   N)r	   r   ÚassertEqualÚrepaintÚlenÚpop)ÚselfÚ	scheduledÚrootr   s      @r   Útest_paintSchedulingÚ#TopWindowTests.test_paintScheduling   s  ø€ ð
  ˆØ02ˆ	ÜÔ4°i×6FÑ6FÓGˆð 	×Ñ˜ Ô$Ø×Ñ˜ BÔ'ð 	�‰ŒØ×Ñ˜ Ô$Ø×Ñœ˜Y›¨Ô+ð 	�‰ŒØ×Ñ˜ Ô$Ø×Ñœ˜Y›¨Ô+ð 	�‰ŒÔØ×Ñœ˜V› aÔ(Ø×Ñ˜ BÔ'ð 	�‰ŒØ×Ñœ˜V› aÔ(Ø×Ñœ˜Y›¨Õ+r   © N©ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r    Ú__static_attributes__r"   r   r   r   r      s   † ñ÷!,r   r   c                  ó"   • \ rS rSrSrSS jrSrg)ÚScrolledAreaTestsé<   z‹
Tests for L{ScrolledArea}, a widget which creates a viewport containing
another widget and can reposition that viewport using scrollbars.
c                óÆ   • [        5       n[        U5      nU R                  UR                  UR                  5        U R                  UR                  R                  U5        g)z¬
The parent of the widget passed to L{ScrolledArea} is set to a new
L{Viewport} created by the L{ScrolledArea} which itself has the
L{ScrolledArea} instance as its parent.
N)r   r   ÚassertIsÚparentÚ	_viewport)r   ÚwidgetÚscrolleds      r   Útest_parentÚScrolledAreaTests.test_parentB   sG   € ô “ˆÜ Ó'ˆØ�‰�f—m‘m X×%7Ñ%7Ô8Ø�‰�h×(Ñ(×/Ñ/°Õ:r   r"   Nr#   )r&   r'   r(   r)   r*   r5   r+   r"   r   r   r-   r-   <   s   † ñ÷
	;r   r-   c                  óJ   • \ rS rSrSrS
S jrS
S jrS
S jrS
S jrS
S jr	Sr
g	)ÚSelectionTestséN   z;
Change focused entry in L{Selection} using function keys.
c                óÈ   • [        S5       Vs/ s H  o R                  S5      PM     nn[        US5      U l        SU R                  l        SU R                  l        gs  snf )zW
Create L{ScrolledArea} widget with 10 elements and position selection to 5th element.
é
   ÚasciiNé   )ÚrangeÚencoder   r3   ÚheightÚfocusedIndex)r   Ú_numÚseqs      r   ÚsetUpÚSelectionTests.setUpS   sU   € ô CHÈÄ)ÓLÂ)¸$˜f×,Ñ,¨WÖ5Á)ˆÐLÜ  TÓ*ˆŒØˆ�‰ÔØ#$ˆ�‰Õ ùò Ms   ŽAc                ó¤   • U R                   R                  [        R                  S5        U R	                  U R                   R
                  S5        g)z?
Send DOWN_ARROW to select element just below the current one.
Né   )r3   ÚkeystrokeReceivedr   Ú
DOWN_ARROWr0   rA   ©r   s    r   Útest_selectionDownArrowÚ&SelectionTests.test_selectionDownArrow\   s6   € ð 	�‰×%Ñ%¤n×&?Ñ&?ÀÔFØ�‰�d—k‘k×.Ñ.°Õ2r   c                ó¤   • U R                   R                  [        R                  S5        U R	                  U R                   R
                  S5        g)z=
Send UP_ARROW to select element just above the current one.
Né   )r3   rH   r   ÚUP_ARROWr0   rA   rJ   s    r   Útest_selectionUpArrowÚ$SelectionTests.test_selectionUpArrowc   s6   € ð 	�‰×%Ñ%¤n×&=Ñ&=¸tÔDØ�‰�d—k‘k×.Ñ.°Õ2r   c                ó¤   • U R                   R                  [        R                  S5        U R	                  U R                   R
                  S5        g)zA
Send PGDN to select element one page down (here: last element).
Né	   )r3   rH   r   ÚPGDNr0   rA   rJ   s    r   Útest_selectionPGDNÚ!SelectionTests.test_selectionPGDNj   ó6   € ð 	�‰×%Ñ%¤n×&9Ñ&9¸4Ô@Ø�‰�d—k‘k×.Ñ.°Õ2r   c                ó¤   • U R                   R                  [        R                  S5        U R	                  U R                   R
                  S5        g)z@
Send PGUP to select element one page up (here: first element).
Nr   )r3   rH   r   ÚPGUPr0   rA   rJ   s    r   Útest_selectionPGUPÚ!SelectionTests.test_selectionPGUPq   rW   r   )r3   Nr#   )r&   r'   r(   r)   r*   rD   rK   rP   rU   rZ   r+   r"   r   r   r8   r8   N   s    † ñô%ô3ô3ô3÷3r   r8   c                  ó^   • \ rS rSrSrSS jrSS jrSS jrSS jrSS jr	SS jr
SS	 jrS
rg)ÚRecordingWidgetéy   zb
A dummy Widget implementation to test handling of function keys by
recording keyReceived events.
c                ó>   • [         R                  " U 5        / U l        g r   )r
   Ú__init__Ú	triggeredrJ   s    r   r`   ÚRecordingWidget.__init__   s   € Ü�Š˜ÔØ$&ˆ�r   c                ó:   • U R                   R                  S5        g )NÚF1©ra   r   ©r   Úmodifiers     r   Úfunc_F1ÚRecordingWidget.func_F1ƒ   s   € Ø�‰×Ñ˜dÕ#r   c                ó:   • U R                   R                  S5        g )NÚHOMEre   rf   s     r   Ú	func_HOMEÚRecordingWidget.func_HOME†   ó   € Ø�‰×Ñ˜fÕ%r   c                ó:   • U R                   R                  S5        g )NrI   re   rf   s     r   Úfunc_DOWN_ARROWÚRecordingWidget.func_DOWN_ARROW‰   s   € Ø�‰×Ñ˜lÕ+r   c                ó:   • U R                   R                  S5        g )NrO   re   rf   s     r   Úfunc_UP_ARROWÚRecordingWidget.func_UP_ARROWŒ   s   € Ø�‰×Ñ˜jÕ)r   c                ó:   • U R                   R                  S5        g )NrT   re   rf   s     r   Ú	func_PGDNÚRecordingWidget.func_PGDN�   rn   r   c                ó:   • U R                   R                  S5        g )NrY   re   rf   s     r   Ú	func_PGUPÚRecordingWidget.func_PGUP’   rn   r   )ra   Nr#   )rg   Ústrr$   r%   )r&   r'   r(   r)   r*   r`   rh   rl   rp   rs   rv   ry   r+   r"   r   r   r]   r]   y   s*   † ñô
'ô$ô&ô,ô*ô&÷&r   r]   c                  ó"   • \ rS rSrSrSS jrSrg)ÚWidgetFunctionKeyTestsé–   zF
Call functionKeyReceived with key values from insults.ServerProtocol
c                óŽ   ^ ^• [        5       mS	U U4S jjnU" S5        U" S5        U" S5        U" S5        U" S5        U" S5        g)
zt
L{Widget.functionKeyReceived} dispatches its input, a constant on
ServerProtocol, to a matched C{func_KEY} method.
c                ó´   >• TR                  [        [        U 5      S 5        TR                  U /TR                  5        TR                  R                  5         g r   )ÚfunctionKeyReceivedÚgetattrr   r   ra   Úclear)Úkeyr   r3   s    €€r   ÚcheckOneKeyÚLWidgetFunctionKeyTests.test_functionKeyReceivedDispatch.<locals>.checkOneKey¢   sD   ø€ Ø×&Ñ&¤w¬~¸sÓ'CÀTÔJØ×Ñ˜c˜U F×$4Ñ$4Ô5Ø×Ñ×"Ñ"Õ$r   rd   rk   rI   rO   rT   rY   N)r„   r{   r$   r%   )r]   )r   r…   r3   s   ` @r   Ú test_functionKeyReceivedDispatchÚ7WidgetFunctionKeyTests.test_functionKeyReceivedDispatch›   sI   ù€ ô
 !Ó"ˆ÷	%ð 	%ñ
 	�DÔÙ�FÔÙ�LÔ!Ù�JÔÙ�FÔÙ�FÕr   r"   Nr#   )r&   r'   r(   r)   r*   r‡   r+   r"   r   r   r}   r}   –   s   † ñ÷r   r}   N)r*   Ú
__future__r   Útypingr   Útwisted.conch.insults.insultsr   Útwisted.conch.insults.windowr   r   r   r	   r
   Útwisted.trial.unittestr   r   r-   r8   r]   r}   r"   r   r   Ú<module>rŽ      sb   ðñõ #å å 8÷õ õ ,ô&,�Xô &,ôR;˜ô ;ô$(3�Xô (3ôV&�fô &ô:˜Xõ r   