o
    JAft                     @   s   	 d dl mZ d dlZd dlmZ d dlZd dlmZ d dl	m
Z
 h dZdhZeeB Zdd Zd	d
 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r[ejdd dS dS )    )macosxN)requires)FileList>   cocoacarbonxquartzotherc                   C   s
   t jad S N)r   _tk_typeorig_tktype r   r   4/usr/lib/python3.10/idlelib/idle_test/test_macosx.pysetUpModule   s   
r   c                   C   s
   t t_d S r	   )r   r   r
   r   r   r   r   tearDownModule   s   
r   c                   @   s.   e Zd Z	 edd Zedd Zdd ZdS )InitTktypeTestc                 C   s(   t d t | _| j  tj| _d S )Ngui)r   tkTkrootwithdrawr   platformorig_platformclsr   r   r   
setUpClass   s   

zInitTktypeTest.setUpClassc                 C   s$   | j   | j   | ` | jt_d S r	   )r   update_idletasksdestroyr   r   r   r   r   r   r   tearDownClass"   s   

zInitTktypeTest.tearDownClassc              	   C   sn   	 dt fdtffD ]+\}}| j|d |t_d t_t  | tj| W d    n1 s/w   Y  q	d S )Ndarwinr   )r   )alltypesnontypessubTestr   r   r
   Z_init_tk_typeZassertIn)selfr   typesr   r   r   test_init_sets_tktype)   s   z$InitTktypeTest.test_init_sets_tktypeN)__name__
__module____qualname__classmethodr   r   r$   r   r   r   r   r      s    

r   c                   @   sL   e Zd Z	 ejdfejdfejdfejdffZe	
ddd Zdd	 Zd
S )IsTypeTkTestr   r   r   r   r   zidlelib.macosx._init_tk_typec              	   C   sb   	 d t _| jD ]'\}}| j|d |  | |j |  W d    n1 s)w   Y  qd S )N)func)r   r
   isfuncsr!   
assertTruecalled
reset_mock)r"   Zmockinitr+   whentruer   r   r   test_is_calls_init;   s   
zIsTypeTkTest.test_is_calls_initc              
   C   sp   	 | j D ]1\}}tD ]*}| j|||d |t_||v r| jn| j|  W d    n1 s/w   Y  q
qd S )N)r+   r0   tktype)r,   r   r!   r   r
   r-   ZassertFalse)r"   r+   r0   r2   r   r   r   test_isfuncsE   s   zIsTypeTkTest.test_isfuncsN)r%   r&   r'   r   ZisAquaTkZ
isCarbonTkZ	isCocoaTkZ	isXQuartzr,   mockpatchr1   r3   r   r   r   r   r)   3   s    
	r)   c                   @   s8   e Zd Z	 edd Zedd Zeddd ZdS )		SetupTestc                    s4   t d t | _| j   fdd  | j_d S )Nr   c                    s   d S r	   r   )Ztkpathr+   cmdr   r   r8   W   s    z!SetupTest.setUpClass.<locals>.cmd)r   r   r   r   r   Zcreatecommandr   r   r7   r   r   R   s
   

zSetupTest.setUpClassc                 C   s   | j   | j   | ` d S r	   )r   r   r   r   r   r   r   r   \   s   

zSetupTest.tearDownClasszidlelib.macosx.overrideRootMenuc              	   C   sx   	 | j }t|}tD ]/}| j|d |t_t|| |dv r&| |j |	  W d    n1 s4w   Y  q
d S )N)r2   r*   )
r   r   r   r!   r   r
   ZsetupAppr-   r.   r/   )r"   ZoverrideRootMenur   flistr2   r   r   r   test_setupappb   s   
zSetupTest.test_setupappN)	r%   r&   r'   r(   r   r   r4   r5   r:   r   r   r   r   r6   O   s    
	
r6   __main__   )	verbosity)Zidlelibr   ZunittestZtest.supportr   tkinterr   Zunittest.mockr4   Zidlelib.filelistr   Zmactypesr    r   r   r   ZTestCaser   r)   r6   r%   mainr   r   r   r   <module>   s$    !