mirror of https://github.com/borgbackup/borg.git
acls (linux): make tests as they should be
TODO: can this be done without creating a user/group "übel" with uid 666 gid 666?
This commit is contained in:
parent
e818026440
commit
5a2aa7b02b
|
@ -79,24 +79,27 @@ class PlatformLinuxTestCase(BaseTestCase):
|
||||||
file = tempfile.NamedTemporaryFile()
|
file = tempfile.NamedTemporaryFile()
|
||||||
self.assert_equal(self.get_acl(file.name), {})
|
self.assert_equal(self.get_acl(file.name), {})
|
||||||
nothing_special = 'user::rw-\ngroup::r--\nmask::rw-\nother::---\n'.encode('ascii')
|
nothing_special = 'user::rw-\ngroup::r--\nmask::rw-\nother::---\n'.encode('ascii')
|
||||||
|
# TODO: can this be tested without having an existing system user übel with uid 666 gid 666?
|
||||||
user_entry = 'user:übel:rw-:666'.encode('utf-8')
|
user_entry = 'user:übel:rw-:666'.encode('utf-8')
|
||||||
user_entry_numeric = 'user:666:rw-:666'.encode('ascii')
|
user_entry_numeric = 'user:666:rw-:666'.encode('ascii')
|
||||||
group_entry = 'group:übel:rw-:666'.encode('utf-8')
|
group_entry = 'group:übel:rw-:666'.encode('utf-8')
|
||||||
group_entry_numeric = 'group:666:rw-:666'.encode('ascii')
|
group_entry_numeric = 'group:666:rw-:666'.encode('ascii')
|
||||||
acl = b'\n'.join([nothing_special, user_entry, group_entry])
|
acl = b'\n'.join([nothing_special, user_entry, group_entry])
|
||||||
self.set_acl(file.name, access=acl, numeric_owner=False)
|
self.set_acl(file.name, access=acl, numeric_owner=False)
|
||||||
acl_access = self.get_acl(file.name)[b'acl_access']
|
acl_access = self.get_acl(file.name, numeric_owner=False)[b'acl_access']
|
||||||
# set_acl did not find the local user/group here, so it fell back to the uid/gid:
|
self.assert_in(user_entry, acl_access)
|
||||||
self.assert_in(user_entry_numeric, acl_access)
|
self.assert_in(group_entry, acl_access)
|
||||||
self.assert_in(group_entry_numeric, acl_access)
|
|
||||||
acl_access_numeric = self.get_acl(file.name, numeric_owner=True)[b'acl_access']
|
acl_access_numeric = self.get_acl(file.name, numeric_owner=True)[b'acl_access']
|
||||||
self.assert_in(user_entry_numeric, acl_access_numeric)
|
self.assert_in(user_entry_numeric, acl_access_numeric)
|
||||||
self.assert_in(group_entry_numeric, acl_access_numeric)
|
self.assert_in(group_entry_numeric, acl_access_numeric)
|
||||||
file2 = tempfile.NamedTemporaryFile()
|
file2 = tempfile.NamedTemporaryFile()
|
||||||
self.set_acl(file2.name, access=acl, numeric_owner=True)
|
self.set_acl(file2.name, access=acl, numeric_owner=True)
|
||||||
acl_access = self.get_acl(file2.name)[b'acl_access']
|
acl_access = self.get_acl(file2.name, numeric_owner=False)[b'acl_access']
|
||||||
self.assert_in(user_entry_numeric, acl_access)
|
self.assert_in(user_entry, acl_access)
|
||||||
self.assert_in(group_entry_numeric, acl_access)
|
self.assert_in(group_entry, acl_access)
|
||||||
|
acl_access_numeric = self.get_acl(file.name, numeric_owner=True)[b'acl_access']
|
||||||
|
self.assert_in(user_entry_numeric, acl_access_numeric)
|
||||||
|
self.assert_in(group_entry_numeric, acl_access_numeric)
|
||||||
|
|
||||||
def test_utils(self):
|
def test_utils(self):
|
||||||
from ..platform_linux import acl_use_local_uid_gid
|
from ..platform_linux import acl_use_local_uid_gid
|
||||||
|
|
Loading…
Reference in New Issue