
    i              	       `   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                   j#                  dd	g      d
        Z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j.                  e      Zej2                  d%efd&       Zd'efd(Zd'efd)Zd'efd*Zd'ed+ej<                  fd,Zej                   jA                   e        d-.      ej                   j#                  d/g d0      d%ed/efd1              Z!d%ed'efd2Z"y)3    )Path)AnyDictN)	CliRunner)app)HELP)get_git_versioncmdz--helpc                     t         j                  t        | g      }t        j                         D ]  }||j
                  v rJ  y)z'Basic test to confirm help text appearsN)runnerinvoker   r   
splitlinesstdout)r
   resultlines      n/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/weasel/tests/cli/test_cli_app.pytest_show_helpr      s>    
 ]]3&F! %v}}$$$%    c                  8    	 t                y# t        $ r Y yw xY w)NTF)r	   RuntimeError r   r   has_gitr      s"     s   
 	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              #   n   K   | dz  }|j                          |dz  j                  t               | y w)Nprojectproject.yml)mkdir
write_textSAMPLE_PROJECT_TEXT)r,   paths     r   project_dirr4   H   s2     iDJJL	M%%&9:
Js   35r4   c           	      &   | dz  }|j                         rJ d       t               j                  t        dt	        |       dt	        |      g      }|j
                  dk(  sJ |j                         sJ |j                  d      }t        d   |v sJ y )N	README.mdzREADME already existsdocumentz-or   zutf-8r(   )	existsr   r   r   str	exit_codeis_file	read_textr+   )r4   readme_pathr   texts       r   test_project_documentr?   P   s    +K!!#<%<<#[j#k*D#k2BCF q        )D-(D000r   c                    | dz  }|j                         rJ d       t               j                  t        dt	        |       g      }|j
                  dk(  sJ |dz  j                         sJ d       t               j                  t        ddt	        |       g      }|j
                  dk(  sJ |dz  j                         sJ d       y )	Nr)   zAssets dir is already presentr   zweasel-readme.mdzAssets not downloadedz--extrazpyproject.tomlzExtras not downloaded)r8   r   r   r   r9   r:   r;   )r4   	asset_dirr   s      r   test_project_assetsrB   \   s    h&I!B#BB![hK0@%ABFq   **335N7NN5[h	3{;K%LMFq   ((113L5LL3r   c           	         | dz  }t               j                  t        dddt        |       g      }|j                  dk(  sJ |j                         rJ t               j                  t        ddt        |       g      }|j                  dk(  sJ |j                         sJ t               j                  t        ddt        |       g      }|j                  dk(  sJ d|j                  v sJ y )Nr$   run--dryr#   r   r   okokok)r   r   r   r9   r:   r;   r   )r4   	test_filer   s      r   test_project_runrH   h   s    i'I[eWhK@P%QRFq     """[eXs;7G%HIFq   [eT3{3C%DEFq   v}}$$$r   monkeypatchc           	         | dz   t               j                  t        dddt        |       g      }|j                  dk(  sJ d|j
                  vsJ d|j
                  vsJ |j                  dd	       |j                  d
d       t               j                  t        dddt        |       g      }|j                  dk(  sJ d|j
                  v sJ d|j
                  v sJ y )Nr$   rD   rE   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   r9   r:   outputsetenv)r4   rI   r   s      r   test_check_spacy_env_varsrQ   v   s    )[eWhK@P%QRFq   D}}		 	L}}		 /86@[eWhK@P%QRFq   G6==XXXK==		r   zgit not installed)reasonoptions_string) z--branch v3z8--repo https://github.com/explosion/projects --branch v3c                    | dz  }d}|sg }n|j                         }t               j                  t        d|g|t	        |            }|j
                  dk(  sJ d|j                  v sJ |dz  j                         sJ y )Nproject_clonezbenchmarks/ner_conll03cloner   zweasel assetsr6   )splitr   r   r   r9   r:   rO   r;   )r,   rS   outtargetoptionsr   s         r   test_project_cloner\      s     _
$C%F &&([gv%J%JS%JKFq   fmm++++&&(((r   c                    t        t              }d}| dz  }|j                          |t        |      i|d<   t	        j
                  |      }|dz  j                  |       |dz  }t               j                  t        ddt        |      g      }|j                  dk(  sJ |j                         sJ t               j                  t        d	|t        |      g      }|j                  dk(  sJ t               j                  t        dd
t        |      g      }|j                  dk(  sJ |j                         rJ t               j                  t        d|t        |      g      }|j                  dk(  sJ |j                         sJ y )Nxyzremoteremotesr/   r$   rD   r#   r   pushr&   pull)dictr+   r0   r9   srsly
yaml_dumpsr1   r   r   r   r:   r;   r8   )r,   r4   projr_   
remote_dir	proj_textrG   r   s           r   test_project_push_pullri      sl   DFH$Js:/DO  &I= ,,Y7i'I[eXs;7G%HIFq   [ffc+6F%GHFq   [eWc+6F%GHFq   !!![ffc+6F%GHFq   r   )#pathlibr   typingr   r   pytestrd   typer.testingr   weaselr   weasel.cli.mainr   weasel.utilr	   r   markparametrizer   r   r+   r9   __annotations__re   r2   fixturer4   r?   rB   rH   MonkeyPatchrQ   skipifr\   ri   r   r   r   <module>rw      s       #    '	 
+% ,% 2 .o:	
 ,t:		
 67	
 !&'!{		
 &#n	
!""S#X "H 'e&&~6  $  	1t 	1	MT 	M%$ %4 f>P>P 8 	M*=>
) 
)s 
) ?
)T  r   