B YI~d�;�@szddlmZddlZddlmZddlmZmZddlZddlm Z ddl m Z Gdd�dej �Z Gd d �d ej �ZGd d �d ej �ZGd d�dej �ZGdd�dej �ZGdd�dej �ZGdd�dej �ZGdd�dej �ZGdd�dej �ZGdd�dej �ZGdd�dej �ZGdd�dej �ZGdd �d ej �ZGd!d"�d"ej �ZGd#d$�d$ej �Zed%k�rvejd&d'd(�dS))�)�queryN)�requires)�Tk�END)�mock)�Varc@sBeZdZGdd�d�Zdd�Zdd�Zdd�Zd d �Zd d �Zd S)� QueryTestc@s<eZdZejjZejjZejjZdd�Zdd�Z dd�Z dS)zQueryTest.Dummy_QuerycCs&t|d�|_ddi|_d|_d|_dS)N)�value�text�F)r�entry� entry_error�result� destroyed)�self� dummy_entry�r�A/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_query.py�__init__!s  zQueryTest.Dummy_Query.__init__cCs||jd<dS)Nr )r )r�messagerrr� showerror&szQueryTest.Dummy_Query.showerrorcCs d|_dS)NT)r)rrrr�destroy(szQueryTest.Dummy_Query.destroyN) �__name__� __module__� __qualname__r�Query�entry_ok�ok�cancelrrrrrrr� Dummy_Querys rcCsD|�d�}|�|��d�|�|j|jfd�|�d|jd�dS)N� )NFz blank liner )r� assertEqualrrr�assertInr )r�dialogrrr�test_entry_ok_blank+s zQueryTest.test_entry_ok_blankcCsD|�d�}|j}||��d�||j|jfd�||jdd�dS)Nz good �good)NFr r )rr!rrrr )rr#�Equalrrr�test_entry_ok_good1s  zQueryTest.test_entry_ok_goodcCsT|�d�}t��|j_|�|��d�|�|jjj�|j`|�|j |j fd�dS)Nr )NF) rr�Mockr Z focus_setr!r� assertTrue�calledrr)rr#rrr� test_ok_blank8s   zQueryTest.test_ok_blankcCs2|�d�}|�|��d�|�|j|jfd�dS)Nr%)r%T)rr!rrr)rr#rrr� test_ok_good@s zQueryTest.test_ok_goodcCs2|�d�}|�|��d�|�|j|jfd�dS)Nzdoes not matter)NT)rr!rrr)rr#rrr� test_cancelEs zQueryTest.test_cancelN) rrrrr$r'r+r,r-rrrrrs rc@s:eZdZGdd�d�Zdd�Zdd�Zdd�Zd d �Zd S) �SectionNameTestc@s*eZdZejjZdgZdd�Zdd�ZdS)z!SectionNameTest.Dummy_SectionName�usedcCst|d�|_ddi|_dS)N)r r r )rr r )rrrrrrQs z*SectionNameTest.Dummy_SectionName.__init__cCs||jd<dS)Nr )r )rrrrrrTsz+SectionNameTest.Dummy_SectionName.showerrorN) rrrr� SectionNamer� used_namesrrrrrr�Dummy_SectionNameNsr2cCs0|�d�}|�|��d�|�d|jd�dS)Nr zno namer )r2r!rr"r )rr#rrr�test_blank_section_nameWs z'SectionNameTest.test_blank_section_namecCs0|�d�}|�|��d�|�d|jd�dS)Nr/Zuser )r2r!rr"r )rr#rrr�test_used_section_name\s z&SectionNameTest.test_used_section_namecCs0|�d�}|�|��d�|�d|jd�dS)NZ goodgoodgoodgoodgoodgoodgoodgoodzlonger than 30r )r2r!rr"r )rr#rrr�test_long_section_nameas z&SectionNameTest.test_long_section_namecCs0|�d�}|�|��d�|�|jdd�dS)Nz good r%r r )r2r!rr )rr#rrr�test_good_section_namefs z&SectionNameTest.test_good_section_nameN)rrrr2r3r4r5r6rrrrr.Ks  r.c@s:eZdZGdd�d�Zdd�Zdd�Zdd�Zd d �Zd S) �ModuleNameTestc@s(eZdZejjZdZdd�Zdd�ZdS)zModuleNameTest.Dummy_ModuleNamer cCst|d�|_ddi|_dS)N)r r r )rr r )rrrrrrrs z(ModuleNameTest.Dummy_ModuleName.__init__cCs||jd<dS)Nr )r )rrrrrrusz)ModuleNameTest.Dummy_ModuleName.showerrorN) rrrr� ModuleNamer�text0rrrrrr�Dummy_ModuleNameosr:cCs0|�d�}|�|��d�|�d|jd�dS)Nr zno namer )r:r!rr"r )rr#rrr�test_blank_module_namexs z%ModuleNameTest.test_blank_module_namecCs0|�d�}|�|��d�|�d|jd�dS)NZ __name_xyz123_should_not_exist__z not foundr )r:r!rr"r )rr#rrr�test_bogus_module_name}s z%ModuleNameTest.test_bogus_module_namecCs0|�d�}|�|��d�|�d|jd�dS)N� itertoolsz source-basedr )r:r!rr"r )rr#rrr�test_c_source_name�s z!ModuleNameTest.test_c_source_namecCs4|�d�}|�|���d��|�|jdd�dS)N�idlelibz __init__.pyr r )r:r)r�endswithr!r )rr#rrr�test_good_module_name�s z$ModuleNameTest.test_good_module_nameN)rrrr:r;r<r>rArrrrr7ls  r7c@s2eZdZGdd�d�Zdd�Zdd�Zdd�Zd S) �GotoTestc@s$eZdZejjZdd�Zdd�ZdS)zGotoTest.Dummy_ModuleNamecCst|d�|_ddi|_dS)N)r r r )rr r )rrrrrr�s z"GotoTest.Dummy_ModuleName.__init__cCs||jd<dS)Nr )r )rrrrrr�sz#GotoTest.Dummy_ModuleName.showerrorN)rrrr�Gotorrrrrrrr:�sr:cCs0|�d�}|�|��d�|�d|jd�dS)N�aznot a base 10 integerr )r:r!rr"r )rr#rrr�test_bogus_goto�s zGotoTest.test_bogus_gotocCs0|�d�}|�|��d�|�d|jd�dS)N�0znot a positive integerr )r:r!rr"r )rr#rrr� test_bad_goto�s zGotoTest.test_bad_gotocCs0|�d�}|�|��d�|�|jdd�dS)N�1�r r )r:r!rr )rr#rrr�test_good_goto�s zGotoTest.test_good_gotoN)rrrr:rErGrJrrrrrB�srBc@s"eZdZGdd�d�Zdd�ZdS)�HelpsourceBrowsefileTestc@seZdZejjZe�ZdS)z)HelpsourceBrowsefileTest.Dummy_HelpSourceN)rrrr� HelpSource� browse_filer�pathvarrrrr�Dummy_HelpSource�srOc Cs�|��}x�ddd�dfddd�tfddd�dfddd�tffD]J\}}}|���2|j�|�||_|��|�|j��|�WdQRXq>WdS)Nr cSsdS)Nr r)rD�b�crrr���zBHelpsourceBrowsefileTest.test_file_replaces_path..cSstS)N)�__file__)rDrPrQrrrrR�rSZhtestcSsdS)Nr r)rDrPrQrrrrR�rScSstS)N)rT)rDrPrQrrrrR�rS) rOrT�subTestrN�setZ askfilenamerMr!�get)rr#�path�funcrrrr�test_file_replaces_path�s     z0HelpsourceBrowsefileTest.test_file_replaces_pathN)rrrrOrZrrrrrK�srKc@sLeZdZGdd�d�ZejZedd��Zdd�Z dd�Z d d �Z d d �Z d S)�HelpsourcePathokTestc@s&eZdZejjZdd�Zddd�ZdS)z%HelpsourcePathokTest.Dummy_HelpSourcecCst|d�|_ddi|_dS)N)r r r )rrX� path_error)rZ dummy_pathrrrr�s z.HelpsourcePathokTest.Dummy_HelpSource.__init__NcCs||jd<dS)Nr )r\)rrZwidgetrrrr�sz/HelpsourcePathokTest.Dummy_HelpSource.showerror)N)rrrrrL�path_okrrrrrrrO�srOcCs |jt_dS)N)� orig_platformr�platform)�clsrrr� tearDownClass�sz"HelpsourcePathokTest.tearDownClasscCs0|�d�}|�|��d�|�d|jd�dS)Nr z no help filer )rOr!r]r"r\)rr#rrr�test_path_ok_blank�s z'HelpsourcePathokTest.test_path_ok_blankcCs4|�td�}|�|��d�|�d|jd�dS)Nz bad-bad-badz not existr )rOrTr!r]r"r\)rr#rrr�test_path_ok_bad�sz%HelpsourcePathokTest.test_path_ok_badc Csd|�d�}|j}xNdD]F}|���4|j�|�|�|��|�|�|jdd�WdQRXqWdS)Nr )z www.py.orgz http://py.orgr )rOr!rUrXrVr]r\)rr#r&Zurlrrr�test_path_ok_web�s    z%HelpsourcePathokTest.test_path_ok_webc Csl|�d�}x\dD]T\}}|���>|t_|j�t�|�|��|t�|�|j dd�WdQRXqWdS)Nr ))�darwinzfile://)�otherr r ) rOrUrr_rXrVrTr!r]r\)rr#r_�prefixrrr�test_path_ok_file�s   z&HelpsourcePathokTest.test_path_ok_fileN) rrrrOrr_r^� classmethodrarbrcrdrhrrrrr[�s  r[c@s"eZdZGdd�d�Zdd�ZdS)�HelpsourceEntryokTestc@s,eZdZejjZiZiZdd�Zdd�Z dS)z&HelpsourceEntryokTest.Dummy_HelpSourcecCs|jS)N)�name)rrrr�item_ok�sz.HelpsourceEntryokTest.Dummy_HelpSource.item_okcCs|jS)N)rX)rrrrr]�sz.HelpsourceEntryokTest.Dummy_HelpSource.path_okN) rrrrrLrr r\rlr]rrrrrO�s rOc CsR|��}xDdD]<\}}}|���$|||_|_|�|��|�WdQRXqWdS)N))NNN)Nzdoc.txtN)�docNN)rmzdoc.txt)rmzdoc.txt)rOrUrkrXr!r)rr#rkrXrrrr�test_entry_ok_helpsource�s  z.HelpsourceEntryokTest.test_entry_ok_helpsourceN)rrrrOrnrrrrrj�s rjc@s2eZdZGdd�d�Zdd�Zdd�Zdd�Zd S) �CustomRunCLIargsokTestc@s$eZdZejjZdd�Zdd�ZdS)z&CustomRunCLIargsokTest.Dummy_CustomRuncCst|d�|_ddi|_dS)N)r r r )rr r )rrrrrrs z/CustomRunCLIargsokTest.Dummy_CustomRun.__init__cCs||jd<dS)Nr )r )rrrrrrsz0CustomRunCLIargsokTest.Dummy_CustomRun.showerrorN)rrrr� CustomRun� cli_args_okrrrrrr�Dummy_CustomRun srrcCs|�d�}|�|��g�dS)Nr )rrr!rq)rr#rrr�test_blank_argss z&CustomRunCLIargsokTest.test_blank_argscCs0|�d�}|�|��d�|�d|jd�dS)Nz'no-closing-quotez No closingr )rrr!rqr"r )rr#rrr�test_invalid_argss z(CustomRunCLIargsokTest.test_invalid_argscCsPddddddg}|�d�|�d�}|�|��|d g�|�|jd d �dS) Nz-nZ10z --verbosez-pz/pathz--namer z "my name"zmy namer r )rr�joinr!rqr )r�argsr#rrr�test_good_argssz%CustomRunCLIargsokTest.test_good_argsN)rrrrrrsrtrwrrrrro sroc@s"eZdZGdd�d�Zdd�ZdS)�CustomRunEntryokTestc@s&eZdZejjZiZe�Zdd�Z dS)z$CustomRunEntryokTest.Dummy_CustomRuncCs|jS)N)�cli_args)rrrrrq+sz0CustomRunEntryokTest.Dummy_CustomRun.cli_args_okN) rrrrrprr r� restartvarrqrrrrrr'srrc Csx|��}xjdD]b}|j�|�xPddgdg|fffD]8\}}|j||d��||_|�|��|�WdQRXq4WqWdS)N>FT)NNzmy arg)�restartry)rrrzrVrUryr!r)rr#r{ryrrrr�test_entry_ok_customrun.s  z,CustomRunEntryokTest.test_entry_ok_customrunN)rrrrrr|rrrrrx$srxc@sDeZdZedd��Zedd��Zdd�Zdd�Zd d �Zd d �Z d S)� QueryGuiTestcCsBtd�t�|_}|j��tj|dddd�|_t��|j_ dS)N�guiZTESTZtestT)�_utest) rr�root�withdrawrrr#rr(r)r`r�rrr� setUpClass=s   zQueryGuiTest.setUpClasscCs|j`|`|j��|`dS)N)r#rr�)r`rrrraEs zQueryGuiTest.tearDownClasscCs(|jj�dd�d|j_|jj��dS)Nr�end)r#r �deleterrZ reset_mock)rrrr�setUpLszQueryGuiTest.setUpcCs>|j}|j�dd�|j��|�|jd�|�|jj �dS)Nr�abc) r#r �insert� button_ok�invoker!rr)rr*)rr#rrr� test_click_okQs  zQueryGuiTest.test_click_okcCs0|j}|j��|�|jd�|�|jj�dS)N)r#r�r�r!rZ assertFalserr*)rr#rrr�test_click_blankXs zQueryGuiTest.test_click_blankcCs>|j}|j�dd�|j��|�|jd�|�|jj �dS)Nrr�) r#r r�Z button_cancelr�r!rr)rr*)rr#rrr�test_click_cancel^s  zQueryGuiTest.test_click_cancelN) rrrrir�rar�r�r�r�rrrrr};s   r}c@s eZdZedd��Zdd�ZdS)�SectionnameGuiTestcCs td�dS)Nr~)r)r`rrrr�hszSectionnameGuiTest.setUpClasscCslt�}|��tj|dddhdd�}|j}|�|jdh�|j�dd�|j� �|�|j d�|� �dS)N�T�tr�T)rrZokay) rr�rr0r!r1r r�r�r�rr)rr�r#r&rrr�test_click_section_namels z*SectionnameGuiTest.test_click_section_nameN)rrrrir�r�rrrrr�fs r�c@s eZdZedd��Zdd�ZdS)�ModulenameGuiTestcCs td�dS)Nr~)r)r`rrrr�zszModulenameGuiTest.setUpClasscCsjt�}|��tj|ddddd�}|�|jd�|�|j��d�|j� �|� |j � d��|� �dS)Nr�r�r?T)rz __init__.py)rr�rr8r!r9r rWr�r�r)rr@r)rr�r#rrr�test_click_module_name~s z(ModulenameGuiTest.test_click_module_nameN)rrrrir�r�rrrrr�xs r�c@s eZdZedd��Zdd�ZdS)� GotoGuiTestcCs td�dS)Nr~)r)r`rrrr��szGotoGuiTest.setUpClasscCsRt�}|��tj|dddd�}|j�dd�|j��|�|j d�|� �dS)Nr�r�T)rrZ22�) rr�rrCr r�r�r�r!rr)rr�r#rrrr��s z"GotoGuiTest.test_click_module_nameN)rrrrir�r�rrrrr��s r�c@s eZdZedd��Zdd�ZdS)�HelpsourceGuiTestcCs td�dS)Nr~)r)r`rrrr��szHelpsourceGuiTest.setUpClasscCs�t�}|��tj|ddtdd�}|j}||j��d�||j��t�|j � �t j dkr`dnd}||j d|tf�|��dS)Nr�Z__test__T)Zmenuitem�filepathrrezfile://r )rr�rrLrTr!r rWrXr�r��sysr_rr)rr�r#r&rgrrr�test_click_help_source�s   z(HelpsourceGuiTest.test_click_help_sourceN)rrrrir�r�rrrrr��s r�c@s eZdZedd��Zdd�ZdS)�CustomRunGuiTestcCs td�dS)Nr~)r)r`rrrr��szCustomRunGuiTest.setUpClasscCsrt�}|��tj|dddgdd�}|�|j��d�|j�td�|j � �|�|j dddgdf�|� �dS) NZTitlerDzb=1T)ryrza b=1z crQ) rr�rrpr!r rWr�rr�r�rr)rr�r#rrr�test_click_args�s z CustomRunGuiTest.test_click_argsN)rrrrir�r�rrrrr��s r��__main__�F)� verbosity�exit)r?rZunittestZ test.supportrZtkinterrrr�rZidlelib.idle_test.mock_tkrZTestCaserr.r7rBrKr[rjrorxr}r�r�r�r�r�r�mainrrrr� s.    3!!-+