Mini Shell

Direktori : /usr/lib/python3.6/site-packages/enchant/__pycache__/
Upload File :
Current File : //usr/lib/python3.6/site-packages/enchant/__pycache__/tests.cpython-36.opt-1.pyc

3

��]�[�@sdZddlZddlZddlZddlZyddlZWnek
rHdZYnXddlZddlTddlmZ	ddl
mZmZm
Z
mZdd�ZGdd	�d	ej�ZGd
d�dej�ZGdd
�d
ej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Zddd�Zddd�ZdS)z/

    enchant.tests:  testcases for pyenchant

�N)�*)�_enchant)�unicode�raw_unicode�printf�trim_suggestionscKs�tdk	rttj|d<tj|d<d|d<tj|f|�}|j�\}}|jrntjddkrb|jtj�d�}tj	j
|�|jStj|�SdS)N�stdout�stderrT�shellr��replace)
�
subprocess�PIPE�PopenZcommunicate�
returncode�sys�version_info�decode�getdefaultencodingr	�write�os�system)�cmd�kwds�prr	�r�/usr/lib/python3.6/tests.py�runcmd3s

rc@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�
TestBrokerz�Test cases for the proper functioning of Broker objects.

    These tests assume that there is at least one working provider
    with a dictionary for the "en_US" language.
    cCst�|_dS)N)�Broker�broker)�selfrrr�setUpJszTestBroker.setUpcCs|`dS)N)r )r!rrr�tearDownMszTestBroker.tearDowncCs|j|jjd��dS)z*Test that the en_US language is available.�en_USN)�
assertTruer �dict_exists)r!rrr�test_HasENUSPszTestBroker.test_HasENUScCs$x|jj�D]}|jj|�sqWdS)z<Test whether all advertised languages are in fact available.N)r Zlist_languagesr&)r!�langrrr�test_LangsAreAvailTszTestBroker.test_LangsAreAvailcCsHxB|jj�D]4\}}|j|jj|��|jj|�s2||jj�krqWdS)z<Test whether all advertised providers are in fact available.N)r �
list_dictsr%r&Zdescribe)r!r(�provrrr�test_ProvsAreAvailZs
zTestBroker.test_ProvsAreAvailc	Cs�i}g}x\|jj�D]N\}}|jd�r2|jdkr2q|jdd�}g||<||kr|jdkr|j|�qWxh|D]`}xZ|D]R}t�}|j||j�y,|j|�}|j	|kr�t
��||j|�WqvYqvXqvWqlWxV|D]N}xH||D]<}t�}|j||j�|j|�}|j|j	|f||f�~~q�Wq�Wx�|D]�}x~||D]r}|j}x*|D]"}|||k�rL|jd|}�qLWt�}|j||�|j|�}|j|j	||f|||f�~~�q<W�q.WdS)z,Test that provider ordering works correctly.Zhyph_�myspell�-�_Zzemberek�,N)r r*�
startswith�namer�appendrZset_orderingZrequest_dictZprovider�
ValueError�assertEqual)	r!ZlangsZprovs�tagr+Zb2�d�orderZprov2rrr�test_ProvOrderingcsP









zTestBroker.test_ProvOrderingcCs@|jjtd��}|j|�|jj|�ttd��}|j|�dS)z,Test that unicode language tags are acceptedr$N)r Z_request_dict_datarr%Z_free_dict_data�Dict)r!�d1rrr�test_UnicodeTag�s

zTestBroker.test_UnicodeTagcCs^ttjd�sdS|j|jjd�d�|jjdd�|j|jjd�d�|jt�jd�d�dS)NZargtypeszpyenchant.unittestZtesting)�hasattr�_eZbroker_get_paramr5r Z	get_paramZ	set_paramr)r!rrr�test_GetSetParam�szTestBroker.test_GetSetParamN)�__name__�
__module__�__qualname__�__doc__r"r#r'r)r,r9r<r?rrrrrCs	2rc@sxeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�TestDictz�Test cases for the proper functioning of Dict objects.
    These tests assume that there is at least one working provider
    with a dictionary for the "en_US" language.
    cCstd�|_dS)Nr$)r:�dict)r!rrrr"�szTestDict.setUpcCs|`dS)N)rE)r!rrrr#�szTestDict.tearDowncCs|jtd��dS)zATest that the en_US language is available through default broker.r$N)r%r&)r!rrrr'�szTestDict.test_HasENUScCs^|j|jjd��|j|jjd��|j|jjd��|j|jjd��|jt|jjd�dS)z-Test that check() works on some common words.�helloZtest�heloZtestt�N)r%rE�check�assertFalse�assertRaisesr4)r!rrr�
test_check�s
zTestDict.test_checkcCs|j|jjtjk�dS)z-Test that the dict's broker is set correctly.N)r%rEZ_broker�enchant)r!rrr�test_broker�szTestDict.test_brokercCs|j|jjd�dS)z*Test that the dict's tag is set correctly.r$N)r5rEr6)r!rrr�test_tag�szTestDict.test_tagcCs>|j|jjd��|jd|jjd�k�|jt|jjd�dS)z2Test that suggest() gets simple suggestions right.rFrGrHN)r%rErI�suggestrKr4)r!rrr�test_suggest�szTestDict.test_suggestcCsR|jt|jjd��dk�|jt|jjd��dk�|jt|jjd��dk�dS)z:Test whether suggest() hangs on some inputs (Bug #1404196)ZThiisrZThiiisZThiiiisN)r%�lenrErP)r!rrr�test_suggestHang1�szTestDict.test_suggestHang1cCsXtd�}|jt|�tk�|j|jj|��x&|jj|�D]}|jt|�tk�q:WdS)z,Test checking/suggesting for unicode stringsz
he\u2149loN)rr%�typerrJrErIrP)r!Zus1�srrr�
test_unicode1�s
zTestDict.test_unicode1cCs�|j|jjd��|j|jjd��|jjd�|j|jjd��|j|jjd��|jjd�|j|jjd��|j|jjd��|jjd�|j|jjd��|j|jjd��|jjd�dS)z8Test that adding words to the session works as required.�LozzrFN)rJrErI�is_addedZadd_to_sessionr%Zremove_from_session�
is_removed)r!rrr�test_session�szTestDict.test_sessioncCs�d}|j|jj|��|jj|�|j|jj|��|j|jj|��|jj|�|j|jj|��|j|jj|��|jjd�|j|jjd��|j|jjd��|j|jjd��|jjd�|j|jjd��dS)z2Test adding/removing from default user dictionary.Z	kxhjsddsiZ	pineappleN)rJrErI�addr%rX�removerY)r!Znonsenserrr�test_AddRemove�szTestDict.test_AddRemovecCsPtj�}|dkr|jtt�n.yt�}|j|j|�Wntk
rJYnXdS)z-Test behaviour of default language selection.N)�utilsZget_default_languagerK�Errorr:r5r6ZDictNotFoundError)r!ZdefLangr7rrr�test_DefaultLang�szTestDict.test_DefaultLangcCsdtd�}|j|jd��tjtj|��}|j|jd��|j|jd��|j�|j|jd��dS)z2Test that pickling doesn't corrupt internal state.ZenrFN)r:r%rI�pickle�loads�dumpsZ_free)r!r;Zd2rrr�
test_picklingszTestDict.test_picklingN)r@rArBrCr"r#r'rLrNrOrQrSrVrZr]r`rdrrrrrD�s	rDc@s�eZdZdZdd�Zdd�Zdd�Zdd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS) �TestPWLz�Test cases for the proper functioning of PWLs and DictWithPWL objects.
    These tests assume that there is at least one working provider
    with a dictionary for the "en_US" language.
    cCs|j�|_d|_dS)Nzpwl.txt)�_mkdtemp�_tempDir�	_fileName)r!rrrr"s
z
TestPWL.setUpcCsddl}|j|j�dS)Nr)�shutil�rmtreerg)r!rirrrr# szTestPWL.tearDowncCsddl}|j�S)Nr)�tempfile�mkdtemp)r!rkrrrrf$szTestPWL._mkdtempNcCs<|dkr|j}tjj|j|�}tjj|�s8t|d�j�|S)N�w)rhr�path�joinrg�exists�open�close)r!Znmrrr�_path(sz
TestPWL._pathcCsDt|j�d�}x |D]}|j|�|jd�qW|j�|j�dS)z!Set the contents of the PWL file.rm�
N)rqrsr�flushrr)r!�contents�pwlFile�lnrrr�setPWLContents0s

zTestPWL.setPWLContentscCs,t|j�d�}|j�}|j�dd�|D�S)z&Retrieve the contents of the PWL file.�rcSsg|]}|j��qSr)�strip)�.0�crrr�
<listcomp>>sz*TestPWL.getPWLContents.<locals>.<listcomp>)rqrs�	readlinesrr)r!rwrvrrr�getPWLContents9szTestPWL.getPWLContentscCsN|jddg�t|j��}|j|jd��|j|jd��|j|jd��dS)z(Test that basic checking works for PWLs.�SazzrWrFN)ry�request_pwl_dictrsr%rIrJ)r!r7rrrrL@s
zTestPWL.test_checkcCstt|j���}|j|�dS)z-Test that unicode PWL filenames are accepted.N)r�rrsr%)r!r7rrr�test_UnicodeFNHszTestPWL.test_UnicodeFNcCsft|j��}|j|jd��|jd�|jd�|j|jd��|jd|j�k�|j|jd��dS)z0Test that adding words to a PWL works correctly.�FlagenZEsquilaxZEsquilamN)r�rsrJrIr[r%r�rX)r!r7rrr�test_addMs

zTestPWL.test_addcCs�|jddg�t|j��}|jd|jd�k�|jd|jd�k�|jd|jd�k�|jd�|jd|jd�k�|jd|jd�k�dS)	z$Test getting suggestions from a PWL.r�rWZSazZlazr�ZFlagsZsazzN)ryr�rsr%rPr[rJ)r!r7rrr�test_suggestionsWs
zTestPWL.test_suggestionscCs|jddg�td|j�|jd��}|j|jd��|j|jd��|j|jd��|j|jd��|j|jd��|jd�|j|jd��|jd|j�k�|jd|jd�k�|jd|jd�k�|j	d�|j|jd��|jd|jd�k�|j	d�|j|jd��d	S)
z"Test functionality of DictWithPWL.r�rWr$zpel.txtrFrGr�ZFlagnN)
ry�DictWithPWLrsr%rIrJr[r�rPr\)r!r7rrr�
test_DWPWLbs"


zTestPWL.test_DWPWLcCs�tddd�}|j|jd��|j|jd��|j|jd��|jd�|j|jd��|jd�|j|jd��|jd�|j|jd��dS)z8Test functionality of DictWithPWL using transient dicts.r$NrFrGr�)r�r%rIrJr[r\)r!r7rrr�test_DWPWL_emptyvs


zTestPWL.test_DWPWL_emptycCs�t�}|jt|j�gk�|jd�|jd�|jd�t|j�}|jt|�dk�|jd|k�|jd|k�|jd|k�|jd�|jd�t|j�}|jt|�dk�|jd|k�|jd|k�dS)z(Test our pure-python PWL implementation.rFZthereZduckrZ
notinthere�N)ZPyPWLr%�listZ_wordsr[rRr\)r!r7Zwsrrr�
test_PyPWL�s 






zTestPWL.test_PyPWLcCs$td�|_t|j��}|j|�dS)z2Test that unicode chars in PWL paths are accepted.ztest_\xe5\xe4\xf6_ingN)rrhr�rsr%)r!r7rrr�test_UnicodeCharsInPath�s
zTestPWL.test_UnicodeCharsInPath)N)r@rArBrCr"r#rfrsryr�rLr�r�r�r�r�r�r�rrrrres
	

rec@seZdZdZdd�ZdS)�	TestUtilsz)Test cases for various utility functions.cCs�d}dddg}|jt||d�dddg�|jt||d�dddg�|jt||d�dddg�|jt||d�ddg�|jt||d	�dg�|jt||d
�g�dS)NZgudZgoodZgodzbad+�(�rr��r)r5r)r!�wordZsuggsrrr�test_trim_suggestions�s
zTestUtils.test_trim_suggestionsN)r@rArBrCr�rrrrr��sr�c<@s�eZdZdZdddddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=g<Zd>d?�Zd@dA�ZdBS)C�TestDocStringsa
Test the spelling on all docstrings we can find in this module.

    This serves two purposes - to provide a lot of test data for the
    checker routines, and to make sure we don't suffer the embarrassment
    of having spelling errors in a spellchecking package!
    Z
spellchecking�utfrErZ
bytestringZbytestrings�strZ	pyenchant�asciir^ZsetupZ	distutilsZpkg�filenameZtokenization�tupleZtuplesZ	tokenizerZ
tokenizersZtestcaseZ	testcasesZ
whitespaceZwxpythonZspellcheckerZdialogZurlsZ	wikiwordsZ
enchantobjectZproviderdescZ
spellcheckZpwlZaspellr-Z	docstringZ
docstringsZ
stopiterationZpwlsZpypwlZdictwithpwlZ	skippableZdictszdict's�	filenames�frZtrieZapiZctypesZwxspellcheckerdialogZstatefulZcmdlinecheckerZspellchecks�callbackZclunkier�iteratorZispellZcorZbackendsZ
subclassesZ
initialiseZruntimecs�ddl}ddl}ddl}ddl}ddl}ddl}ddl}yddl}Wntk
rXYnXyddl	}Wntk
rzYnXg}|g}g�xB|r�|j
�}�j|�t|j
||��}|j�fdd�|D��q�W|jt|�d�dS)z,Test that all our docstrings are error-free.rNcsg|]}|�kr|�qSrr)r|�obj)�checkedrrr~�sz2TestDocStrings.test_docstrings.<locals>.<listcomp>)rM�
enchant.utilsZ
enchant.pypwlZenchant.tokenizeZenchant.tokenize.enZenchant.checkerZenchant.checker.CmdLineCheckerZ%enchant.checker.GtkSpellCheckerDialog�ImportErrorZ$enchant.checker.wxSpellCheckerDialog�popr3r��_check_docstrings�extendr5rR)r!rM�errorsZtocheckr�Znewobjsr)r�r�test_docstrings�s0
zTestDocStrings.test_docstringsccstddl}t|d�r�dd�t|dg�D�}|jjd|j|jjgd�}x�|D]�}t|j	�dkr\qH|j	j
�|jkrnqH|r�|d|j	kr�|jd�qH|j
||j	|jf�d	||j	|j|j�f}t|gtjd
�qHWx�t|�D]�}|jd�r�q�t||�}	t|	d��r&tt�d��sq�|	jjtjjt���sfq�n@t|	d
d�}
|
�sPt|	dd�}t|d
d�}
|
�rf|
jd��rfq�|	Vq�WdS)NrrCcSsg|]}|�qSrr)r|rmrrrr~�sz4TestDocStrings._check_docstrings.<locals>.<listcomp>�_DOC_ERRORSZen_AU)�filtersr�z'
DOCSTRING SPELLING ERROR: %s %s %d %s
)�file�__�__file__rA�	__class__rM)rMr=�getattrZcheckerZSpellCheckerrC�tokenizeZ	URLFilterrRr��lower�WORDSr�r3ZwordposrPrrr	�dirr1�globalsr�rrn�dirname)r!r�r�rMZskip_errorsZchkr�err�msgr2ZchildZcmodZcclassrrrr��s>




z TestDocStrings._check_docstringsN)r@rArBrCr�r�r�rrrrr��s






r�c@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dge	_
dd�ZdS)�TestInstallEnvz7Run all testcases in a variety of install environments.cCs|j�|_d|_dS)NZbuild)rfrg�_insDir)r!rrrr"s
zTestInstallEnv.setUpcCsddl}|j|j�dS)Nr)rirjrg)r!rirrrr#szTestInstallEnv.tearDowncCsddl}|j�S)Nr)rkrl)r!rkrrrrfszTestInstallEnv._mkdtempcCsNddl}ddl}ddl}|jj|j|j�}|j|�|jd|jj|d��dS)NrrM)	rrrirnrorgr��makedirsZcopytree)r!rrri�insdirrrr�installs
zTestInstallEnv.installcCsvddl}ddl}|jj|j|j�}ttk	rBt|t�rB|j	|j
��}||jd<d}td|j
|f|d�}|j|d�dS)Nr�
PYTHONPATHz�import enchant, os; from os.path import abspath; assert abspath(os.curdir) in abspath(enchant.__file__); enchant._runtestsuite()z"%s" -c "%s")�cwd)rrrnrorgr�r�r�
isinstance�encode�getfilesystemencoding�environr�
executabler5)r!rrr��testCmd�resrrr�runtestss
zTestInstallEnv.runtestscCs|j�|j�dS)z0Test proper functioning of TestInstallEnv suite.N)r�r�)r!rrr�
test_basic"szTestInstallEnv.test_basiccCstd�|_|j�|j�dS)z5Test installation in a path containing unicode chars.ztest_\xe5\xe4\xf6_ingN)rr�r�r�)r!rrr�test_UnicodeInstallPath(s
z&TestInstallEnv.test_UnicodeInstallPathN)r@rArBrCr"r#rfr�r�r�r�r�rrrrr�s
r�c@sBeZdZdZddgZdd�Zdd�Zdd	�Zddge_d
d�ZdS)
�
TestPy2exez,Run all testcases inside a py2exe executable�pyZexecCs|j�|_dS)N)rfrg)r!rrrr"3szTestPy2exe.setUpcCsddl}|j|j�dS)Nr)rirjrg)r!rirrrr#6szTestPy2exe.tearDownc
Cs�ddl}ddl}ddl}ddlm}ddlm}yddl}Wntk
rPdSX||t��|j	d<|j
|t�ddd�}|j|�s�dSd	}||j||j
f}t|�}	|j|	d�|j
d
}
|j|jj|
��t|
�}	|j|	d�dS)z2Test pyenchant running inside a py2exe executable.rN)rn)r�r�z..Ztoolszsetup.py2exe.pyz%s %s -q py2exe --dist-dir="%s"z\test_pyenchant.exe)rrrirnZos.pathr��py2exer�r�r�rorpr�rgrr5r%)r!rrrirnr�r�Zsetup_pyZbuildCmdr�r�rrr�test_py2exe:s&

zTestPy2exe.test_py2execCsddl}|j�S)Nr)rkrl)r!rkrrrrfQszTestPy2exe._mkdtempN)	r@rArBrCr�r"r#r�rfrrrrr�/s
r�TcCs�ddlm}ddlm}m}ddlm}tj�}|rT|jtj	t
��|jtj	t��|jtj	t��|jtj	t
��|jtj	t��|jtj	t��|jtj	t��|jtj	|��|jtj	|��|jtj	|��|jtj	|��|S)Nr)�TestChecker)�TestTokenization�TestFilters)�TestTokenizeEN)Zenchant.checker.testsr�Zenchant.tokenize.testsr�r�r��unittestZ	TestSuiteZaddTestZ	makeSuiter�r�rrDrer�r�)�recurser�r�r�r�Zsuiterrr�buildtestsuiteVs"r�FcCstjdd�jt|d��S)Nr)�	verbosity)r�)r�ZTextTestRunnerZrunr�)r�rrr�runtestsuitejsr�)T)F)rCrrr�rar
r�rMrr>r�rrrrrZTestCaserrDrer�r�r�r�r�r�rrrr�<module>"s.
doU/'