U
    +if>                     @   s   d dl Z d dlZd dlZd dlZd dlmZmZmZ d dlm	Z	 d dl
Ze pPg Ze Zejje	 pje ddZejjeedkddZdd	 Zd
d Zdd Zdd Zedd Zeejdddddgdd Zdd ZdS )    N)can_set_localeget_locales
set_locale)is_platform_windowszNeed non-Windows and locales)reason   z)Need multiple locales for meaningful testc                   C   s   t dstd S )N r   AssertionError r   r   X/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/config/test_localization.pytest_can_set_locale_valid_set   s    r   c                   C   s   t drtd S )Nznon-existent_localer	   r   r   r   r   test_can_set_locale_invalid_set#   s    r   c              	   C   s:   dd }|    }|td| tdr,tW 5 Q R X d S )Nc                   S   s
   t  d S N)
ValueErrorr   r   r   r   mock_get_locale-   s    z8test_can_set_locale_invalid_get.<locals>.mock_get_locale	getlocaler   )contextsetattrlocaler   r
   )Zmonkeypatchr   mr   r   r   test_can_set_locale_invalid_get(   s    
r   c                   C   s   t tdkstd S )Nr   )len_all_localesr
   r   r   r   r   test_get_locales_at_least_one5   s    r   c                  C   s*   t d } tt| d d ddks&td S )Nr      )prefix)r   r   r   r
   )Zfirst_localer   r   r   test_get_locales_prefix:   s    r   zlang,enc)it_CHzUTF-8)en_USascii)zh_CNGB2312)it_ITz
ISO-8859-1c              
   C   s   t dd tD rtd t|j}| |f}t|snd}tjt	j
|d t| W 5 Q R X W 5 Q R X nBt|4}|d\}}t|j}||f}||kstW 5 Q R X t	 }|tkstd S )Nc                 s   s   | ]}|d kV  qd S r   r   ).0xr   r   r   	<genexpr>K   s     z"test_set_locale.<locals>.<genexpr>zCurrent locale is not set.zunsupported locale setting)match.)all_current_localepytestskipcodecslookupnamer   Zraisesr   Errorr   splitr
   r   )langencZ
new_localemsgZnormalized_localeZnew_langZnew_encZcurrent_localer   r   r   test_set_locale@   s     


r5   c                  C   sH   t jd} | r| dd nd}ttjjj	j
t|j
ksDtd S )NLC_ALLr(   zutf-8)osenvirongetr1   r-   r.   pdoptionsdisplayencodingr/   r
   )Zsystem_localeZsystem_encodingr   r   r   test_encoding_detectedf   s    
r?   )r-   r   r8   r+   Zpandas._config.localizationr   r   r   Zpandas.compatr   Zpandasr;   r   r   r*   markZskipifZ
pytestmarkr   Z_skip_if_only_one_localer   r   r   r   r   Zparametrizer5   r?   r   r   r   r   <module>   sB   

 
 
	