1
0
forked from Georg/pyacl
pyacl/tests/test_pyacl.py
Georg Pfuetzenreuter 10a3123305
Enhance test suite
Map input ACLs for setfacl with expected pyacl output to allow for
an easily expandable test matrix.

Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
2024-09-16 18:43:10 +02:00

88 lines
1.9 KiB
Python

"""
Test suite for pyacl
Copyright 2024, Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
Licensed under the EUPL, Version 1.2 or - as soon they will be approved by the European Commission - subsequent versions of the EUPL (the "Licence").
You may not use this work except in compliance with the Licence.
An English copy of the Licence is shipped in a file called LICENSE along with this applications source code.
You may obtain copies of the Licence in any of the official languages at https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12.
"""
from pytest import mark
from pyacl import acl
testdata = [
(
'user:user:r',
{
'user': {
'user': {
'read': True,
'write': False,
'execute': False,
},
},
'group': {
None: {
'read': True,
'write': False,
'execute': False,
},
},
'mask': {
None: {
'read': True,
'write': False,
'execute': False,
},
},
'other': {
None: {
'read': True,
'write': False,
'execute': False,
},
},
},
),
(
'user:user:-w-',
{
'user': {
'user': {
'read': False,
'write': True,
'execute': False,
},
},
'group': {
None: {
'read': True,
'write': False,
'execute': False,
},
},
'mask': {
None: {
'read': True,
'write': True,
'execute': False,
},
},
'other': {
None: {
'read': True,
'write': False,
'execute': False,
},
},
},
),
]
@mark.parametrize('aclin, aclout', testdata)
def test_parse_acl(sample_file, aclin, aclout):
have = acl.parsefromfile(sample_file)
assert aclout == have