<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    YI~d%                 @   s   d dl mZ d dlmZ d dlZd dlmZ d dlmZmZ d dl	m
Z
 d dlmZ ejZG dd	 d	ejZG d
d dejZG dd dejZG dd dejZG dd dejZedkrejdd dS )    )
config_key)requiresN)mock)TkTclError)Func)	Mbox_funcc               @   s   e Zd ZG dd deZedd Zedd Zdd Zd	d
 Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )ValidationTestc               @   s    e Zd Zdd Ze Ze ZdS )zValidationTest.Validatorc             O   s,   t jj| f|| G dd d}|| _d S )Nc               @   s   e Zd Ze ZdS )z:ValidationTest.Validator.__init__.<locals>.list_keys_finalN)__name__
__module____qualname__r   get r   r   F/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_config_key.pylist_keys_final   s   r   )r   GetKeysDialog__init__r   )selfargskwargsr   r   r   r   r      s    z!ValidationTest.Validator.__init__N)r
   r   r   r   r   get_modifiersr   	showerrorr   r   r   r   	Validator   s   r   c             C   sD   t d t | _| j  dgddgg}| j| jdd|dd| _d S )	Nguiz	<Key-F12>z<Control-Key-x>z<Control-Key-X>Titlez<<Test>>T)_utest)r   r   rootwithdrawr   dialog)clsZkeylistr   r   r   
setUpClass   s    
zValidationTest.setUpClassc             C   s*   | j   | j  | j  | ` | `d S )N)r   cancelr   update_idletasksdestroy)r   r   r   r   tearDownClass(   s    


zValidationTest.tearDownClassc             C   s   d| j j_d S )N )r   r   message)r   r   r   r   setUp/   s    zValidationTest.setUpc             C   s>   | j jd | j   | | j jd | | j jjd d S )N r%   zNo key specified.)r   
key_stringsetokassertEqualresultr   r&   )r   r   r   r   test_ok_empty4   s    
zValidationTest.test_ok_emptyc             C   sJ   | j jd d| j jj_| j   | | j jd | | j jj	d d S )Nz	<Key-F11>F11r%   )
r   r)   r*   r   r   r-   r+   r,   r   r&   )r   r   r   r   test_ok_good:   s
    
zValidationTest.test_ok_goodc             C   s(   |  | jd | d| jjj d S )Nz<Control-ShiftzMissing the final)assertFalser   keys_okassertInr   r&   )r   r   r   r   test_keys_no_endingA   s    z"ValidationTest.test_keys_no_endingc             C   s4   d| j jj_| | j d | d| j jj d S )NAz<Key-A>zNo modifier)	r   r   r   r-   r1   r2   r3   r   r&   )r   r   r   r   test_keys_no_modifier_badE   s    z(ValidationTest.test_keys_no_modifier_badc             C   s4   d| j jj_| | j d | | j jjd d S )Nr/   z	<Key-F11>r%   )	r   r   r   r-   
assertTruer2   r,   r   r&   )r   r   r   r   test_keys_no_modifier_okJ   s    z'ValidationTest.test_keys_no_modifier_okc             C   sJ   d| j jj_dg| j j_| | j d | d| j jj	 g | j j_d S )NaShiftz<a>zshift modifier)
r   r   r   r-   r   r1   r2   r3   r   r&   )r   r   r   r   test_keys_shift_badO   s
    z"ValidationTest.test_keys_shift_badc          
   C   s   xg ddfdgddfdgddffD ]`\}}}| j |||d@ || jjj_|| jj_| | j| | d	| jj	j
 W d Q R X q"W g | jj_d S )
NZF12z	<Key-F12>Controlxz<Control-Key-x>Xz<Control-Key-X>)mfszalready in use)ZsubTestr   r   r   r-   r   r1   r2   r3   r   r&   )r   Zmodsfinalseqr   r   r   test_keys_dupV   s    


 zValidationTest.test_keys_dupc             C   s(   |  | jd | | jjjd d S )Nz<Control-Shift-Key-a>r%   )r7   r   bind_okr,   r   r&   )r   r   r   r   test_bind_oka   s    zValidationTest.test_bind_okc             C   s(   |  | jd | d| jjj d S )Nz<Control-Shift>znot accepted)r1   r   rE   r3   r   r&   )r   r   r   r   test_bind_not_oke   s    zValidationTest.test_bind_not_okN)r
   r   r   gkdr   classmethodr    r$   r'   r.   r0   r4   r6   r8   r;   rD   rF   rG   r   r   r   r   r	      s   		r	   c               @   s,   e Zd Zedd Zedd Zdd ZdS )ToggleLevelTestc             C   s4   t d t | _| j  t| jddg dd| _d S )Nr   r   z<<Test>>T)r   )r   r   r   r   rH   r   )r   r   r   r   r    m   s    
zToggleLevelTest.setUpClassc             C   s*   | j   | j  | j  | ` | `d S )N)r   r!   r   r"   r#   )r   r   r   r   r$   t   s    


zToggleLevelTest.tearDownClassc                s   | j   fdd}|  j | d jd  | \}}| ||    |  j | d jd  | \}}| ||  j  |  j | d jd  | \}}| || d S )Nc                 s@   x6t  j D ]$\} }|jdkr&| }|jdkr| }qW ||fS )NZkeyseq_basicZkeyseq_advanced)	enumerateframeZwinfo_children_name)indexZchildbasicadvanced)r   r   r   
stackorder~   s    

z5ToggleLevelTest.test_toggle_level.<locals>.stackorderZAdvancedtextBasic)	r   r1   rP   r3   Zbutton_levelZassertGreaterZtoggle_levelr7   invoke)r   rQ   rO   rP   r   )r   r   test_toggle_level{   s     



z!ToggleLevelTest.test_toggle_levelN)r
   r   r   rI   r    r$   rU   r   r   r   r   rJ   j   s   rJ   c               @   sp   e Zd ZG dd deZedd Zedd Zdd Zd	d
 Z	e
jeddd Ze
jeddd ZdS )KeySelectionTestc                   s*   e Zd Z fddZdd Ze Z  ZS )zKeySelectionTest.Basicc                s&   t  j|| G dd d}|| _d S )Nc               @   s   e Zd Ze Ze Ze ZdS )z8KeySelectionTest.Basic.__init__.<locals>.list_keys_finalN)r
   r   r   r   r   Zselect_clearZyviewr   r   r   r   r      s   r   )superr   r   )r   r   r   r   )	__class__r   r   r      s    zKeySelectionTest.Basic.__init__c             C   s   dddg| _ ddi| _d S )NfooZbarBAZZZZZ)	modifiersZmodifier_label)r   r   r   r   set_modifiers_for_platform   s    z1KeySelectionTest.Basic.set_modifiers_for_platform)r
   r   r   r   r\   r   r   __classcell__r   r   )rX   r   rS      s   rS   c             C   s6   t d t | _| j  | j| jddg dd| _d S )Nr   r   z<<Test>>T)r   )r   r   r   r   rS   r   )r   r   r   r   r       s    
zKeySelectionTest.setUpClassc             C   s*   | j   | j  | j  | ` | `d S )N)r   r!   r   r"   r#   )r   r   r   r   r$      s    


zKeySelectionTest.tearDownClassc             C   s   | j   d S )N)r   Zclear_key_seq)r   r   r   r   r'      s    zKeySelectionTest.setUpc             C   sl   | j }|j}| j}|jd   || dg |jd   || ddg |jd   || dg d S )NrY   rZ   )r   r   r,   Zmodifier_checkbuttonsrT   )r   r   Zgmeqr   r   r   test_get_modifiers   s    z#KeySelectionTest.test_get_modifiersr   c             C   s   | j }|j}|jj}| j}d|j_g |_|  || d dg|_|  || d d|j_ddg|_|  || d d S )Nr9   z<Key-a>Zmymodz<mymod-Key-a>r%   Ztestz<mymod-test>)r   r   r)   r   r,   r-   return_valueZbuild_key_string)r   mock_modifiersr   keystringr^   r   r   r   test_build_key_string   s    
z&KeySelectionTest.test_build_key_stringc             C   sB   | j }|j}|jj}| j}dg|_d|j_|  || d d S )Nr:   {z<Shift-Key-braceleft>)r   r   r)   r   r,   r`   r-   Zfinal_key_selected)r   ra   r   rb   rc   r^   r   r   r   test_final_key_selected   s    z(KeySelectionTest.test_final_key_selectedN)r
   r   r   rH   rS   rI   r    r$   r'   r_   r   Zpatchobjectrd   rf   r   r   r   r   rV      s   rV   c               @   s,   e Zd Zedd Zedd Zdd ZdS )
CancelTestc             C   s4   t d t | _| j  t| jddg dd| _d S )Nr   r   z<<Test>>T)r   )r   r   r   r   rH   r   )r   r   r   r   r       s    
zCancelTest.setUpClassc             C   s*   | j   | j  | j  | ` | `d S )N)r   r!   r   r"   r#   )r   r   r   r   r$      s    


zCancelTest.tearDownClassc          	   C   sR   |  | j d | jj  | t | j  W d Q R X |  | jjd d S )NZToplevelr%   )r,   r   Zwinfo_classZbutton_cancelrT   ZassertRaisesr   r-   )r   r   r   r   test_cancel  s
    zCancelTest.test_cancelN)r
   r   r   rI   r    r$   ri   r   r   r   r   rh      s   rh   c               @   s   e Zd Zdd ZdS )
HelperTestc             C   s   t j}| j}||dg d ||dddgd ||ddgd ||dddgd ||ddddgd ||dg d ||d	dgd
 d S )NqzKey-qr<   ZAltr:   zKey-QzPage Upz	Key-Prior*zKey-asterisk)r   Ztranslate_keyr,   )r   trr^   r   r   r   test_translate_key  s    zHelperTest.test_translate_keyN)r
   r   r   rn   r   r   r   r   rj     s   rj   __main__   )	verbosity)Zidlelibr   Ztest.supportr   Zunittestr   Ztkinterr   r   Zidlelib.idle_test.mock_idler   Zidlelib.idle_test.mock_tkr   r   rH   ZTestCaser	   rJ   rV   rh   rj   r
   mainr   r   r   r   <module>   s   W7R