HEX
Server: LiteSpeed
System: Linux shams.tasjeel.ae 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 08:09:09 EST 2025 x86_64
User: infowars (1469)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //usr/lib64/python3.9/site-packages/borg/testsuite/__pycache__/platform.cpython-39.pyc
a

HZ�h"�@sjddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZddlm
Z
mZmZddlmZmZddlmZmZddlmZd	���d
�Zd���d
�ZdZdd
�Zdd�Zejdd��Ze� ej�!d�d�e�"e�d�Gdd�de���Z#e� ej�!d�d�e�"e�d�Gdd�de���Z$e� ej�!d�d�Gdd�de��Z%dd �Z&d!d"�Z'dS)#�N�)�is_win32�is_linux�
is_freebsd�	is_darwin)�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
dtjvS)NZFAKEROOTKEY)�os�environ�rr�=/usr/lib64/python3.9/site-packages/borg/testsuite/platform.py�fakeroot_detected)src	Cs8ts4ddl}z|�|�WdSttfy2Yn0dS)NrTF)r�pwd�getpwnam�KeyError�
ValueError)�usernamerrrr�user_exists-s
rc	Cs�t���}t|d���zZd}d|i}t||�i}t||t�|��|�dd�}|rnd|vrnWWd�dSWnty�Yn0Wd�dS1s�0YdS)N�w�Quser::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_working8s
r(�linuxzlinux only testznot compatible with fakerootc@s�eZdZdd�Zdd�Zddd�Zdd	d
�Ze�e	�d�dd
��Z
e�e	�d�dd��Ze�ed�d�e�e	�d�dd���Z
dd�ZdS)�PlatformLinuxTestCasecCst��|_dS�N��tempfileZmkdtemp�tmpdir��selfrrr�setUpNszPlatformLinuxTestCase.setUpcCst�|j�dSr+��shutil�rmtreer.r/rrr�tearDownQszPlatformLinuxTestCase.tearDownFcCsi}t||t�|�|d�|S�N��numeric_ids�rrr"�r0�pathr8�itemrrr�get_aclTszPlatformLinuxTestCase.get_aclNcCs||d�}t|||d�dS)N)r�acl_defaultr7�r)r0r;r&�defaultr8r<rrr�set_aclYs
zPlatformLinuxTestCase.set_acl�ACLs do not workcCs�t��}|�|�|j�i�|j|jddd�|�d|�|j�d�|�d|�|j�d�|�d|j|jdd	�d�t��}|j|jddd�|�d
|�|j�d�|�d|�|j�d�dS)NrF�r&r8�user:root:rw-:0r�group:root:rw-:0suser:0:rw-:0Tr7suser:9999:rw-:9999sgroup:9999:rw-:9999�r-�NamedTemporaryFile�assert_equalr=�namerA�	assert_in�r0�file�file2rrr�test_access_acl]sz%PlatformLinuxTestCase.test_access_aclcCsZ|�|�|j�i�|j|jttd�|�|�|j�dt�|�|�|j�dt�dS)N)r&r@rr>)rHr=r.rA�
ACCESS_ACL�DEFAULT_ACLr/rrr�test_default_acljsz&PlatformLinuxTestCase.test_default_acluübelurequires übel usercCs(t��}|�|�|j�i�d}d��}d}d��}d}d�|||g�}|j|j|dd�|j|jdd	�d
}|�||�|�||�|j|jdd	�d
}	|�||	�|�||	�t��}
|j|
j|dd�|j|
jdd	�d
}|�||�|�||�|j|jdd	�d
}	|�||	�|�||	�dS)Ns*user::rw-
group::r--
mask::rw-
other::---
uuser:übel:rw-:666suser:666:rw-:666ugroup:übel:rw-:666sgroup:666:rw-:666�
FrCr7rT)	r-rGrHr=rI�encode�joinrArJ)r0rLZnothing_specialZ
user_entryZuser_entry_numericZgroup_entryZgroup_entry_numericr'rZacl_access_numericrMrrr�test_non_ascii_aclqs.z(PlatformLinuxTestCase.test_non_ascii_aclcCsPddlm}|�|d�d�|�|d�d�|�|d�d�|�|d	�d
�dS)Nr)�acl_use_local_uid_gidsuser:nonexistent1234:rw-:1234s
user:1234:rw-sgroup:nonexistent1234:rw-:1234sgroup:1234:rw-rDs
user:0:rw-rEsgroup:0:rw-)Zplatform.linuxrVrH)r0rVrrr�
test_utils�s
z PlatformLinuxTestCase.test_utils)F)NNF)�__name__�
__module__�__qualname__r1r5r=rA�unittest�skipIfr(rNrQrrUrWrrrrr*Js



r*�darwinzmacOS only testc@sHeZdZdd�Zdd�Zddd�Zddd	�Ze�e	�d
�dd��Z
d
S)�PlatformDarwinTestCasecCst��|_dSr+r,r/rrrr1�szPlatformDarwinTestCase.setUpcCst�|j�dSr+r2r/rrrr5�szPlatformDarwinTestCase.tearDownFcCsi}t||t�|�|d�|Sr6r9r:rrrr=�szPlatformDarwinTestCase.get_aclcCsd|i}t|||d�dS)N�acl_extendedr7r?)r0r;r'r8r<rrrrA�szPlatformDarwinTestCase.set_aclrBcCs�t��}t��}|�|�|j�i�|j|jddd�|�d|�|j�d�|�d|�|j�d�|j|jddd�|�d|�|j�d�|�d	|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
Fr7s>group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000014:staff:20:allow:readr_s;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:readrFrKrrrrN�sz&PlatformDarwinTestCase.test_access_aclN)F)F)rXrYrZr1r5r=rAr[r\r(rNrrrrr^�s

r^)r)Zfreebsdr]zPOSIX only testsc@s$eZdZdd�Zdd�Zdd�ZdS)�PlatformPosixTestCasecCs|�td�d�dS)NZborg��rHr	r/rrr�test_swidth_ascii�sz'PlatformPosixTestCase.test_swidth_asciicCs|�td�d�dS)Nuバックアップ�rbr/rrr�test_swidth_cjk�sz%PlatformPosixTestCase.test_swidth_cjkcCs|�td�d�dS)Nuborgバックアップ�rbr/rrr�test_swidth_mixed�sz'PlatformPosixTestCase.test_swidth_mixedN)rXrYrZrcrergrrrrr`�sr`cCsXt�}t|�sJ�|\}}}t|d||�s0J�t|||d�sDJ�t|||�rTJ�dS)N�abcr
r
)r�id�host�pid�tidrrr�test_process_alive�s
rmcCsjt�\}}}t|t�sJ�t|t�s(J�t|t�s6J�t|�dksFJ�|dksRJ�t�|||fksfJ�dS)Nr)r�
isinstance�str�int�len)�hostnamerkrlrrr�test_process_id�srs)(�	functoolsrZrandomr3�sysr-r[Z
platformflagsrrrr�platformrrr	rr�rrZlockingr�striprSrOrPZ
_acls_workingrr�	lru_cacher(Z
skipUnless�
startswithr\r*r^r`rmrsrrrr�<module>s@	�	�
L