2024-09-16 03:50:02 +02:00
|
|
|
"""
|
|
|
|
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.
|
|
|
|
"""
|
|
|
|
|
2024-09-16 18:43:10 +02:00
|
|
|
from pytest import mark
|
2024-09-16 03:50:02 +02:00
|
|
|
|
2024-09-16 18:43:10 +02:00
|
|
|
from pyacl import acl
|
2024-09-16 03:50:02 +02:00
|
|
|
|
2024-09-16 18:43:10 +02:00
|
|
|
testdata = [
|
|
|
|
(
|
|
|
|
'user:user:r',
|
|
|
|
{
|
2024-09-16 16:41:55 +02:00
|
|
|
'user': {
|
2024-09-16 18:43:10 +02:00
|
|
|
'user': {
|
|
|
|
'read': True,
|
|
|
|
'write': False,
|
|
|
|
'execute': False,
|
|
|
|
},
|
2024-09-16 03:50:02 +02:00
|
|
|
},
|
2024-09-16 18:43:10 +02:00
|
|
|
'group': {
|
|
|
|
None: {
|
|
|
|
'read': True,
|
|
|
|
'write': False,
|
|
|
|
'execute': False,
|
|
|
|
},
|
2024-09-16 03:50:02 +02:00
|
|
|
},
|
2024-09-16 18:43:10 +02:00
|
|
|
'mask': {
|
|
|
|
None: {
|
|
|
|
'read': True,
|
|
|
|
'write': False,
|
|
|
|
'execute': False,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
'other': {
|
|
|
|
None: {
|
|
|
|
'read': True,
|
|
|
|
'write': False,
|
|
|
|
'execute': False,
|
|
|
|
},
|
2024-09-16 03:50:02 +02:00
|
|
|
},
|
|
|
|
},
|
2024-09-16 18:43:10 +02:00
|
|
|
),
|
|
|
|
(
|
|
|
|
'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,
|
|
|
|
},
|
2024-09-16 03:50:02 +02:00
|
|
|
},
|
|
|
|
},
|
2024-09-16 18:43:10 +02:00
|
|
|
),
|
|
|
|
]
|
|
|
|
|
|
|
|
@mark.parametrize('aclin, aclout', testdata)
|
|
|
|
def test_parse_acl(sample_file, aclin, aclout):
|
2024-09-16 04:10:02 +02:00
|
|
|
have = acl.parsefromfile(sample_file)
|
2024-09-16 18:43:10 +02:00
|
|
|
assert aclout == have
|