U
    O8cB                     @   s  d dl Z d dlZd dlZd dlZd dlmZ d dlmZ dgdgdgdgdgd	gdd
gdd
gdd
gdd
gd	d
gddgd	dgddgd	dggZe j	ej
ejgddd Ze j	dd Ze jjedde jdedd Ze jjedde jdedd ZdS )    N)_shell_utils)IS_WASMZexezpath/exezpath\exez\\server\path\exezpath to/exezpath to\exez--flagz--flag-"quoted"z"--flag-quoted")paramsc                 C   s   | j S N)param)request r   J/tmp/pip-unpacked-wheel-fd_gsd75/numpy/distutils/tests/test_shell_utils.pyParser   s    r
   c                 C   s@   | t jkrtd | t jkr&dd S | t jkr8dd S td S )Nz$Unable to run with non-native parserc                 S   s
   t | S r   
subprocesscheck_outputcmdr   r   r	   <lambda>-       zrunner.<locals>.<lambda>c                 S   s   t j| ddS )NT)shellr   r   r   r   r	   r   0   r   )r   ZNativeParserpytestskipWindowsParserPosixParserNotImplementedError)r
   r   r   r	   runner'   s    



r   zCannot start subprocess)reasonargvc                 C   s<   t jddg}| || }|| }t||ks8tdS )zB
    Test that join produces strings understood by subprocess
    z-cz1import json, sys; print(json.dumps(sys.argv[1:]))N)sys
executablejoindecodejsonloadsAssertionError)r
   r   r   r   joinedZjson_outr   r   r	   test_join_matches_subprocess5   s     r#   c                 C   sD   z |  |}|| |kstW n tk
r>   td Y nX dS )z:
    Test that split is the inverse operation of join
    zNot implementedN)r   splitr!   r   r   r   )r
   r   r"   r   r   r	   test_roundtripE   s
    
r%   )r   r   r   r   Znumpy.distutilsr   Znumpy.testingr   Z
argv_casesZfixturer   r   r
   r   markZskipifZparametrizer#   r%   r   r   r   r	   <module>   sD   

