Current File : //usr/lib64/python3.6/site-packages/borg/testsuite/__pycache__/platform.cpython-36.pyc
3

y��b�!�@s\ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZddlmZm
Z
ddlmZmZddlmZdj�jd	�Zd
j�jd	�ZdZdd�Zd
d�Zej�dd��Zejejjd�d�eje�d�Gdd�de���Zejejjd�d�eje�d�Gdd�de���Z ejejjd"�d�Gdd�de��Z!dd�Z"d d!�Z#dS)#�N�)�acl_get�acl_set�swidth)�get_process_id�
process_alive�)�BaseTestCase�unopened_tempfile)�free_pidzs
user::rw-
user:root:rw-:0
user:9999:r--:9999
group::r--
group:root:r--:0
group:9999:r--:9999
mask::rw-
other::r--
�asciizs
user::rw-
user:root:r--:0
user:8888:r--:8888
group::r--
group:root:r--:0
group:8888:r--:8888
mask::rw-
other::r--
cCs
dtjkS)NZFAKEROOTKEY)�os�environ�rr� /usr/lib64/python3.6/platform.py�fakeroot_detected)srcCs,ytj|�dSttfk
r&dSXdS)NTF)�pwd�getpwnam�KeyError�
ValueError)Zusernamerrr�user_exists-s

rcCs�t��v}t|d�j�yLd}d|i}t||�i}t||tj|��|jdd�}|r`d|kr`dSWntk
rvYnXdSQRXdS)N�wsQuser::rw-
group::r--
mask::rw-
other::---
user:root:rw-:9999
group:root:rw-:9999
�
acl_accesss	user::rw-TF)	r
�open�closerrr
�stat�get�PermissionError)�filepath�access�aclZread_aclZread_acl_accessrrr�are_acls_working5s
r!�linuxzlinux only testznot compatible with fakerootc@s�eZdZdd�Zdd�Zddd�Zdd	d
�Zeje	�d�dd
��Z
eje	�d�dd��Zejed�d�eje	�d�dd���Z
dd�ZdS)�PlatformLinuxTestCasecCstj�|_dS)N)�tempfile�mkdtemp�tmpdir)�selfrrr�setUpKszPlatformLinuxTestCase.setUpcCstj|j�dS)N)�shutil�rmtreer&)r'rrr�tearDownNszPlatformLinuxTestCase.tearDownFcCsi}t||tj|�|d�|S)N)�
numeric_owner)rr
r)r'�pathr,�itemrrr�get_aclQszPlatformLinuxTestCase.get_aclNcCs||d�}t|||d�dS)N)r�acl_default)r,)r)r'r-r�defaultr,r.rrr�set_aclVs
zPlatformLinuxTestCase.set_aclzACLs do not workcCs�tj�}|j|j|j�i�|j|jddd�|jd|j|j�d�|jd|j|j�d�|jd|j|jdd	�d�tj�}|j|jddd�|jd
|j|j�d�|jd|j|j�d�dS)NsQuser::rw-
group::r--
mask::rw-
other::---
user:root:rw-:9999
group:root:rw-:9999
F)rr,suser:root:rw-:0rsgroup:root:rw-:0suser:0:rw-:0T)r,suser:9999:rw-:9999sgroup:9999:rw-:9999)r$�NamedTemporaryFile�assert_equalr/�namer2�	assert_in)r'�file�file2rrr�test_access_aclZsz%PlatformLinuxTestCase.test_access_aclcCsZ|j|j|j�i�|j|jttd�|j|j|j�dt�|j|j|j�dt�dS)N)rr1rr0)r4r/r&r2�
ACCESS_ACL�DEFAULT_ACL)r'rrr�test_default_aclgsz&PlatformLinuxTestCase.test_default_acluübelurequires übel usercCs>tj�}|j|j|j�i�djd�}djd�}djd�}djd�}djd�}dj|||g�}|j|j|d	d
�|j|jd	d�d}|j||�|j||�|j|jd
d�d}	|j||	�|j||	�tj�}
|j|
j|d
d
�|j|
jd	d�d}|j||�|j||�|j|jd
d�d}	|j||	�|j||	�dS)Nz*user::rw-
group::r--
mask::rw-
other::---
ruuser:übel:rw-:666zutf-8zuser:666:rw-:666ugroup:übel:rw-:666zgroup:666:rw-:666�
F)rr,)r,rT)	r$r3r4r/r5�encode�joinr2r6)r'r7Znothing_specialZ
user_entryZuser_entry_numericZgroup_entryZgroup_entry_numericr rZacl_access_numericr8rrr�test_non_ascii_aclns.




z(PlatformLinuxTestCase.test_non_ascii_aclcCsPddlm}|j|d�d�|j|d�d�|j|d�d�|j|d	�d
�dS)Nr)�acl_use_local_uid_gidsuser:nonexistent1234:rw-:1234s
user:1234:rw-sgroup:nonexistent1234:rw-:1234sgroup:1234:rw-suser:root:rw-:0s
user:0:rw-sgroup:root:rw-:0sgroup:0:rw-)Zplatform.linuxrAr4)r'rArrr�
test_utils�s
z PlatformLinuxTestCase.test_utils)F)NNF)�__name__�
__module__�__qualname__r(r+r/r2�unittest�skipIfr!r9r<rr@rBrrrrr#Gs


r#�darwinzOS X only testc@sHeZdZdd�Zdd�Zddd�Zddd	�Zeje	�d
�dd��Z
d
S)�PlatformDarwinTestCasecCstj�|_dS)N)r$r%r&)r'rrrr(�szPlatformDarwinTestCase.setUpcCstj|j�dS)N)r)r*r&)r'rrrr+�szPlatformDarwinTestCase.tearDownFcCsi}t||tj|�|d�|S)N)r,)rr
r)r'r-r,r.rrrr/�szPlatformDarwinTestCase.get_aclcCsd|i}t|||d�dS)N�acl_extended)r,)r)r'r-r r,r.rrrr2�szPlatformDarwinTestCase.set_aclzACLs do not workcCs�tj�}tj�}|j|j|j�i�|j|jddd�|jd|j|j�d�|jd|j|j�d�|j|jddd�|jd|j|j�d�|jd	|j|jdd�d�dS)
Ns�!#acl 1
group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000:staff:0:allow:read
user:FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000:root:0:allow:read
F)r,s>group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000014:staff:20:allow:readrJs;user:FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000:root:0:allow:readTs=group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000:wheel:0:allow:reads8group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000::0:allow:read)r$r3r4r/r5r2r6)r'r7r8rrrr9�sz&PlatformDarwinTestCase.test_access_aclN)F)F)rCrDrEr(r+r/r2rFrGr!r9rrrrrI�s


rI�freebsdzPOSIX only testsc@s$eZdZdd�Zdd�Zdd�ZdS)�PlatformPosixTestCasecCs|jtd�d�dS)NZborg�)r4r)r'rrr�test_swidth_ascii�sz'PlatformPosixTestCase.test_swidth_asciicCs|jtd�d�dS)Nuバックアップ�r�)r4r)r'rrr�test_swidth_cjk�sz%PlatformPosixTestCase.test_swidth_cjkcCs|jtd�d�dS)NuborgバックアップrMrOrrP�)r4r)r'rrr�test_swidth_mixed�sz'PlatformPosixTestCase.test_swidth_mixedN)rCrDrErNrQrSrrrrrL�srLcCsZt�}t|�st�|\}}}t|d||�s0t�t|||d�sDt�t|||�sVt�dS)N�abcr)rr�AssertionError)r�id�host�pid�tidrrr�test_process_alive�s
rZcCsjt�\}}}t|t�st�t|t�s(t�t|t�s6t�t|�dksFt�|dksRt�t�|||fksft�dS)Nr)r�
isinstance�strrU�int�len)ZhostnamerXrYrrr�test_process_id�sr_)r"rKrH)$�	functoolsr
Zrandomr)�sysr$rrF�platformrrrrr�r	r
Zlockingr�stripr>r:r;Z
_acls_workingrr�	lru_cacher!Z
skipUnless�
startswithrGr#rIrLrZr_rrrr�<module>s6
L