o
     ¢iÅ  ã                	   @   sŠ  U d dl mZ d dlmZmZ d dlZd dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZ eƒ Zej dd	g¡d
d„ ƒZdd„ Zddddddœdddddœgdddgdœdddgd gd!œd"d#d$gdœgd%œZeeef ed&< e e¡Zejd'efd(d)„ƒZd)efd*d+„Zd)efd,d-„Zd)efd.d/„Zd)ed0ejfd1d2„Zejj eƒ  d3d4ej d5g d6¢¡d'ed5efd7d8„ƒƒZ!d'ed)efd9d:„Z"dS );é    )ÚPath)ÚAnyÚDictN)Ú	CliRunner)Úapp)ÚHELP)Úget_git_versionÚcmdz--helpc                 C   s.   t  t| g¡}t ¡ D ]	}||jv sJ ‚qdS )z'Basic test to confirm help text appearsN)ÚrunnerÚinvoker   r   Ú
splitlinesÚstdout)r	   ÚresultÚline© r   úQ/home/ubuntu/.local/lib/python3.10/site-packages/weasel/tests/cli/test_cli_app.pyÚtest_show_help   s   ÿr   c                   C   s"   zt ƒ  W dS  ty   Y dS w )NTF)r   ÚRuntimeErrorr   r   r   r   Úhas_git   s   ÿr   zSample projectzThis is a project for testingzassets/weasel-readme.mdzZhttps://github.com/explosion/weasel/raw/9a3632862b47069d2f9033b773e814d4c4e09c83/README.mdÚ 65f4c426a9b153b7683738c92d0d20f9)ÚdestÚurlÚchecksumzassets/pyproject.tomlz_https://github.com/explosion/weasel/raw/9a3632862b47069d2f9033b773e814d4c4e09c83/pyproject.tomlÚ 1e2da3a3030d6611520952d5322cd94eT)r   r   r   ÚextraÚokzprint okzpython -c "print('okokok')")ÚnameÚhelpÚscriptÚcreatezmake a fileztouch abc.txtúabc.txt)r   r   r   ÚoutputsÚcleanzremove test filez
rm abc.txt)ÚtitleÚdescriptionÚassetsÚcommandsÚSAMPLE_PROJECTÚtmp_pathc                 c   s*    | d }|  ¡  |d  t¡ |V  d S )NÚprojectúproject.yml)ÚmkdirÚ
write_textÚSAMPLE_PROJECT_TEXT)r(   Úpathr   r   r   Úproject_dirH   s
   €
r/   c                 C   sn   | d }|  ¡ rJ dƒ‚tƒ  tdt| ƒdt|ƒg¡}|jdks"J ‚| ¡ s(J ‚| d¡}td |v s5J ‚d S )Nú	README.mdzREADME already existsÚdocumentz-or   zutf-8r$   )	Úexistsr   r   r   ÚstrÚ	exit_codeÚis_fileÚ	read_textr'   )r/   Úreadme_pathr   Útextr   r   r   Útest_project_documentP   s   ÿ
r9   c                 C   sŽ   | d }|  ¡ rJ dƒ‚tƒ  tdt| ƒg¡}|jdksJ ‚|d  ¡ s(J dƒ‚tƒ  tddt| ƒg¡}|jdks;J ‚|d  ¡ sEJ dƒ‚d S )	Nr%   zAssets dir is already presentr   zweasel-readme.mdzAssets not downloadedz--extrazpyproject.tomlzExtras not downloaded)r2   r   r   r   r3   r4   r5   )r/   Ú	asset_dirr   r   r   r   Útest_project_assets\   s   r;   c                 C   s¦   | d }t ƒ  tdddt| ƒg¡}|jdksJ ‚| ¡ rJ ‚t ƒ  tddt| ƒg¡}|jdks1J ‚| ¡ s7J ‚t ƒ  tddt| ƒg¡}|jdksJJ ‚d|jv sQJ ‚d S )Nr    Úrunú--dryr   r   r   Úokokok)r   r   r   r3   r4   r5   r   )r/   Ú	test_filer   r   r   r   Útest_project_runh   s   r@   Úmonkeypatchc                 C   s¬   | d  t ƒ  tdddt| ƒg¡}|jdksJ ‚d|jvsJ ‚d|jvs&J ‚| dd	¡ | d
d¡ t ƒ  tdddt| ƒg¡}|jdksFJ ‚d|jv sMJ ‚d|jv sTJ ‚d S )Nr    r<   r=   r   r   z:You've set a `SPACY_CONFIG_OVERRIDES` environment variablezAYou've set a `SPACY_PROJECT_USE_GIT_VERSION` environment variableÚSPACY_CONFIG_OVERRIDESÚtestÚSPACY_PROJECT_USE_GIT_VERSIONÚfalse)r   r   r   r3   r4   ÚoutputÚsetenv)r/   rA   r   r   r   r   Útest_check_spacy_env_varsv   s"   ÿÿÿrH   zgit not installed)ÚreasonÚoptions_string)Ú z--branch v3z8--repo https://github.com/explosion/projects --branch v3c                 C   sl   | d }d}|sg }n|  ¡ }tƒ  td|g|¢t|ƒ‘¡}|jdks%J ‚d|jv s,J ‚|d  ¡ s4J ‚d S )NÚproject_clonezbenchmarks/ner_conll03Úcloner   zweasel assetsr0   )Úsplitr   r   r   r3   r4   rF   r5   )r(   rJ   ÚoutÚtargetÚoptionsr   r   r   r   Útest_project_clone’   s   rR   c                 C   s  t tƒ}d}| d }| ¡  |t|ƒi|d< t |¡}|d  |¡ |d }tƒ  t	ddt|ƒg¡}|j
dks9J ‚| ¡ s?J ‚tƒ  t	d	|t|ƒg¡}|j
dksRJ ‚tƒ  t	dd
t|ƒg¡}|j
dkseJ ‚| ¡ rkJ ‚tƒ  t	d|t|ƒg¡}|j
dks~J ‚| ¡ s„J ‚d S )NÚxyzÚremoteÚremotesr*   r    r<   r   r   Úpushr"   Úpull)Údictr'   r+   r3   ÚsrslyÚ
yaml_dumpsr,   r   r   r   r4   r5   r2   )r(   r/   ÚprojrT   Ú
remote_dirÚ	proj_textr?   r   r   r   r   Útest_project_push_pull©   s&   
r^   )#Úpathlibr   Útypingr   r   ÚpytestrY   Útyper.testingr   Úweaselr   Úweasel.cli.mainr   Úweasel.utilr   r
   ÚmarkÚparametrizer   r   r'   r3   Ú__annotations__rZ   r-   Úfixturer/   r9   r;   r@   ÚMonkeyPatchrH   ÚskipifrR   r^   r   r   r   r   Ú<module>   sj    
		ýüúýüýôð
$þ	