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"])
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)
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)
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)
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)