U
    Hvf                     @   sL   d Z ddlZddlZddlmZ ejjeejd ddZ	G dd dZ
dS )	z"
Check the SciPy config is valid.
    N)patchZ_built_with_mesonzRequires Meson builds)reasonc                   @   s>   e Zd ZdddgZeddd Zdd Zd	d
 Zdd ZdS )TestSciPyConfigsZ	CompilerszMachine InformationzPython Informationzscipy.__config__._check_pyyamlc              	   C   s*   t  |_tt t  W 5 Q R X d S )N)ModuleNotFoundErrorZside_effectpytestZwarnsUserWarningscipyshow_config)selfZmock_yaml_importer r   @/tmp/pip-unpacked-wheel-96ln3f52/scipy/misc/tests/test_config.pytest_pyyaml_not_found   s    z&TestSciPyConfigs.test_pyyaml_not_foundc                    s>   t jdd t tstt fdd| jD s:tdd S )NZdictsmodec                    s   g | ]}| kqS r   r   ).0keyconfigr   r   
<listcomp>   s     z3TestSciPyConfigs.test_dict_mode.<locals>.<listcomp>zFRequired key missing, see index of `False` with `REQUIRED_CONFIG_KEYS`)r   r	   
isinstancedictAssertionErrorallREQUIRED_CONFIG_KEYSr
   r   r   r   test_dict_mode   s
    zTestSciPyConfigs.test_dict_modec              	   C   s&   t t tjdd W 5 Q R X d S )NZfoor   )r   ZraisesAttributeErrorr   r	   r   r   r   r   test_invalid_mode$   s    z"TestSciPyConfigs.test_invalid_modec                 C   s   t tjjdkstdd S )N   zGNew mode detected, please add UT if applicable and increment this count)lenr   
__config__ZDisplayModesr   r   r   r   r   test_warn_to_add_tests(   s    z'TestSciPyConfigs.test_warn_to_add_testsN)	__name__
__module____qualname__r   r   r   r   r   r!   r   r   r   r   r      s   
	r   )__doc__r   r   Zunittest.mockr   markZskipifhasattrr    Z
pytestmarkr   r   r   r   r   <module>   s   