
    bi@                       d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ d dlZd dlZd dlmZ d Zd Zd Zd Zej(                  d	        Zej,                  j/                  d
ddddgddidf      ej,                  j/                  dd      ej,                  j/                  dd      ej,                  j/                  dd      d                             Zd Zd Zd Zd Z ej:                         d        Zd Z ej@                  d      d        Z! ej@                  d      d        Z"d  Z# ej:                         d!        Z$d" Z%y)#    )annotationsN)	CliRunner)importlib_metadatac                     t               } | j                  t        j                  j                        }|j
                  dk(  sJ d}|j                  |k(  sJ y )N   zTUsage: get [OPTIONS] KEY
Try 'get --help' for help.

Error: Missing argument 'KEY'.
)r   invokedaskcli
config_get	exit_codeoutput)runnerresultexpecteds      N/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/tests/test_cli.pytest_config_get_no_keyr      sS    [F]]488../Fq   	+ 
 ==H$$$    c                    t               } | j                  t        j                  j                  dg      }|j
                  dk(  sJ |j                  j                  d      sJ t        |j                  j                               dkD  sJ y )Narrayr   zbackend:r   )
r   r   r	   r
   r   r   r   
startswithlen
splitlinesr   r   s     r   test_config_get_valuer      sq    [F]]488..	:Fq   ==##J///v}}'')*Q...r   c                     t               } | j                  t        j                  j                  dg      }|j
                  dk7  sJ |j                  j                  d      sJ y )Nbad_keyr   zSection not found)r   r   r	   r
   r   r   r   r   r   s     r   test_config_get_bad_valuer   '   sR    [F]]488..<Fq   ==##$7888r   c                     t         j                  j                  dd i      5  t               } | j	                  t         j
                  j                  dg      }|j                  dk(  sJ |j                  dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nzfoo.barr   zNone
)	r	   configsetr   r   r
   r   r   r   r   s     r   test_config_get_noner!   .   su    	)T*	+ )txx22YK@1$$$}}(((	) ) )s   ABBc              #    K   |j                  dt        |              t        j                  j                  j                         }t        j                  t        j                        t        _        t        |       gt        j                  _        	 t        j                  |        t        j                  t        j                        t        _        t        j                  j                  j                  |       y # t        j                  t        j                        t        _        t        j                  j                  j                  |       w xY ww)NDASK_CONFIG)setenvstrr	   r   __dict__copy	importlibreloadpathspathlibPathupdate)tmpdirmonkeypatch	originalss      r   tmp_conf_dirr1   6   s     
 }c&k2$$))+I""4;;/DKVDKK/ll6""&&t{{3##I.  &&t{{3##I.s    BEC? )AE?AEEvalue333MiBr      foobarempty_config)TFfile)Nzbar.yamlzfoo/bar.yamlexisting_key_config_filec                   | |xs dz  }|sHdddii}|j                   j                  dd       |j                  t        j                  |             nt               }|j                         rJ dt        |      g}|r|j                  dt        |      g       t               }|r[|sYt        j                  |       d	z  }dd
dt        |      g}	|j                  t        j                  j                  |	d       ddd
ii}|j                  t        j                  j                  |d      }
d| d| d}||
j                   k(  sJ t        j"                  |j%                               }|j'                  dd|ii       ||k(  sJ y )Nz	dask.yaml	dataframer5   r6   T)parentsexist_ok	fizz.buzzz--filezexisting_conf.yamlfoobarFcatch_exceptionsfizzbuzzzUpdated [fizz.buzz] to [z], config saved to 
)parentmkdir
write_textyamldumpdictexistsr%   extendr   r+   r,   r   r	   r
   
config_setr   	safe_load	read_textr-   )r1   r2   r7   r8   r9   config_fileexpected_confcmdr   cmd_r   r   actual_confs                r   test_config_set_valuerU   F   sz    $"5+6K$uen5   =tyy78%%'''E

#C 

Hc+./0[F ll<03GGXx[1ABdhh))4%H  &(!34]]488..e]LF)%0CK=PRSHv}}$$$..!6!6!89K&65/23K'''r   c                <   t               }|j                  t        j                  j                  dgd      }d|  d}|j
                  |k(  sJ | dz  }| dz  }| dz  }|j                  t        j                  d	d
dii             |j                  t        j                  d	d
dii             |j                  t        j                  dddii             |j                  t        j                  j                  dgd      }d| d| d}|j
                  |k(  sJ y )Nr>   Fr@   z:Unable to find [fizz.buzz] in any of the following paths:
rD   z
conf1.yamlz
conf2.yamlz
conf3.yamlrB   rC   r4   r   r5   r6   z*Found [fizz.buzz] in the following files:
z  [fizz.buzz=1]
z  [fizz.buzz=2]
)	r   r   r	   r
   config_findr   rG   rH   rI   )r1   r   r   r   conf1conf2conf3s          r   test_config_findr[   y   s"   [F ]]488//+QV]WF
El^SUV  ==H$$$<'E<'E<'E	TYY456	TYY456	TYYqz234]]488//+QV]WF5'"'"	$ 
 ==H$$$r   c                     t               } | j                  t        j                  j                        }|j
                  dk(  sJ d|j                  v sJ y )Nr   zarray:)r   r   r	   r
   config_listr   r   r   s     r   test_config_listr^      sG    [F]]488//0Fq   v}}$$$r   c                     t               } | j                  t        j                  j                  dg      }|j                  dk(  sJ |j
                  dt        j                   dk(  sJ y )Nz	--versionr   zcli, version rD   )r   r   r	   r
   r   r   __version__r   s     r   test_versionra      sY    [F]]488<<+7Fq   ==mD,<,<+=R@@@@r   c                    t               } | j                  t        j                  j                        }|j
                  dk(  sJ t        j                  |j                        }|d   dj                  d t        j                  d d D              k(  sJ |d   t        j                  k(  sJ |d   t        j                         j                  k(  sJ 	 ddlm} |d	   |k(  sJ y # t"        $ r d }Y w xY w)
Nr   Python.c              3  2   K   | ]  }t        |        y wN)r%   ).0xs     r   	<genexpr>z%test_info_versions.<locals>.<genexpr>   s     &L!s1v&Ls      r	   Platform)r`   distributed)r   r   r	   r
   versionsr   jsonloadsr   joinsysversion_infor`   platformunamesystemrl   ImportError)r   r   tabledistributed_versions       r   test_info_versionsry      s    [F]]488,,-Fq   
 JJv}}%E?chh&Ls7G7G7K&LLLLL=D,,,,, 0 7 7777#B #6666  #"#s   C% %C32C3c                      y rf    r{   r   r   	dummy_clir|          r   c                      y rf   r{   r{   r   r   bad_commandr      s    r   good)namec                      y rf   r{   r{   r   r   good_commandr      r}   r   c                      y rf   r{   r{   r   r   good_command_2r      r}   r   c                    ddl m}  t        j                  ddd      }t        j                  ddd      } G d	 d
      }t	        j
                  t        d      5   | t        |       d d d        t	        j
                  t        d      5   | t         |              d d d         | t        |       dt        j                  v sJ t        j                  d   t        u sJ y # 1 sw Y   |xY w# 1 sw Y   RxY w)Nr   _register_command_epbadzdask.tests.test_cli:bad_commanddask_clir   r2   groupr    dask.tests.test_cli:good_commandc                  "    e Zd Zed        Zd Zy))test_register_command_ep.<locals>.ErrorEPc                     y)Nr5   r{   selfs    r   r   z.test_register_command_ep.<locals>.ErrorEP.name   s    r   c                    t        d      )Nz Entrypoint could not be imported)rv   r   s    r   loadz.test_register_command_ep.<locals>.ErrorEP.load   s    @AAr   N)__name__
__module____qualname__propertyr   r   r{   r   r   ErrorEPr      s    		 
		Br   r   zmust be instances ofmatchzexception occurred)
dask.clir   r   
EntryPointpytestwarnsUserWarningr|   commandsr   )r   bad_epgood_epr   s       r   test_register_command_epr      s    -**/F !++0GB B 
k)?	@ 0Y/0 
k)=	> 3Y	23 G,Y'''''f%5550 03 3s   C%C1%C.1C:c                      y rf   r{   r{   r   r   dummy_cli_2r      r}   r   c                    ddl m}  t        j                  ddd      }t        j                  ddd      } | t        |       t        j                  t        d	
      5   | t        |       d d d        y # 1 sw Y   y xY w)Nr   r   oner   r   r   twoz"dask.tests.test_cli:good_command_2z'While registering the command with namer   )r   r   r   r   r   r   r   r   )r   r   r   s      r   $test_repeated_name_registration_warnr      ss    -

'
'0C 
'
'2C c*	k)R	S /[#./ / /s   A66A?)&
__future__r   r(   rn   r+   rs   rq   clickr   rH   click.testingr   r	   r   dask._compatibilityr   r   r   r   r!   fixturer1   markparametrizerU   r[   r^   ra   ry   r   r|   r   commandr   r   r   r   r   r{   r   r   <module>r      s|   "     
    #   2	%/9) / / 8QA"MN7!CD3]C,( D E 8 O,(^%6%A7, 	 		 F	 	 F	 	6D 	 	/r   