Sindbad~EG File Manager
a
��g1! � @ s� d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ eddgd�Zeddgd�Z G dd � d �Z
G d
d� de
e j�ZG dd
� d
e
e j�Z
edkr�e �� dS )� N)�
socket_helper)�TESTFN�import_fresh_module�stat�_stat)Zfresh)Zblockedc @ sF e Zd ZdZh d�Zh d�Zh d�Zddddd d
ddd
dd�
Zddddddddddddddd
dd ddd�Zddddddddddddddd dd d!�Z d"d#� Z
e
Zed$fd%d&�Z
d'd(� Zd)d*� Zd+d,� Ze�eed-�d.�d/d0� �Ze�eed1�d2�d3d4� �Ze�ejd5kd6�d7d8� �Zejd9d:� �Zd;d<� Ze�ejd=kd>�d?d@� �ZdS )A�TestFilemodeN> �UF_IMMUTABLE�UF_NOUNLINK�SF_SNAPSHOT� UF_HIDDEN�SF_IMMUTABLE� UF_OPAQUE�SF_ARCHIVED� SF_APPEND� UF_NODUMP�SF_NOUNLINK� UF_APPEND�
UF_COMPRESSED>
�S_IFCHR�S_IFBLK�S_IFSOCK�S_IFDOOR�S_IFLNK�S_IFPORT�S_IFIFO�S_IFDIR�S_IFWHT�S_IFREG>
�S_ISCHR�S_ISDIR�S_ISLNK�S_ISWHT�S_ISPORT�S_ISFIFO�S_ISSOCK�S_ISDOOR�S_ISBLK�S_ISREGr � � � � � � � � � )
�ST_MODE�ST_INO�ST_DEV�ST_NLINK�ST_UID�ST_GID�ST_SIZE�ST_ATIME�ST_MTIME�ST_CTIMEi 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 sH zt �t� W n4 tyB zt �t� W n ty< Y n0 Y n0 d S �N)�os�remover �OSError�rmdir)�self� rl �*/usr/local/lib/python3.9/test/test_stat.py�setUpN s zTestFilemode.setUpTc C s2 |rt �|�j}nt �|�j}| j�|�}||fS rf )rg �lstat�st_moder �statmod�filemode)rk Zfnamero rp �modestrrl rl rm �get_modeX s
zTestFilemode.get_modec C s� t | jd|�d� �}| �| j�|�|� d| }| jD ]R}t | j|d �}|d u rd||kr8t|��q8||kr|| �||�� q8| �||�� q8d S )NZS_IF�FZS_IS) �getattrrq �lstrip�assertEqual�S_IFMT�format_funcs�
ValueError�
assertTrueZassertFalse)rk �name�mode�fmtZtestname�funcname�funcrl rl rm �
assertS_IS` s
zTestFilemode.assertS_ISc C s� t td�� W d � n1 s 0 Y tjdk�rTt�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�posixr; z
-rwx------ZREGr? z
----rwx---r. z
-------rwxi$ z
-r--r--r--r* z-rw)�openr rg r} �chmodrt rx r� rq �S_IMODErF rM rQ ry r �rk rp rs rl rl rm � test_modeq sH ����zTestFilemode.test_modec C sZ t �t� t �td� | �� \}}| �d|� t jdkrF| �|d� n| �|d d� d S )Nr; �DIRr� z
drwx------r �d)rg �mkdirr r� rt r� r} rx r� rl rl rm �test_directory� s
zTestFilemode.test_directory�symlinkzos.symlink not availablec
C sx zt �t �� t� W n6 ttfyJ } zt�t|���W Y d }~n2d }~0 0 | � � \}}| �
|d d� | �d|� d S )Nr �lZLNK)rg r� �getcwdr ri �NotImplementedError�unittestZSkipTest�strrt rx r� )rk �errrp rs rl rl rm � test_link� s $zTestFilemode.test_link�mkfifozos.mkfifo not availablec
C sl zt �td� W n2 tyB } z| �d| � W Y d }~n
d }~0 0 | �� \}}| �|d� | �d|� d S )Nr; zos.mkfifo(): %sz
prwx------ZFIFO)rg r� r �PermissionErrorZskipTestrt rx r� )rk �erp rs rl rl rm � test_fifo� s $zTestFilemode.test_fifor� zrequires Posixc C s� t j�t j�r>| jt jdd�\}}| �|d d� | �d|� dD ]B}t j�|�rB| j|dd�\}}| �|d d� | �d|� q�qBd S ) NF)ro r �cZCHR)z/dev/sdaz/dev/hda�bZBLK)rg �path�exists�devnullrt rx r� )rk rp rs Zblockdevrl rl rm �test_devices� s zTestFilemode.test_devicesc C sb t � t j��B}|�t� | �� \}}| �|d d� | �d|� W d � n1 sT0 Y d S )Nr �sZSOCK)�socket�AF_UNIX�bindr rt rx r� )rk r� rp rs rl rl rm �test_socket� s
zTestFilemode.test_socketc C s� | j �� D ]"\}}t| j|�}| �|||� q
| j�� D ]"\}}t| j|�}| �|||� q8| jD ]}t| j|�}| �|t� qb| j D ]}t| j|�}| �|t� q�| j
D ].}t| j|�}| �t|�� | �|d�d� q�d S )Nr )
�stat_struct�itemsrv rq rx �permission_bits�
file_flagsZassertIsInstance�int�formatsrz r| �callable)rk �key�value�modvaluer� rl rl rm �test_module_attributes� s
z#TestFilemode.test_module_attributes�win32z-FILE_ATTRIBUTE_* constants are Win32 specificc C sJ t | j�� �D ]6\}}| �t| j|�|� t| j|�}| �|||� qd S rf )�sorted�file_attributesr� r| �hasattrrq rv rx )rk r� r� r� rl rl rm �test_file_attribute_constants� s z*TestFilemode.test_file_attribute_constants) �__name__�
__module__�__qualname__rq r� r� rz r� r� r� rn ZtearDownr rt r� r� r� r� Z
skipUnlessr� rg r� r� r} r� r Zskip_unless_bind_unix_socketr� r� �sys�platformr� rl rl rl rm r s� ���&
�r c @ s e Zd ZeZdS )�TestFilemodeCStatN)r� r� r� �c_statrq rl rl rl rm r� � s r� c @ s e Zd ZeZdS )�TestFilemodePyStatN)r� r� r� �py_statrq rl rl rl rm r� � s r� �__main__)r� rg r� r� Ztest.supportr r r r� r� r ZTestCaser� r� r� �mainrl rl rl rm �<module> s ]
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists