o
    ŠÄŽiz  ã                   @   sR   d Z ddlmZ ddlmZ ddlmZ G dd„ dejƒZedkr'e 	¡  dS dS )	z Tests for the completion module.é    )Ú
completion)Útest_components)Ú	testutilsc                   @   sœ   e Z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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 )&ÚTabCompletionTestc                 C   sX   dgdgddgg}t jd|d}|  d|¡ |  d|¡ dD ]}|  |› d|¡ qd S )NÚrunÚhaltú--nowÚcommand©ÚnameÚcommands)r	   r   ú))r   Ú_BashScriptÚassertIn)Úselfr   ÚscriptÚlast_command© r   úP/home/jeff/fluffinator/venv/lib/python3.10/site-packages/fire/completion_test.pyÚtestCompletionBashScript   s   ýÿz*TabCompletionTest.testCompletionBashScriptc                 C   sH   dgdgddgg}t jd|d}|  d|¡ |  d|¡ |  d|¡ d S )Nr   r   r   r	   r
   z-l now)r   Ú_FishScriptr   )r   r   r   r   r   r   ÚtestCompletionFishScript'   s   ýz*TabCompletionTest.testCompletionFishScriptc                 C   s:   dd„ }t  |¡}|  d|¡ |  d|¡ |  d|¡ d S )Nc                 S   s
   | ||fS ©Nr   )ÚoneÚtwoÚthreer   r   r   Úexample5   s   
z4TabCompletionTest.testFnCompletions.<locals>.examplez--onez--twoz--three)r   ÚCompletionsr   )r   r   Úcompletionsr   r   r   ÚtestFnCompletions4   s
   
z#TabCompletionTest.testFnCompletionsc                 C   sB   t  g d¢¡}|  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )N)ÚredÚgreenÚblueÚ0Ú1Ú2Ú3©r   r   r   ÚassertNotIn©r   r   r   r   r   ÚtestListCompletions=   ó
   z%TabCompletionTest.testListCompletionsc                 C   sn   ddddœ}t  |¡}|  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )	Nr!   ÚyellowT©r    r"   Ú_rainbowr    r"   r.   ÚTruer'   ©r   Úcolorsr   r   r   r   ÚtestDictCompletionsD   s   ý
z%TabCompletionTest.testDictCompletionsc                 C   sr   ddddœ}t j|dd}|  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d	|¡ |  d|¡ d S )
Nr!   r,   Tr-   )Úverboser    r"   r.   r/   r'   r0   r   r   r   ÚtestDictCompletionsVerboseS   s   ýz,TabCompletionTest.testDictCompletionsVerbosec                 C   s:   ddddi iiii}t  |¡}|  d|¡ |  d|¡ d S )NÚlevel1Úlevel2Úlevel3Úlevel4r'   )r   Údeepdictr   r   r   r   ÚtestDeepDictCompletionsb   s   
z)TabCompletionTest.testDeepDictCompletionsc                 C   sT   ddddi iiii}t  d|¡}|  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )Nr5   r6   r7   r8   r9   ©r   ÚScriptr   r(   ©r   r9   r   r   r   r   ÚtestDeepDictScripth   s   z$TabCompletionTest.testDeepDictScriptc                 C   sB   t  dtj¡}|  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )NÚidentityz--arg1z--arg2z--arg3z--arg4©r   r<   Útcr?   r   ©r   r   r   r   r   ÚtestFnScriptp   r+   zTabCompletionTest.testFnScriptc                 C   sN   t  dtj¡}|  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )NÚ ÚtenÚsumr?   z--alphaz--beta©r   r<   rA   ÚMixedDefaultsr   rB   r   r   r   ÚtestClassScriptw   s   z!TabCompletionTest.testClassScriptc                 C   sX   ddddi iiii}t jd|dd}|  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )Nr5   r6   r7   r8   r9   Úfish©Úshellr;   r=   r   r   r   ÚtestDeepDictFishScript   s   z(TabCompletionTest.testDeepDictFishScriptc                 C   sF   t jdtjdd}|  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )Nr?   rJ   rK   Úarg1Úarg2Úarg3Úarg4r@   rB   r   r   r   ÚtestFnFishScript‡   s
   z"TabCompletionTest.testFnFishScriptc                 C   sR   t jdtjdd}|  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )	NrD   rJ   rK   rE   rF   r?   ÚalphaÚbetarG   rB   r   r   r   ÚtestClassFishScriptŽ   s   z%TabCompletionTest.testClassFishScriptc                 C   s^   t  ddddœ¡}|  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ |  d|¡ d S )Nr!   r,   Úpink)é
   g…ëQ¸	@)Út1Út2Ú10z3.14z('t1', 't2')r'   r)   r   r   r   ÚtestNonStringDictCompletions–   s   ýz.TabCompletionTest.testNonStringDictCompletionsc                 C   s$   dd„ }t  |ƒ ¡}|  |g ¡ d S )Nc                  s   s    d} 	 | V  | d7 } q)Nr   Té   r   )Úxr   r   r   Ú	generator¤   s   €þz=TabCompletionTest.testGeneratorCompletions.<locals>.generator)r   r   ÚassertEqual)r   r^   r   r   r   r   ÚtestGeneratorCompletions£   s   z*TabCompletionTest.testGeneratorCompletionsc                 C   s   t  tj¡}|  |g ¡ d S r   )r   r   rA   Ú
NoDefaultsr_   r)   r   r   r   ÚtestClassCompletions¬   s   z&TabCompletionTest.testClassCompletionsc                 C   s*   t  t ¡ ¡}|  d|¡ |  d|¡ d S )NÚdoubleÚtriple)r   r   rA   ra   r   r)   r   r   r   ÚtestObjectCompletions°   s   z'TabCompletionTest.testObjectCompletionsc                 C   s,   t  t ¡ j¡}|  d|¡ |  d|¡ d S )Nz--selfz--count)r   r   rA   ra   rc   r(   r   r)   r   r   r   ÚtestMethodCompletionsµ   s   z'TabCompletionTest.testMethodCompletionsN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r*   r2   r4   r:   r>   rC   rI   rM   rR   rU   r[   r`   rb   re   rf   r   r   r   r   r      s&    		r   Ú__main__N)
Ú__doc__Úfirer   r   rA   r   ÚBaseTestCaser   rg   Úmainr   r   r   r   Ú<module>   s    &ÿ