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.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_HasENUScCs8x2|jj�D]$}|jj|�sdstd|d��qWdS)z<Test whether all advertised languages are in fact available.Fz
language 'z' advertised but non-existentN)r Zlist_languagesr&�AssertionError)r!�langrrr�test_LangsAreAvailTszTestBroker.test_LangsAreAvailcCstxn|jj�D]`\}}|j|jj|��|jj|�sFdsFtd|d��||jj�krdstdt|�d��qWdS)z<Test whether all advertised providers are in fact available.Fz
language 'z' advertised but non-existentz	provier 'N)r �
list_dictsr%r&r(Zdescribe�str)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_paramr7r Z	get_paramZ	set_paramr)r!rrr�test_GetSetParam�szTestBroker.test_GetSetParamN)�__name__�
__module__�__qualname__�__doc__r"r#r'r*r.r;r>rArrrrrCs	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)rG)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%rG�check�assertFalse�assertRaisesr6)r!rrr�
test_check�s
zTestDict.test_checkcCs|j|jjtjk�dS)z-Test that the dict's broker is set correctly.N)r%rGZ_broker�enchant)r!rrr�test_broker�szTestDict.test_brokercCs|j|jjd�dS)z*Test that the dict's tag is set correctly.r$N)r7rGr8)r!rrr�test_tag�szTestDict.test_tagcCs>|j|jjd��|jd|jjd�k�|jt|jjd�dS)z2Test that suggest() gets simple suggestions right.rHrIrJN)r%rGrK�suggestrMr6)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%�lenrGrR)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%�typerrLrGrKrR)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.�LozzrHN)rLrGrK�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)rLrGrK�addr%rZ�remover[)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_languagerM�Errorr<r7r8ZDictNotFoundError)r!ZdefLangr9rrr�test_DefaultLang�szTestDict.test_DefaultLangcCsdtd�}|j|jd��tjtj|��}|j|jd��|j|jd��|j�|j|jd��dS)z2Test that pickling doesn't corrupt internal state.ZenrHN)r<r%rK�pickle�loads�dumpsZ_free)r!r=Zd2rrr�
test_picklingszTestDict.test_picklingN)rBrCrDrEr"r#r'rNrPrQrSrUrXr\r_rbrfrrrrrF�s	rFc@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�rmtreeri)r!rkrrrr# szTestPWL.tearDowncCsddl}|j�S)Nr)�tempfile�mkdtemp)r!rmrrrrh$szTestPWL._mkdtempNcCs<|dkr|j}tjj|j|�}tjj|�s8t|d�j�|S)N�w)rjr�path�joinri�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.ro�
N)rsrur�flushrt)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>)rsru�	readlinesrt)r!ryrxrrr�getPWLContents9szTestPWL.getPWLContentscCsN|jddg�t|j��}|j|jd��|j|jd��|j|jd��dS)z(Test that basic checking works for PWLs.�SazzrYrHN)r{�request_pwl_dictrur%rKrL)r!r9rrrrN@s
zTestPWL.test_checkcCstt|j���}|j|�dS)z-Test that unicode PWL filenames are accepted.N)r�rrur%)r!r9rrr�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�rurLrKr]r%r�rZ)r!r9rrr�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�rYZSazZlazr�ZFlagsZsazzN)r{r�rur%rRr]rL)r!r9rrr�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�rYr$zpel.txtrHrIr�ZFlagnN)
r{�DictWithPWLrur%rKrLr]r�rRr^)r!r9rrr�
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$NrHrIr�)r�r%rKrLr]r^)r!r9rrr�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.rHZthereZduckrZ
notinthere�N)ZPyPWLr%�listZ_wordsr]rTr^)r!r9Zwsrrr�
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)rrjr�rur%)r!r9rrr�test_UnicodeCharsInPath�s
zTestPWL.test_UnicodeCharsInPath)N)rBrCrDrEr"r#rhrur{r�rNr�r�r�r�r�r�r�rrrrrgs
	

rgc@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)r7r)r!�wordZsuggsrrr�test_trim_suggestions�s
zTestUtils.test_trim_suggestionsN)rBrCrDrEr�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�utfrGrZ
bytestringZbytestringsr,Z	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>)rO�
enchant.utilsZ
enchant.pypwlZenchant.tokenizeZenchant.tokenize.enZenchant.checkerZenchant.checker.CmdLineCheckerZ%enchant.checker.GtkSpellCheckerDialog�ImportErrorZ$enchant.checker.wxSpellCheckerDialog�popr5r��_check_docstrings�extendr7rT)r!rO�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)NrrEcSsg|]}|�qSrr)r~rorrrr��sz4TestDocStrings._check_docstrings.<locals>.<listcomp>�_DOC_ERRORSZen_AU)�filtersr�z'
DOCSTRING SPELLING ERROR: %s %s %d %s
)�file�__�__file__rC�	__class__rO)rOr?�getattrZcheckerZSpellCheckerrE�tokenizeZ	URLFilterrTr��lower�WORDSr�r5ZwordposrRrrr	�dirr3�globalsr�rrp�dirname)r!r�r�rOZskip_errorsZchkr�err�msgr4ZchildZcmodZcclassrrrr��s>




z TestDocStrings._check_docstringsN)rBrCrDrEr�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)rhri�_insDir)r!rrrr"s
zTestInstallEnv.setUpcCsddl}|j|j�dS)Nr)rkrlri)r!rkrrrr#szTestInstallEnv.tearDowncCsddl}|j�S)Nr)rmrn)r!rmrrrrhszTestInstallEnv._mkdtempcCsNddl}ddl}ddl}|jj|j|j�}|j|�|jd|jj|d��dS)NrrO)	rrrkrprqrir��makedirsZcopytree)r!rrrk�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)rrrprqrir�r,r�
isinstance�encode�getfilesystemencoding�environr�
executabler7)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)rBrCrDrEr"r#rhr�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)rhri)r!rrrr"3szTestPy2exe.setUpcCsddl}|j|j�dS)Nr)rkrlri)r!rkrrrr#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)rp)r�r�z..Ztoolszsetup.py2exe.pyz%s %s -q py2exe --dist-dir="%s"z\test_pyenchant.exe)rrrkrpZos.pathr��py2exer�r�r�rqrrr�rirr7r%)r!rrrkrpr�r�Zsetup_pyZbuildCmdr�r�rrr�test_py2exe:s&

zTestPy2exe.test_py2execCsddl}|j�S)Nr)rmrn)r!rmrrrrhQszTestPy2exe._mkdtempN)	rBrCrDrEr�r"r#r�rhrrrrr�/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�rrFrgr�r�)�recurser�r�r�r�Zsuiterrr�buildtestsuiteVs"r�FcCstjdd�jt|d��S)Nr)�	verbosity)r�)r�ZTextTestRunnerZrunr�)r�rrr�runtestsuitejsr�)T)F)rErrr�rcr
r�rOrr@r�rrrrrZTestCaserrFrgr�r�r�r�r�r�rrrr�<module>"s.
doU/'