HEX
Server: Apache
System: Linux p3plzcpnl506847.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: slfopp7cb1df (5698090)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/python38/lib/python3.8/idlelib/idle_test/__pycache__/test_config_key.cpython-38.pyc
U

�i�_�%�@s�dZddlmZddlmZddlZddlmZddlmZm	Z	ddl
mZddlm
Z
ejZGd	d
�d
ej�ZGdd�dej�ZGd
d�dej�ZGdd�dej�ZGdd�dej�Zedkr�ejdd�dS)z�Test config_key, coverage 98%.

Coverage is effectively 100%.  Tkinter dialog is mocked, Mac-only line
may be skipped, and dummy function in bind test should not be called.
Not tested: exit with 'self.advanced or self.keys_ok(keys)) ...' False.
�)�
config_key)�requiresN)�mock)�Tk�TclError)�Func)�	Mbox_funcc@s�eZdZdZGdd�de�Zedd��Zedd��Zdd	�Z	d
d�Z
dd
�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�ZdS)�ValidationTestz.Test validation methods: ok, keys_ok, bind_ok.c@s eZdZdd�Ze�Ze�ZdS)zValidationTest.ValidatorcOs,tjj|f|�|�Gdd�d�}||_dS)Nc@seZdZe�ZdS)z:ValidationTest.Validator.__init__.<locals>.list_keys_finalN)�__name__�
__module__�__qualname__r�get�rr�@/opt/python38/lib/python3.8/idlelib/idle_test/test_config_key.py�list_keys_finalsr)r�
GetKeysDialog�__init__r��self�args�kwargsrrrrrsz!ValidationTest.Validator.__init__N)r
rrrr�
get_modifiersr�	showerrorrrrr�	ValidatorsrcCsDtd�t�|_|j��dgddgg}|j|jdd|dd�|_dS)	N�gui�	<Key-F12>�<Control-Key-x>�<Control-Key-X>�Title�<<Test>>T�Z_utest)rr�root�withdrawr�dialog)�clsZkeylistrrr�
setUpClasss
�zValidationTest.setUpClasscCs*|j��|j��|j��|`|`dS�N�r#�cancelr!Zupdate_idletasksZdestroy�r$rrr�
tearDownClass(s


zValidationTest.tearDownClasscCsd|jj_dS)N�)r#r�message�rrrr�setUp/szValidationTest.setUpcCs>|jj�d�|j��|�|jjd�|�|jjjd�dS)N� r+zNo key specified.)r#�
key_string�set�ok�assertEqual�resultrr,r-rrr�
test_ok_empty4s
zValidationTest.test_ok_emptycCsJ|jj�d�d|jjj_|j��|�|jjd�|�|jjj	d�dS)N�	<Key-F11>�F11r+)
r#r0r1rr
r4r2r3rr,r-rrr�test_ok_good:s

zValidationTest.test_ok_goodcCs(|�|j�d��|�d|jjj�dS)Nz<Control-ShiftzMissing the final)�assertFalser#�keys_ok�assertInrr,r-rrr�test_keys_no_endingAsz"ValidationTest.test_keys_no_endingcCs4d|jjj_|�|j�d��|�d|jjj�dS)N�Az<Key-A>zNo modifier)	r#rr
r4r9r:r;rr,r-rrr�test_keys_no_modifier_badEsz(ValidationTest.test_keys_no_modifier_badcCs4d|jjj_|�|j�d��|�|jjjd�dS)Nr7r6r+)	r#rr
r4�
assertTruer:r3rr,r-rrr�test_keys_no_modifier_okJsz'ValidationTest.test_keys_no_modifier_okcCsJd|jjj_dg|jj_|�|j�d��|�d|jjj	�g|jj_dS)N�a�Shiftz<a>zshift modifier)
r#rr
r4rr9r:r;rr,r-rrr�test_keys_shift_badOs
z"ValidationTest.test_keys_shift_badc
Cs�gddfdgddfdgddffD]`\}}}|j|||d��@||jjj_||jj_|�|j�|��|�d	|jj	j
�W5QRXq g|jj_dS)
NZF12r�Control�xr�Xr)�m�f�szalready in use)ZsubTestr#rr
r4rr9r:r;rr,)rZmods�final�seqrrr�
test_keys_dupVs

�
zValidationTest.test_keys_dupcCs(|�|j�d��|�|jjjd�dS)Nz<Control-Shift-Key-a>r+)r?r#�bind_okr3rr,r-rrr�test_bind_okaszValidationTest.test_bind_okcCs(|�|j�d��|�d|jjj�dS)Nz<Control-Shift>znot accepted)r9r#rMr;rr,r-rrr�test_bind_not_okeszValidationTest.test_bind_not_okN)r
rr�__doc__�gkdr�classmethodr%r*r.r5r8r<r>r@rCrLrNrOrrrrr	s 	

r	c@s0eZdZdZedd��Zedd��Zdd�ZdS)	�ToggleLevelTestz.Test toggle between Basic and Advanced frames.cCs4td�t�|_|j��t|jddgdd�|_dS�NrrrTr �rrr!r"rQr#r)rrrr%ms
zToggleLevelTest.setUpClasscCs*|j��|j��|j��|`|`dSr&r'r)rrrr*ts


zToggleLevelTest.tearDownClasscs�|j��fdd�}|��j�|�d�jd�|�\}}|�||����|��j�|�d�jd�|�\}}|�||��j��|��j�|�d�jd�|�\}}|�||�dS)Ncs<t�j���D]$\}}|jdkr$|}|jdkr|}q||fS)z�Get the stack order of the children of the frame.

            winfo_children() stores the children in stack order, so
            this can be used to check whether a frame is above or
            below another one.
            Zkeyseq_basicZkeyseq_advanced)�	enumerate�frameZwinfo_children�_name)�indexZchild�basic�advanced�r#rr�
stackorder~s

z5ToggleLevelTest.test_toggle_level.<locals>.stackorderZAdvanced�text�Basic)	r#r9r[r;Zbutton_levelZ
assertGreaterZtoggle_levelr?�invoke)rr]rZr[rr\r�test_toggle_level{s 



z!ToggleLevelTest.test_toggle_levelN)r
rrrPrRr%r*rarrrrrSjs

rSc@steZdZdZGdd�de�Zedd��Zedd��Zdd	�Z	d
d�Z
ej�
ed�d
d��Zej�
ed�dd��ZdS)�KeySelectionTestz#Test selecting key on Basic frames.cs*eZdZ�fdd�Zdd�Ze�Z�ZS)zKeySelectionTest.Basiccs&t�j||�Gdd�d�}||_dS)Nc@seZdZe�Ze�Ze�ZdS)z8KeySelectionTest.Basic.__init__.<locals>.list_keys_finalN)r
rrrr
Zselect_clearZyviewrrrrr�sr)�superrrr��	__class__rrr�szKeySelectionTest.Basic.__init__cCsdddg|_ddi|_dS)N�fooZbar�BAZZZZZ)�	modifiersZmodifier_labelr-rrr�set_modifiers_for_platform�sz1KeySelectionTest.Basic.set_modifiers_for_platform)r
rrrrirr�
__classcell__rrrdrr_�sr_cCs6td�t�|_|j��|j|jddgdd�|_dSrT)rrr!r"r_r#r)rrrr%�s
zKeySelectionTest.setUpClasscCs*|j��|j��|j��|`|`dSr&r'r)rrrr*�s


zKeySelectionTest.tearDownClasscCs|j��dSr&)r#Z
clear_key_seqr-rrrr.�szKeySelectionTest.setUpcCsl|j}|j}|j}|jd��||�dg�|jd��||�ddg�|jd��||�dg�dS)Nrfrg)r#rr3Zmodifier_checkbuttonsr`)rr#Zgm�eqrrr�test_get_modifiers�sz#KeySelectionTest.test_get_modifiersrcCs�|j}|j}|jj}|j}d|j_g|_|��||�d�dg|_|��||�d�d|j_ddg|_|��||�d�dS)NrAz<Key-a>Zmymodz
<mymod-Key-a>r+�testz<mymod-test>)r#rr0r
r3r4�return_valueZbuild_key_string�rZmock_modifiersr#�key�stringrkrrr�test_build_key_string�s
z&KeySelectionTest.test_build_key_stringcCsB|j}|j}|jj}|j}dg|_d|j_|��||�d�dS)NrB�{z<Shift-Key-braceleft>)r#rr0r
r3rnr4Zfinal_key_selectedrorrr�test_final_key_selected�sz(KeySelectionTest.test_final_key_selectedN)r
rrrPrQr_rRr%r*r.rlrZpatch�objectrrrtrrrrrb�s



rbc@s0eZdZdZedd��Zedd��Zdd�ZdS)	�
CancelTestz'Simulate user clicking [Cancel] button.cCs4td�t�|_|j��t|jddgdd�|_dSrTrUr)rrrr%�s
zCancelTest.setUpClasscCs*|j��|j��|j��|`|`dSr&r'r)rrrr*�s


zCancelTest.tearDownClassc	CsR|�|j��d�|jj��|�t��|j��W5QRX|�|jjd�dS)NZToplevelr+)r3r#Zwinfo_classZ
button_cancelr`ZassertRaisesrr4r-rrr�test_cancels
zCancelTest.test_cancelN)r
rrrPrRr%r*rwrrrrrv�s

rvc@seZdZdZdd�ZdS)�
HelperTestz#Test module level helper functions.cCs�tj}|j}||dg�d�||dddg�d�||ddg�d�||dddg�d�||ddddg�d�||dg�d�||d	dg�d
�dS)N�qzKey-qrDZAltrBzKey-QzPage Upz	Key-Prior�*zKey-asterisk)rZ
translate_keyr3)r�trrkrrr�test_translate_keyszHelperTest.test_translate_keyN)r
rrrPr|rrrrrxsrx�__main__�)�	verbosity)rPZidlelibrZtest.supportrZunittestr�tkinterrrZidlelib.idle_test.mock_idlerZidlelib.idle_test.mock_tkrrrQZTestCaser	rSrbrvrxr
�mainrrrr�<module>sW7R