Пример #1
0
    def test_mixedCtor(self):
        testACLs = [{
            "acl": SynoACL.Permissions(),
            "level": 0
        }, {
            "acl": SynoACL.Permissions.fromString("rwx----------"),
            "level": 1
        }, {
            "acl": SynoACL.Permissions.fromString("rwxpdD-------"),
            "level": 1
        }]
        testDirectACLs = list(
            map(lambda entry: entry["acl"],
                filter(lambda entry: entry["level"] == 0, testACLs)))

        allACLs = list(map(lambda entry: entry["acl"], testACLs))
        levels = list(map(lambda entry: entry["level"], testACLs))
        acls = SynoACLSet(allACLs, levels)

        directACLs = acls.getDirect()
        expectedDirectACLCount = sum(1 if entry["level"] == 0 else 0
                                     for entry in testACLs)
        self.assertEqual(len(directACLs), expectedDirectACLCount)
        for i in range(len(directACLs)):
            self.assertEqual(directACLs[i], testDirectACLs[i])

        allACLs = acls.getAll()
        self.assertEqual(len(allACLs), len(allACLs))
        for i in range(len(allACLs)):
            entry = allACLs[i]
            self.assertEqual(entry["acl"], testACLs[i]["acl"])
            self.assertEqual(entry["level"], testACLs[i]["level"])
Пример #2
0
    def test_ne(self):
        permissions1 = SynoACL.Permissions()
        permissions2 = SynoACL.Permissions.fromString(
            TestPermissions.ALL_RIGHTS)
        self.assertNotEqual(permissions1, permissions2)

        permissions1 = SynoACL.Permissions.fromString(
            TestPermissions.NO_RIGHTS)
        permissions2 = SynoACL.Permissions.fromString(
            TestPermissions.ALL_RIGHTS)
        self.assertNotEqual(permissions1, permissions2)
Пример #3
0
    def test_toString(self):
        permissions = SynoACL.Permissions()
        self.assertEqual(str(permissions), TestPermissions.NO_RIGHTS)

        permissions = SynoACL.Permissions(readData=True,
                                          writeData=True,
                                          execute=True)
        self.assertEqual(str(permissions), TestPermissions.RWX_RIGHTS)

        permissions = SynoACL.Permissions(readData=True,
                                          writeData=True,
                                          execute=True,
                                          appendData=True,
                                          delete=True,
                                          deleteChild=True,
                                          readAttribute=True,
                                          writeAttribute=True,
                                          readXAttr=True,
                                          writeXAttr=True,
                                          readAcl=True,
                                          writeAcl=True,
                                          getOwnership=True)
        self.assertEqual(str(permissions), TestPermissions.ALL_RIGHTS)
Пример #4
0
    def test_onlyDirectCtor(self):
        testACLs = [
            SynoACL.Permissions(),
            SynoACL.Permissions.fromString("rwx----------"),
            SynoACL.Permissions.fromString("rwxpdD-------")
        ]
        acls = SynoACLSet(testACLs)

        directACLs = acls.getDirect()
        self.assertEqual(len(directACLs), len(testACLs))
        for i in range(len(directACLs)):
            self.assertEqual(directACLs[i], testACLs[i])

        allACLs = acls.getAll()
        self.assertEqual(len(allACLs), len(allACLs))
        for i in range(len(allACLs)):
            entry = allACLs[i]
            self.assertEqual(entry["acl"], testACLs[i])
            self.assertEqual(entry["level"], 0)
Пример #5
0
    def test_ne(self):
        aclString = TestSynoACL.TEST_ROLE + ":" + TestSynoACL.TEST_NAME + ":" + \
            TestSynoACL.TEST_TYPE + ":" + TestSynoACL.TEST_PERMISSIONS + ":" + TestSynoACL.TEST_INHERITANCE
        acl1 = SynoACL.fromString(aclString)

        acl2 = SynoACL.fromString(aclString)
        acl2.role = "other"
        self.assertNotEqual(acl1, acl2)

        acl2 = SynoACL.fromString(aclString)
        acl2.name = "other"
        self.assertNotEqual(acl1, acl2)

        acl2 = SynoACL.fromString(aclString)
        acl2.aclType = "other"
        self.assertNotEqual(acl1, acl2)

        acl2 = SynoACL.fromString(aclString)
        acl2.permissions = SynoACL.Permissions()
        self.assertNotEqual(acl1, acl2)

        acl2 = SynoACL.fromString(aclString)
        acl2.inheritMode = SynoACL.Inheritance()
        self.assertNotEqual(acl1, acl2)