HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/idlelib/idle_test/__pycache__/test_config_key.cpython-310.pyc
o

�i�,�@s�dZddlmZddlmZddlZddlmZddlmZm	Z	ddl
mZddlm
Z
Gd	d
�d
ej�ZGdd�dej�ZGd
d�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Zedkrwejdd�dSdS)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�dej�Zedd��Zedd��Z	dd	�Z
d
d�Zdd
�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�ZdS)�ValidationTestz.Test validation methods: ok, keys_ok, bind_ok.cs(eZdZ�fdd�Ze�Ze�Z�ZS)zValidationTest.Validatorc�*t�j|i|��Gdd�d�}||_dS)Nc@seZdZe�ZdS)z:ValidationTest.Validator.__init__.<locals>.list_keys_finalN)�__name__�
__module__�__qualname__r�get�rr�>/usr/local/lib/python3.10/idlelib/idle_test/test_config_key.py�list_keys_finals
r��super�__init__r��self�args�kwargsr��	__class__rrrs
z!ValidationTest.Validator.__init__)	rrr
rr�
get_modifiersr�	showerror�
__classcell__rrrr�	ValidatorsrcCs>td�t�|_|j��dgddgg}|�|jd|�|_dS)N�gui�	<Key-F12>�<Control-Key-x>�<Control-Key-X>�<<Test>>)rr�root�withdrawr�dialog)�clsZkeylistrrr�
setUpClasss

zValidationTest.setUpClasscC� |`|j��|j��|`dS�N�r&r$�update_idletasks�destroy�r'rrr�
tearDownClass%�

zValidationTest.tearDownClasscCsd|jj_dS)N�)r&r�message�rrrr�setUp,�zValidationTest.setUpcCs>|jj�d�|j��|�|jjd�|�|jjjd�dS)N� r1zNo key specified.)r&�
key_string�set�ok�assertEqual�resultrr2r3rrr�
test_ok_empty1s
zValidationTest.test_ok_emptycCsJ|jj�d�d|jjj_|j��|�|jjd�|�|jjj	d�dS)N�	<Key-F11>�F11r1)
r&r7r8rrr;r9r:rr2r3rrr�test_ok_good7s

zValidationTest.test_ok_goodcC�(|�|j�d��|�d|jjj�dS)Nz<Control-ShiftzMissing the final)�assertFalser&�keys_ok�assertInrr2r3rrr�test_keys_no_ending>�z"ValidationTest.test_keys_no_endingcCs4d|jjj_|�|j�d��|�d|jjj�dS)N�Az<Key-A>zNo modifier)	r&rrr;rArBrCrr2r3rrr�test_keys_no_modifier_badB�z(ValidationTest.test_keys_no_modifier_badcCs4d|jjj_|�|j�d��|�|jjjd�dS)Nr>r=r1)	r&rrr;�
assertTruerBr:rr2r3rrr�test_keys_no_modifier_okGrHz'ValidationTest.test_keys_no_modifier_okcCsJd|jjj_dg|jj_|�|j�d��|�d|jjj	�g|jj_dS)N�a�Shiftz<a>zshift modifier)
r&rrr;rrArBrCrr2r3rrr�test_keys_shift_badLs
z"ValidationTest.test_keys_shift_badc	Cs�gddfdgddfdgddffD]:\}}}|j|||d��%||jjj_||jj_|�|j�|��|�d	|jj	j
�Wd�n1sEwYqg|jj_dS)
NZF12r �Control�xr!�Xr")�m�f�szalready in use)ZsubTestr&rrr;rrArBrCrr2)rZmods�final�seqrrr�
test_keys_dupSs

�
��zValidationTest.test_keys_dupcCs(|�|j�d��|�|jjjd�dS)Nz<Control-Shift-Key-a>r1)rIr&�bind_okr:rr2r3rrr�test_bind_ok^rEzValidationTest.test_bind_okcCr@)Nz<Control-Shift>znot accepted)rAr&rWrCrr2r3rrr�test_bind_not_okbrEzValidationTest.test_bind_not_okN)rrr
�__doc__r�GetKeysFramer�classmethodr(r/r4r<r?rDrGrJrMrVrXrYrrrrr	s"	

r	c@�0eZdZdZedd��Zedd��Zdd�ZdS)	�ToggleLevelTestz.Test toggle between Basic and Advanced frames.cCs0td�t�|_|j��t�|jdg�|_dS�Nrr#)rrr$r%rr[r&r.rrrr(j�
zToggleLevelTest.setUpClasscCr)r*r+r.rrrr/qr0zToggleLevelTest.tearDownClasscs�|j��fdd�}|��j�|�d�jd�|�\}}|�||����|��j�|�d�jd�|�\}}|�||��j��|��j�|�d�jd�|�\}}|�||�dS)Ncs:t����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)�	enumerateZwinfo_children�_name)�index�child�basic�advanced�r&rr�
stackorder{s

�z5ToggleLevelTest.test_toggle_level.<locals>.stackorderZAdvanced�text�Basic)	r&rArfrCZbutton_levelZ
assertGreaterZtoggle_levelrI�invoke)rrhrerfrrgr�test_toggle_levelxs 



z!ToggleLevelTest.test_toggle_levelN)rrr
rZr\r(r/rlrrrrr^gs

r^c@szeZdZdZGdd�dej�Zedd��Zedd��Z	dd	�Z
d
d�Zej
�ejd�d
d��Zej
�ejd�dd��ZdS)�KeySelectionTestz#Test selecting key on Basic frames.cs*eZdZ�fdd�Zdd�Ze�Z�ZS)zKeySelectionTest.Basiccr
)Nc@seZdZe�Ze�Ze�ZdS)z8KeySelectionTest.Basic.__init__.<locals>.list_keys_finalN)rrr
rrZselect_clearZyviewrrrrr�s
rrrrrrr�s
zKeySelectionTest.Basic.__init__cCsgd�|_ddi|_dS)N)�foo�bar�BAZrpZZZZ)�	modifiersZmodifier_labelr3rrr�set_modifiers_for_platform�s
z1KeySelectionTest.Basic.set_modifiers_for_platform)rrr
rrrrrrrrrrrj�srjcCs0td�t�|_|j��|�|jdg�|_dSr_)rrr$r%rjr&r.rrrr(�r`zKeySelectionTest.setUpClasscCr)r*r+r.rrrr/�r0zKeySelectionTest.tearDownClasscCs|j��dSr*)r&Z
clear_key_seqr3rrrr4�r5zKeySelectionTest.setUpcCsl|j}|j}|j}|jd��||�dg�|jd��||�ddg�|jd��||�dg�dS)Nrnrp)r&rr:Zmodifier_checkbuttonsrk)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)NrKz<Key-a>Zmymodz
<mymod-Key-a>r1�testz<mymod-test>)r&rr7rr:r;�return_valueZbuild_key_string�rZmock_modifiersr&�key�stringrsrrr�test_build_key_string�s
z&KeySelectionTest.test_build_key_stringcCsB|j}|j}|jj}|j}dg|_d|j_|��||�d�dS)NrL�{z<Shift-Key-braceleft>)r&rr7rr:rvr;Zfinal_key_selectedrwrrr�test_final_key_selected�sz(KeySelectionTest.test_final_key_selectedN)rrr
rZrr[rjr\r(r/r4rtr�patch�objectrzr|rrrrrm�s


rmc@�@eZdZdZedd��Zedd��Zej�	e
jd�dd��Zd	S)
�CancelWindowTestz'Simulate user clicking [Cancel] button.cC�6td�t�|_|j��tj|jddgdd�|_dS�NrZTitler#T)Z_utest�rrr$r%rZ
GetKeysWindowr&r.rrrr(��
�zCancelWindowTest.setUpClasscC�*|j��|`|j��|j��|`dSr*�r&�cancelr$r,r-r.rrrr/��



zCancelWindowTest.tearDownClassr9cCsn|�|j��d�|jj��|�t��
|j��Wd�n1s$wY|�|jjd�|��dS)N�Toplevelr1)	r:r&�winfo_classZ
button_cancelrk�assertRaisesrr;Zassert_not_called�rZ
mock_frame_okrrr�test_cancels�zCancelWindowTest.test_cancelN)
rrr
rZr\r(r/rr}r~rr[r�rrrrr���

r�c@r)
�OKWindowTestz#Simulate user clicking [OK] button.cCr�r�r�r.rrrr(r�zOKWindowTest.setUpClasscCr�r*r�r.rrrr/r�zOKWindowTest.tearDownClassr9cCs^|�|j��d�|jj��|�t��
|j��Wd�n1s$wY|��dS)Nr�)r:r&r�Z	button_okrkr�rZ
assert_calledr�rrr�test_ok s�zOKWindowTest.test_okN)
rrr
rZr\r(r/rr}r~rr[r�rrrrr�
r�r�c@r])	�WindowResultTestzTest window result get and set.cCr�r�r�r.rrrr(,r�zWindowResultTest.setUpClasscCr�r*r�r.rrrr/4r�zWindowResultTest.tearDownClasscCsr|j}|j}d|_||jd�||jjd�d|_||jd�||jjd�d|j_||jd�||jjd�dS)Nr1rorn)r&r:r;�frame)rr&rsrrr�test_result<szWindowResultTest.test_resultN)rrr
rZr\r(r/r�rrrrr�)s

r�c@seZdZdZdd�ZdS)�
HelperTestz#Test module level helper functions.cCs�tj}|j}||dg�d�||dddg�d�||ddg�d�||dddg�d�||dgd��d�||dg�d	�||d
dg�d�dS)N�qzKey-qrN�AltrLzKey-Q)rNr�rLzPage Upz	Key-Prior�*zKey-asterisk)rZ
translate_keyr:)r�trrsrrr�test_translate_keyPszHelperTest.test_translate_keyN)rrr
rZr�rrrrr�Msr��__main__�)�	verbosity)rZZidlelibrZtest.supportrZunittestr�tkinterrrZidlelib.idle_test.mock_idlerZidlelib.idle_test.mock_tkrZTestCaser	r^rmr�r�r�r�r�mainrrrr�<module>s$V7R$�