
    z%it                        d Z 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z  Zd Zd	 Z G d
 dej"                        Z G d dej"                        Z G d dej"                        Zedk(  r ej,                  d       yy)z%Test macosx, coverage 45% on Windows.    )macosxN)requires)FileList>   cocoacarbonxquartzotherc                  $    t         j                  ay N)r   _tk_typeorig_tktype     Q/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/idle_test/test_macosx.pysetUpModuler      s    //Kr   c                  "    t         t        _        y r   )r   r   r   r   r   r   tearDownModuler      s	    !FOr   c                   6    e Zd ZdZed        Zed        Zd Zy)InitTktypeTestzTest _init_tk_type.c                     t        d       t        j                         | _        | j                  j	                          t
        j                  | _        y )Ngui)r   tkTkrootwithdrawr   platformorig_platformclss    r   
setUpClasszInitTktypeTest.setUpClass   s2    557"OOr   c                     | j                   j                          | j                   j                          | ` | j                  t        _        y r   )r   update_idletasksdestroyr   r   r   r   s    r   tearDownClasszInitTktypeTest.tearDownClass"   s4    !!#H++r   c                    dt         fdt        ffD ]j  \  }}| j                  |      5  |t        _        dt        _        t        j                          | j                  t        j
                  |       ddd       l y# 1 sw Y   wxY w)z<Test that _init_tk_type sets _tk_type according to platform.darwinr	   )r   N)alltypesnontypessubTestr   r   r   _init_tk_typeassertIn)selfr   typess      r   test_init_sets_tktypez$InitTktypeTest.test_init_sets_tktype)   sx     ((3gx5HH 	6OHex0 6"*"&$$&foou5	6 6	66 6s   AA??B	N)__name__
__module____qualname____doc__classmethodr    r$   r.   r   r   r   r   r      s0    , , , ,6r   r   c                       e Zd ZdZej
                  dfej                  dfej                  dfej                  dffZ	 e
j                  d      d        Zd Zy	)
IsTypeTkTestz*Test each of the four isTypeTk predecates.r   r   r   r   r   zidlelib.macosx._init_tk_typec                     dt         _        | j                  D ]R  \  }}| j                  |      5   |        | j	                  |j
                         |j                          ddd       T y# 1 sw Y   _xY w)zBTest that each isTypeTk calls _init_tk_type when _tk_type is None.N)func)r   r   isfuncsr)   
assertTruecalled
reset_mock)r,   mockinitr8   whentrues       r   test_is_calls_initzIsTypeTkTest.test_is_calls_init;   sk     "ll 	&ND(4( &0##%& &	&& &s   3A..A7	c                     | j                   D ]_  \  }}t        D ]Q  }| j                  |||      5  |t        _         ||v r| j
                  n| j                   |              ddd       S a y# 1 sw Y   `xY w)z,Test that each isTypeTk return correct bool.)r8   r>   tktypeN)r9   r'   r)   r   r   r:   assertFalse)r,   r8   r>   rA   s       r   test_isfuncszIsTypeTkTest.test_isfuncsE   s}    "ll 	.ND(" .\\thv\N .&,FOP((:T__@P@P&*f.. ..	.. .s   3A00A9N)r/   r0   r1   r2   r   isAquaTk
isCarbonTk	isCocoaTk	isXQuartzr9   mockpatchr?   rC   r   r   r   r5   r5   3   sh    0!45!!H.  7,  9.G TZZ./& 0&.r   r5   c                   `    e Zd ZdZed        Zed        Z ej                  d      d        Z	y)	SetupTestzTest setupApp.c                     t        d       t        j                         | _        | j                  j	                          fd| j                  _        y )Nr   c                      y r   r   )tkpathr8   cmds     r   rO   z!SetupTest.setUpClass.<locals>.cmdW   s    r   )r   r   r   r   r   createcommand)r   rO   s    @r   r    zSetupTest.setUpClassR   s:    557	/ "%r   c                 p    | j                   j                          | j                   j                          | ` y r   )r   r"   r#   r   s    r   r$   zSetupTest.tearDownClass\   s'    !!#Hr   zidlelib.macosx.overrideRootMenuc                 6   | j                   }t        |      }t        D ]m  }| j                  |      5  |t        _        t	        j                  ||       |dv r| j                  |j                         |j                          ddd       o y# 1 sw Y   zxY w)z/Call setupApp with each possible graphics type.)rA   r6   N)
r   r   r'   r)   r   r   setupAppr:   r;   r<   )r,   overrideRootMenur   flistrA   s        r   test_setupappzSetupTest.test_setupappb   s     yy 	.FV, ."(e,00OO$4$;$;< ++-. .	.. .s   ABB	N)
r/   r0   r1   r2   r3   r    r$   rH   rI   rV   r   r   r   rK   rK   O   sK    % %  
 TZZ12
. 3
.r   rK   __main__   )	verbosity)r2   idlelibr   unittesttest.supportr   tkinterr   unittest.mockrH   idlelib.filelistr   mactypesr(   r'   r   r   TestCaser   r5   rK   r/   mainr   r   r   <module>rc      s    '   !   %)9h"
"6X&& 66.8$$ .8.!! .B zHMMA r   