1
0
forked from Georg/pyacl

Rename functions

Use function names which are both more uniform and more easily
understandable by humans.
Drop parsefromfile_throughstring() as it does not serve a good use
case, if still needed, it can be easily constructed by the user.

Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
This commit is contained in:
Georg Pfuetzenreuter 2024-09-20 18:26:08 +02:00
parent 722fec83b3
commit 63fe0597c1
Signed by untrusted user: Georg
GPG Key ID: 1ED2F138E7E6FF57
2 changed files with 18 additions and 22 deletions

View File

@ -58,7 +58,7 @@ def reduce_entries(acl):
return entries
def parsestrpermission(strpermission):
def parse_permission_string(strpermission):
if len(strpermission) != MAX_PERMBITS:
return ValueError('Invalid permission')
@ -92,7 +92,7 @@ def parsestrpermission(strpermission):
return outmap
def parsestrentry(strentry):
def parse_entry_string(strentry):
if not strentry:
raise ValueError('Got empty string')
@ -111,12 +111,12 @@ def parsestrentry(strentry):
return {
entrytype: {
entryvalue: parsestrpermission(permissions),
entryvalue: parse_permission_string(permissions),
},
}
def parsefromacl(acl): # noqa PLR0912, FIXME: uncomplexify this
def parse_acl(acl): # noqa PLR0912, FIXME: uncomplexify this
permap = {
permission: False for permission in DEFAULT_PERMISSIONS.keys()
}
@ -171,18 +171,18 @@ def parsefromacl(acl): # noqa PLR0912, FIXME: uncomplexify this
return outmap
def parse_entries(acl):
def parse_acl_via_string(acl):
outmap = {
group: DEFAULT_PERMISSIONS for group in DEFAULT_ENTRYTYPES
}
for entry in acl:
outmap.update(parsestrentry(entry))
outmap.update(parse_entry_string(entry))
return outmap
def buildacl(target_name, target_type, read=False, write=False, execute=False):
def build_acl(target_name, target_type, read=False, write=False, execute=False):
target_types = ['user', 'group']
if target_type not in target_types or not isinstance(target_name, str):
return ValueError('Invalid use of buildacl()')
@ -209,23 +209,19 @@ def buildacl(target_name, target_type, read=False, write=False, execute=False):
return myacl
def acltofile(acl, path):
def apply_acl_to_path(acl, path):
if acl.valid() is not True:
return ValueError('ACL is not ready to be applied.')
acl.applyto(path)
def aclfromfile(path):
def read_acl_from_path(path):
return ACL(file=path)
def entriesfromfile(path):
return reduce_entries(aclfromfile(path))
def parse_acl_from_path_via_string(path):
return parse_acl_via_string(reduce_entries(read_acl_from_path(path)))
def parsefromfile_throughstring(path):
return parse_entries(reduce_entries(aclfromfile(path)))
def parsefromfile(path):
return parsefromacl(aclfromfile(path))
def parse_acl_from_path(path):
return parse_acl(read_acl_from_path(path))

View File

@ -25,20 +25,20 @@ def load_yaml(file):
@mark.parametrize('aclin, aclout', load_yaml('matrix.yaml'))
def test_parse_acl_through_string(sample_file_with_acl, aclin, aclout):
have = acl.parsefromfile_throughstring(sample_file_with_acl)
have = acl.parse_acl_from_path_via_string(sample_file_with_acl)
assert aclout == have
@mark.parametrize('aclin, aclout', load_yaml('matrix.yaml'))
def test_parse_acl_native(sample_file_with_acl, aclin, aclout):
have = acl.parsefromfile(sample_file_with_acl)
have = acl.parse_acl_from_path(sample_file_with_acl)
assert aclout == have
@mark.parametrize('scenario, data', load_yaml('matrix-apply.yaml'))
def test_build_and_apply_acl(sample_file, scenario, data):
built_acl = acl.buildacl(**data['args'])
built_acl = acl.build_acl(**data['args'])
assert len(list(built_acl)) == 5 # noqa PLR2004, this is the expected size of the built ACL
assert acl.acltofile(built_acl, sample_file) is None
read_acl = acl.parsefromfile(sample_file)
assert acl.apply_acl_to_path(built_acl, sample_file) is None
read_acl = acl.parse_acl_from_path(sample_file)
assert read_acl == data['expect']