+
    üÐju  ã                  óÄ   € R t ^ RIHt ^ RIHt ^ RIHt ^ RIHtH	t	H
t
HtHt ^ RIHt  ! R R]4      t ! R R	]4      t ! R
 R]4      t ! R R]4      t ! R R]4      tR# )zJ
Tests for the insults windowing module, L{twisted.conch.insults.window}.
)Úannotations)ÚCallable)ÚServerProtocol)ÚScrolledAreaÚ	SelectionÚ
TextOutputÚ	TopWindowÚWidget)ÚTestCasec                  ó&   € ] tR t^tRtR R ltRtR# )ÚTopWindowTestsz:
Tests for L{TopWindow}, the root window container class.
c               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚNone© )Úformats   "Ú@/usr/lib/python3/dist-packages/twisted/conch/test/test_window.pyÚ__annotate__ÚTopWindowTests.__annotate__   s   € ÷ !,ñ !, dñ !,ó    c                ó�  a€ . o. p\        V3R lVP                  4      pV P                  S. 4       V P                  V. 4       VP                  4        V P                  S. 4       V P                  \	        V4      ^4       VP                  4        V P                  S. 4       V P                  \	        V4      ^4       VP                  4       ! 4        V P                  \	        S4      ^4       V P                  V. 4       VP                  4        V P                  \	        S4      ^4       V P                  \	        V4      ^4       R# )z|
Verify that L{TopWindow.repaint} schedules an actual paint to occur
using the scheduling object passed to its initializer.
c                 ó&   <€ S P                  R 4      # ©N)Úappend)Úpaintss   €r   Ú<lambda>Ú5TopWindowTests.test_paintScheduling.<locals>.<lambda>   s   ø€  §¡¨tÔ!4r   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   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r&   Ú__static_attributes__r   r   r   r   r      s   † ñ÷!,ñ !,r   r   c                  ó&   € ] tR t^<tRtR R ltRtR# )ÚScrolledAreaTestsz‹
Tests for L{ScrolledArea}, a widget which creates a viewport containing
another widget and can reposition that viewport using scrollbars.
c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚScrolledAreaTests.__annotate__B   s   € ÷ 	;ñ 	;˜Tñ 	;r   c                óÈ   € \        4       p\        V4      pV P                  VP                  VP                  4       V P                  VP                  P                  V4       R# )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   N)r(   r)   r*   r+   r,   r8   r-   r   r   r   r/   r/   <   s   † ñ÷
	;ñ 	;r   r/   c                  óV   € ] tR t^NtRtR R ltR R ltR R ltR R	 ltR
 R lt	Rt
R# )ÚSelectionTestsz;
Change focused entry in L{Selection} using function keys.
c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚSelectionTests.__annotate__S   s   € ÷ %ñ %�tñ %r   c                óÈ   € \        ^
4       Uu. uF  q P                  R4      NK  	  pp\        VR4      V n        ^
V P                  n        ^V P                  n        R# u upi )zW
Create L{ScrolledArea} widget with 10 elements and position selection to 5th element.
ÚasciiN)ÚrangeÚencoder   r6   ÚheightÚfocusedIndex)r#   Ú_numÚseqs   &  r   ÚsetUpÚSelectionTests.setUpS   sU   € ô CHÈÄ)ÓLÁ)¸$˜f×,Ñ,¨WÖ5Á)ˆÐLÜ  TÓ*ˆŒØˆ�‰ÔØ#$ˆ�‰Ö ùò Ms   ŽAc               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r=   \   s   € ÷ 3ñ 3¨ñ 3r   c                ó¦   € V P                   P                  \        P                  R4       V P	                  V P                   P
                  ^4       R# )z?
Send DOWN_ARROW to select element just below the current one.
N)r6   ÚkeystrokeReceivedr   Ú
DOWN_ARROWr3   rC   ©r#   s   &r   Útest_selectionDownArrowÚ&SelectionTests.test_selectionDownArrow\   s6   € ð 	�‰×%Ñ%¤n×&?Ñ&?ÀÔFØ�‰�d—k‘k×.Ñ.°Ö2r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r=   c   s   € ÷ 3ñ 3 tñ 3r   c                ó¦   € V P                   P                  \        P                  R4       V P	                  V P                   P
                  ^4       R# )z=
Send UP_ARROW to select element just above the current one.
N)r6   rJ   r   ÚUP_ARROWr3   rC   rL   s   &r   Útest_selectionUpArrowÚ$SelectionTests.test_selectionUpArrowc   s6   € ð 	�‰×%Ñ%¤n×&=Ñ&=¸tÔDØ�‰�d—k‘k×.Ñ.°Ö2r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r=   j   ó   € ÷ 3ñ 3 Dñ 3r   c                ó¦   € V P                   P                  \        P                  R4       V P	                  V P                   P
                  ^	4       R# )zA
Send PGDN to select element one page down (here: last element).
N)r6   rJ   r   ÚPGDNr3   rC   rL   s   &r   Útest_selectionPGDNÚ!SelectionTests.test_selectionPGDNj   ó6   € ð 	�‰×%Ñ%¤n×&9Ñ&9¸4Ô@Ø�‰�d—k‘k×.Ñ.°Ö2r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r=   q   rU   r   c                ó¦   € V P                   P                  \        P                  R4       V P	                  V P                   P
                  ^ 4       R# )z@
Send PGUP to select element one page up (here: first element).
N)r6   rJ   r   ÚPGUPr3   rC   rL   s   &r   Útest_selectionPGUPÚ!SelectionTests.test_selectionPGUPq   rZ   r   )r6   N)r(   r)   r*   r+   r,   rF   rM   rR   rX   r^   r-   r   r   r   r;   r;   N   s%   † ñõ%õ3õ3õ3÷3ñ 3r   r;   c                  ón   € ] tR t^ytRtR R ltR R ltR R ltR R	 ltR
 R lt	R R lt
R R ltRtR# )ÚRecordingWidgetzb
A dummy Widget implementation to test handling of function keys by
recording keyReceived events.
c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   ÚRecordingWidget.__annotate__   s   € ÷ 'ñ '˜$ñ 'r   c                	ó@   € \         P                  ! V 4       . V n        R # r   )r	   Ú__init__Ú	triggeredrL   s   &r   re   ÚRecordingWidget.__init__   s   € Ü�Š˜ÔØ$&ˆŽr   c               ó    € V ^8„  d   QhRRRR/# ©r   ÚmodifierÚstrr   r   r   )r   s   "r   r   rc   ƒ   s   € ÷ $ñ $ ð $¨ñ $r   c                	ó<   € V P                   P                  R 4       R# )ÚF1N©rf   r   ©r#   rj   s   &&r   Úfunc_F1ÚRecordingWidget.func_F1ƒ   s   € Ø�‰×Ñ˜dÖ#r   c               ó    € V ^8„  d   QhRRRR/# ri   r   )r   s   "r   r   rc   †   ó   € ÷ &ñ & #ð &¨$ñ &r   c                	ó<   € V P                   P                  R 4       R# )ÚHOMENrn   ro   s   &&r   Ú	func_HOMEÚRecordingWidget.func_HOME†   ó   € Ø�‰×Ñ˜fÖ%r   c               ó    € V ^8„  d   QhRRRR/# ri   r   )r   s   "r   r   rc   ‰   s   € ÷ ,ñ ,¨ð ,°ñ ,r   c                	ó<   € V P                   P                  R 4       R# )rK   Nrn   ro   s   &&r   Úfunc_DOWN_ARROWÚRecordingWidget.func_DOWN_ARROW‰   s   € Ø�‰×Ñ˜lÖ+r   c               ó    € V ^8„  d   QhRRRR/# ri   r   )r   s   "r   r   rc   Œ   s   € ÷ *ñ * cð *¨dñ *r   c                	ó<   € V P                   P                  R 4       R# )rQ   Nrn   ro   s   &&r   Úfunc_UP_ARROWÚRecordingWidget.func_UP_ARROWŒ   s   € Ø�‰×Ñ˜jÖ)r   c               ó    € V ^8„  d   QhRRRR/# ri   r   )r   s   "r   r   rc   �   rs   r   c                	ó<   € V P                   P                  R 4       R# )rW   Nrn   ro   s   &&r   Ú	func_PGDNÚRecordingWidget.func_PGDN�   rx   r   c               ó    € V ^8„  d   QhRRRR/# ri   r   )r   s   "r   r   rc   ’   rs   r   c                	ó<   € V P                   P                  R 4       R# )r]   Nrn   ro   s   &&r   Ú	func_PGUPÚRecordingWidget.func_PGUP’   rx   r   )rf   N)r(   r)   r*   r+   r,   re   rp   rv   r{   r   rƒ   r‡   r-   r   r   r   ra   ra   y   s/   † ñõ
'õ$õ&õ,õ*õ&÷&ñ &r   ra   c                  ó&   € ] tR t^–tRtR R ltRtR# )ÚWidgetFunctionKeyTestszF
Call functionKeyReceived with key values from insults.ServerProtocol
c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   Ú#WidgetFunctionKeyTests.__annotate__›   s   € ÷ ñ °$ñ r   c                ó’   a a€ \        4       oR V V3R llpV! R4       V! R4       V! R4       V! R4       V! R4       V! R4       R	# )
zt
L{Widget.functionKeyReceived} dispatches its input, a constant on
ServerProtocol, to a matched C{func_KEY} method.
c               ó    € V ^8„  d   QhRRRR/# )r   Úkeyrk   r   r   r   )r   s   "r   r   ÚMWidgetFunctionKeyTests.test_functionKeyReceivedDispatch.<locals>.__annotate__¢   s   € ÷ 	%ñ 	%˜Sð 	% Tñ 	%r   c                ó¶   <€ SP                  \        \        V 4      R 4       SP                  V .SP                  4       SP                  P                  4        R # r   )ÚfunctionKeyReceivedÚgetattrr   r   rf   Úclear)r�   r#   r6   s   &€€r   ÚcheckOneKeyÚLWidgetFunctionKeyTests.test_functionKeyReceivedDispatch.<locals>.checkOneKey¢   sD   ø€ Ø×&Ñ&¤w¬~¸sÓ'CÀTÔJØ×Ñ˜c˜U F×$4Ñ$4Ô5Ø×Ñ×"Ñ"Ö$r   rm   ru   rK   rQ   rW   r]   N)ra   )r#   r•   r6   s   f @r   Ú test_functionKeyReceivedDispatchÚ7WidgetFunctionKeyTests.test_functionKeyReceivedDispatch›   sI   ù€ ô
 !Ó"ˆ÷	%ñ 	%ñ
 	�DÔÙ�FÔÙ�LÔ!Ù�JÔÙ�FÔÙ�FÖr   r   N)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/   r;   ra   rŠ   r   r   r   Ú<module>rž      sb   ðñõ #å å 8÷õ õ ,ô&,�Xô &,ôR;˜ô ;ô$(3�Xô (3ôV&�fô &ô:˜Xö r   