File: //usr/local/lib/python3.7/test/__pycache__/test_stat.cpython-37.opt-2.pyc
B
��g� � @ s� d dl Z d dlZd dlZd dlmZmZ eddgd�Zeddgd�ZG dd� d�ZG d d
� d
ee j �Z
G dd� dee j �Zed
kr�e �
� dS )� N)�TESTFN�import_fresh_module�stat�_stat)Zfresh)Zblockedc @ sl e Zd ZdZdddddddd d
ddd
hZddddddddddh
Zddddddddd d!h
Zd"d#d$d%d&d'd(d)d*d+d,�
Zd-d.d.d/d0d1d1d2d2d3d3d4d5d6d*d)d&d$d#d7�Zd5d-d3d6d8d$d9d2d:d;d<d#d.d/d&d1d=d>�Z d?d@� Z
e
ZedAfdBdC�Z
dDdE� ZdFdG� ZdHdI� Ze�eedJ�dK�dLdM� �Ze�eedN�dO�dPdQ� �Ze�ejdRkdS�dTdU� �ZdVdW� Ze�ejdXkdY�dZd[� �ZdS )\�TestFilemodeN� SF_APPEND�SF_ARCHIVED�SF_IMMUTABLE�SF_NOUNLINK�SF_SNAPSHOT� UF_APPEND�
UF_COMPRESSED� UF_HIDDEN�UF_IMMUTABLE� UF_NODUMP�UF_NOUNLINK� UF_OPAQUE�S_IFBLK�S_IFCHR�S_IFDIR�S_IFIFO�S_IFLNK�S_IFREG�S_IFSOCK�S_IFDOOR�S_IFPORT�S_IFWHT�S_ISBLK�S_ISCHR�S_ISDIR�S_ISFIFO�S_ISLNK�S_ISREG�S_ISSOCK�S_ISDOOR�S_ISPORT�S_ISWHTr � � � � � � � � � )
�ST_MODE�ST_INO�ST_DEV�ST_NLINK�ST_UID�ST_GID�ST_SIZE�ST_ATIME�ST_MTIME�ST_CTIMEi i i i� � � �@ �8 � � )�S_ISUID�S_ISGID�S_ENFMT�S_ISVTX�S_IRWXU�S_IRUSR�S_IREAD�S_IWUSR�S_IWRITE�S_IXUSR�S_IEXEC�S_IRWXG�S_IRGRP�S_IWGRP�S_IXGRP�S_IRWXO�S_IROTH�S_IWOTH�S_IXOTHi @ i � i i i i )�FILE_ATTRIBUTE_ARCHIVE�FILE_ATTRIBUTE_COMPRESSED�FILE_ATTRIBUTE_DEVICE�FILE_ATTRIBUTE_DIRECTORY�FILE_ATTRIBUTE_ENCRYPTED�FILE_ATTRIBUTE_HIDDEN�FILE_ATTRIBUTE_INTEGRITY_STREAM�FILE_ATTRIBUTE_NORMAL�"FILE_ATTRIBUTE_NOT_CONTENT_INDEXED�FILE_ATTRIBUTE_NO_SCRUB_DATA�FILE_ATTRIBUTE_OFFLINE�FILE_ATTRIBUTE_READONLY�FILE_ATTRIBUTE_REPARSE_POINT�FILE_ATTRIBUTE_SPARSE_FILE�FILE_ATTRIBUTE_SYSTEM�FILE_ATTRIBUTE_TEMPORARY�FILE_ATTRIBUTE_VIRTUALc C sL yt �t� W n8 tk
rF yt �t� W n tk
r@ Y nX Y nX d S )N)�os�remover �OSError�rmdir)�self� ri �*/usr/local/lib/python3.7/test/test_stat.py�setUpL s zTestFilemode.setUpTc C s2 |rt �|�j}nt �|�j}| j�|�}||fS )N)rd �lstat�st_moder �statmod�filemode)rh Zfnamerl rm �modestrri ri rj �get_modeV s
zTestFilemode.get_modec C s� t | jd|�d� �}| �| j�|�|� d| }x\| jD ]R}t | j|d �}|d krf||kr:t|��q:||kr~| �||�� q:| �||�� q:W d S )NZS_IF�FZS_IS) �getattrrn �lstrip�assertEqual�S_IFMT�format_funcs�
ValueError�
assertTrueZassertFalse)rh �name�modeZfmtZtestname�funcname�funcri ri rj �
assertS_IS^ s zTestFilemode.assertS_ISc C s� t td�� W d Q R X tjdk�r@t�td� | �� \}}| �|d� | �d|� | �| j� |�| jj
� t�td� | �� \}}| �|d� | �d|� | �| j� |�| jj� t�td� | �� \}}| �|d � | �d|� | �| j� |�| jj� t�td
� | �� \}}| �d|� | �|d� | �| j� |�d
� nPt�td� | �� \}}| �|d d� d
� | �d|� | �| j�
|�| jj� d S )N�w�posixi� z
-rwx------ZREGr= z
----rwx---r- z
-------rwxi$ z
-r--r--r--r) z-rw)�openr rd rz �chmodrq ru r~ rn �S_IMODErD rK rO rv r )rh rm rp ri ri rj � test_modeo s@
zTestFilemode.test_modec C sZ t �t� t �td� | �� \}}| �d|� t jdkrF| �|d� n| �|d d� d S )Ni� ZDIRr� z
drwx------r �d)rd �mkdirr r� rq r~ rz ru )rh rm rp ri ri rj �test_directory� s
zTestFilemode.test_directory�symlinkzos.symlink not availablec
C sv yt �t �� t� W n4 ttfk
rH } zt�t|���W d d }~X Y n*X | � � \}}| �
|d d� | �d|� d S )Nr �lZLNK)rd r� �getcwdr rf �NotImplementedError�unittestZSkipTest�strrq ru r~ )rh �errrm rp ri ri rj � test_link� s zTestFilemode.test_link�mkfifozos.mkfifo not availablec
C sj yt �td� W n0 tk
r@ } z| �d| � W d d }~X Y nX | �� \}}| �|d� | �d|� d S )Ni� zos.mkfifo(): %sz
prwx------ZFIFO)rd r� r �PermissionErrorZskipTestrq ru r~ )rh �erm rp ri ri rj � test_fifo� s zTestFilemode.test_fifor� zrequires Posixc C s� t j�t j�r>| jt jdd�\}}| �|d d� | �d|� xHdD ]@}t j�|�rD| j|dd�\}}| �|d d� | �d|� P qDW d S ) NF)rl r �cZCHR)z/dev/sdaz/dev/hda�bZBLK)rd �path�exists�devnullrq ru r~ )rh rm rp Zblockdevri ri rj �test_devices� s
zTestFilemode.test_devicesc C s� x0| j �� D ]"\}}t| j|�}| �|||� qW x0| j�� D ]"\}}t| j|�}| �|||� q>W x&| jD ]}t| j|�}| �|t� qlW x&| j D ]}t| j|�}| �|t� q�W x8| j
D ].}t| j|�}| �t|�� | �|d�d� q�W d S )Nr )
�stat_struct�itemsrs rn ru �permission_bits�
file_flagsZassertIsInstance�int�formatsrw ry �callable)rh �key�value�modvaluer} ri ri rj �test_module_attributes� s z#TestFilemode.test_module_attributes�win32z-FILE_ATTRIBUTE_* constants are Win32 specificc C sN xHt | j�� �D ]6\}}| �t| j|�|� t| j|�}| �|||� qW d S )N)�sorted�file_attributesr� ry �hasattrrn rs ru )rh r� r� r� ri ri rj �test_file_attribute_constants� s z*TestFilemode.test_file_attribute_constants)�__name__�
__module__�__qualname__rn r� r� rw r� r� r� rk ZtearDownr rq r~ r� r� r� Z
skipUnlessr� rd r� r� rz r� r� �sys�platformr� ri ri ri rj r s�
&
r c @ s e Zd ZeZdS )�TestFilemodeCStatN)r� r� r� �c_statrn ri ri ri rj r� � s r� c @ s e Zd ZeZdS )�TestFilemodePyStatN)r� r� r� �py_statrn ri ri ri rj r� � s r� �__main__)r� rd r� Ztest.supportr r r� r� r ZTestCaser� r� r� �mainri ri ri rj �<module> s U