def test_functions(self): self.assertIsInstance(Security.SecKeychainGetTypeID(), int) self.assertResultHasType(Security.SecKeychainGetVersion, objc._C_INT) self.assertArgHasType(Security.SecKeychainGetVersion, 0, objc._C_OUT + objc._C_PTR + objc._C_UINT) self.assertResultHasType(Security.SecKeychainOpen, objc._C_INT) self.assertArgHasType(Security.SecKeychainOpen, 0, objc._C_IN + objc._C_PTR + objc._C_CHAR_AS_TEXT) self.assertArgIsNullTerminated(Security.SecKeychainOpen, 0) self.assertArgHasType(Security.SecKeychainOpen, 1, objc._C_OUT + objc._C_PTR + objc._C_ID) self.assertArgIsCFRetained(Security.SecKeychainOpen, 1) self.assertResultHasType(Security.SecKeychainCreate, objc._C_INT) self.assertArgHasType( Security.SecKeychainCreate, 0, objc._C_IN + objc._C_PTR + objc._C_CHAR_AS_TEXT, ) self.assertArgIsNullTerminated(Security.SecKeychainCreate, 0) self.assertArgHasType(Security.SecKeychainCreate, 1, objc._C_UINT) self.assertArgHasType(Security.SecKeychainCreate, 2, objc._C_IN + objc._C_PTR + objc._C_VOID) self.assertArgSizeInArg(Security.SecKeychainCreate, 2, 1) self.assertArgHasType(Security.SecKeychainCreate, 3, objc._C_NSBOOL) self.assertArgHasType(Security.SecKeychainCreate, 4, objc._C_ID) self.assertArgHasType(Security.SecKeychainCreate, 5, objc._C_OUT + objc._C_PTR + objc._C_ID) self.assertArgIsCFRetained(Security.SecKeychainCreate, 5) self.assertResultHasType(Security.SecKeychainDelete, objc._C_INT) self.assertArgHasType(Security.SecKeychainDelete, 0, objc._C_ID) self.assertResultHasType(Security.SecKeychainSetSettings, objc._C_INT) self.assertArgHasType(Security.SecKeychainSetSettings, 0, objc._C_ID) self.assertArgHasType( Security.SecKeychainSetSettings, 1, objc._C_IN + objc._C_PTR + Security.SecKeychainSettings.__typestr__, ) self.assertResultHasType(Security.SecKeychainCopySettings, objc._C_INT) self.assertArgHasType(Security.SecKeychainCopySettings, 0, objc._C_ID) self.assertArgHasType( Security.SecKeychainCopySettings, 1, objc._C_OUT + objc._C_PTR + Security.SecKeychainSettings.__typestr__, ) self.assertResultHasType(Security.SecKeychainUnlock, objc._C_INT) self.assertArgHasType(Security.SecKeychainUnlock, 0, objc._C_ID) self.assertArgHasType(Security.SecKeychainUnlock, 1, objc._C_UINT) self.assertArgHasType(Security.SecKeychainUnlock, 2, objc._C_IN + objc._C_PTR + objc._C_VOID) self.assertArgSizeInArg(Security.SecKeychainUnlock, 2, 1) self.assertArgHasType(Security.SecKeychainUnlock, 3, objc._C_NSBOOL) self.assertResultHasType(Security.SecKeychainLock, objc._C_INT) self.assertArgHasType(Security.SecKeychainLock, 0, objc._C_ID) self.assertResultHasType(Security.SecKeychainLockAll, objc._C_INT) self.assertResultHasType(Security.SecKeychainCopyDefault, objc._C_INT) self.assertArgHasType(Security.SecKeychainCopyDefault, 0, objc._C_OUT + objc._C_PTR + objc._C_ID) self.assertArgIsCFRetained(Security.SecKeychainCopyDefault, 0) self.assertResultHasType(Security.SecKeychainSetDefault, objc._C_INT) self.assertArgHasType(Security.SecKeychainSetDefault, 0, objc._C_ID) self.assertResultHasType(Security.SecKeychainCopySearchList, objc._C_INT) self.assertArgHasType( Security.SecKeychainCopySearchList, 0, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertArgIsCFRetained(Security.SecKeychainCopySearchList, 0) self.assertResultHasType(Security.SecKeychainSetSearchList, objc._C_INT) self.assertArgHasType(Security.SecKeychainSetSearchList, 0, objc._C_ID) self.assertResultHasType(Security.SecKeychainCopyDomainDefault, objc._C_INT) self.assertArgHasType(Security.SecKeychainCopyDomainDefault, 0, objc._C_INT) self.assertArgHasType( Security.SecKeychainCopyDomainDefault, 1, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertArgIsCFRetained(Security.SecKeychainCopyDomainDefault, 1) self.assertResultHasType(Security.SecKeychainSetDomainDefault, objc._C_INT) self.assertArgHasType(Security.SecKeychainSetDomainDefault, 0, objc._C_INT) self.assertArgHasType(Security.SecKeychainSetDomainDefault, 1, objc._C_ID) self.assertResultHasType(Security.SecKeychainCopyDomainSearchList, objc._C_INT) self.assertArgHasType(Security.SecKeychainCopyDomainSearchList, 0, objc._C_INT) self.assertArgHasType( Security.SecKeychainCopyDomainSearchList, 1, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertArgIsCFRetained(Security.SecKeychainCopyDomainSearchList, 1) self.assertResultHasType(Security.SecKeychainSetDomainSearchList, objc._C_INT) self.assertArgHasType(Security.SecKeychainSetDomainSearchList, 0, objc._C_INT) self.assertArgHasType(Security.SecKeychainSetDomainSearchList, 1, objc._C_ID) self.assertResultHasType(Security.SecKeychainSetPreferenceDomain, objc._C_INT) self.assertArgHasType(Security.SecKeychainSetPreferenceDomain, 0, objc._C_INT) self.assertResultHasType(Security.SecKeychainGetPreferenceDomain, objc._C_INT) self.assertArgHasType( Security.SecKeychainGetPreferenceDomain, 0, objc._C_OUT + objc._C_PTR + objc._C_INT, ) self.assertResultHasType(Security.SecKeychainGetStatus, objc._C_INT) self.assertArgHasType(Security.SecKeychainGetStatus, 0, objc._C_ID) self.assertArgHasType(Security.SecKeychainGetStatus, 1, objc._C_OUT + objc._C_PTR + objc._C_UINT) self.assertResultHasType(Security.SecKeychainGetPath, objc._C_INT) self.assertArgHasType(Security.SecKeychainGetPath, 0, objc._C_ID) self.assertArgHasType(Security.SecKeychainGetPath, 1, objc._C_INOUT + objc._C_PTR + objc._C_UINT) self.assertArgHasType( Security.SecKeychainGetPath, 2, objc._C_OUT + objc._C_PTR + objc._C_CHAR_AS_TEXT, ) self.assertArgSizeInArg(Security.SecKeychainGetPath, 2, 1) self.assertResultHasType(Security.SecKeychainAddCallback, objc._C_INT) self.assertArgIsFunction(Security.SecKeychainAddCallback, 0, SecKeychainCallback, True) self.assertArgHasType(Security.SecKeychainAddCallback, 1, objc._C_UINT) self.assertArgHasType(Security.SecKeychainAddCallback, 2, objc._C_PTR + objc._C_VOID) self.assertResultHasType(Security.SecKeychainRemoveCallback, objc._C_INT) self.assertArgIsFunction(Security.SecKeychainRemoveCallback, 0, SecKeychainCallback, True) self.assertResultHasType(Security.SecKeychainAddInternetPassword, objc._C_INT) self.assertArgHasType(Security.SecKeychainAddInternetPassword, 0, objc._C_ID) self.assertArgHasType(Security.SecKeychainAddInternetPassword, 1, objc._C_UINT) self.assertArgHasType( Security.SecKeychainAddInternetPassword, 2, objc._C_IN + objc._C_PTR + objc._C_CHAR_AS_TEXT, ) self.assertArgSizeInArg(Security.SecKeychainAddInternetPassword, 2, 1) self.assertArgHasType(Security.SecKeychainAddInternetPassword, 3, objc._C_UINT) self.assertArgHasType( Security.SecKeychainAddInternetPassword, 4, objc._C_IN + objc._C_PTR + objc._C_CHAR_AS_TEXT, ) self.assertArgSizeInArg(Security.SecKeychainAddInternetPassword, 4, 3) self.assertArgHasType(Security.SecKeychainAddInternetPassword, 5, objc._C_UINT) self.assertArgHasType( Security.SecKeychainAddInternetPassword, 6, objc._C_IN + objc._C_PTR + objc._C_CHAR_AS_TEXT, ) self.assertArgSizeInArg(Security.SecKeychainAddInternetPassword, 6, 5) self.assertArgHasType(Security.SecKeychainAddInternetPassword, 7, objc._C_UINT) self.assertArgHasType( Security.SecKeychainAddInternetPassword, 8, objc._C_IN + objc._C_PTR + objc._C_CHAR_AS_TEXT, ) self.assertArgSizeInArg(Security.SecKeychainAddInternetPassword, 8, 7) self.assertArgHasType(Security.SecKeychainAddInternetPassword, 9, objc._C_USHT) self.assertArgHasType(Security.SecKeychainAddInternetPassword, 10, objc._C_UINT) self.assertArgHasType(Security.SecKeychainAddInternetPassword, 11, objc._C_UINT) self.assertArgHasType(Security.SecKeychainAddInternetPassword, 12, objc._C_UINT) self.assertArgHasType( Security.SecKeychainAddInternetPassword, 13, objc._C_IN + objc._C_PTR + objc._C_VOID, ) self.assertArgSizeInArg(Security.SecKeychainAddInternetPassword, 13, 12) self.assertArgHasType( Security.SecKeychainAddInternetPassword, 14, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertArgIsCFRetained(Security.SecKeychainAddInternetPassword, 14) self.assertResultHasType(Security.SecKeychainAddGenericPassword, objc._C_INT) self.assertArgHasType(Security.SecKeychainAddGenericPassword, 0, objc._C_ID) self.assertArgHasType(Security.SecKeychainAddGenericPassword, 1, objc._C_UINT) self.assertArgHasType( Security.SecKeychainAddGenericPassword, 2, objc._C_IN + objc._C_PTR + objc._C_CHAR_AS_TEXT, ) self.assertArgSizeInArg(Security.SecKeychainAddGenericPassword, 2, 1) self.assertArgHasType(Security.SecKeychainAddGenericPassword, 3, objc._C_UINT) self.assertArgHasType( Security.SecKeychainAddGenericPassword, 4, objc._C_IN + objc._C_PTR + objc._C_CHAR_AS_TEXT, ) self.assertArgSizeInArg(Security.SecKeychainAddGenericPassword, 4, 3) self.assertArgHasType(Security.SecKeychainAddGenericPassword, 5, objc._C_UINT) self.assertArgHasType( Security.SecKeychainAddGenericPassword, 6, objc._C_IN + objc._C_PTR + objc._C_VOID, ) self.assertArgSizeInArg(Security.SecKeychainAddGenericPassword, 6, 5) self.assertArgHasType( Security.SecKeychainAddGenericPassword, 7, objc._C_OUT + objc._C_PTR + objc._C_ID, ) self.assertArgIsCFRetained(Security.SecKeychainAddGenericPassword, 7) self.assertResultHasType(Security.SecKeychainSetUserInteractionAllowed, objc._C_INT) self.assertArgHasType(Security.SecKeychainSetUserInteractionAllowed, 0, objc._C_NSBOOL) self.assertResultHasType(Security.SecKeychainGetUserInteractionAllowed, objc._C_INT) self.assertArgHasType( Security.SecKeychainGetUserInteractionAllowed, 0, objc._C_OUT + objc._C_PTR + objc._C_NSBOOL, ) self.assertResultHasType(Security.SecKeychainCopyAccess, objc._C_INT) self.assertArgHasType(Security.SecKeychainCopyAccess, 0, objc._C_ID) self.assertArgHasType(Security.SecKeychainCopyAccess, 1, objc._C_OUT + objc._C_PTR + objc._C_ID) self.assertArgIsCFRetained(Security.SecKeychainCopyAccess, 1) self.assertResultHasType(Security.SecKeychainSetAccess, objc._C_INT) self.assertArgHasType(Security.SecKeychainSetAccess, 0, objc._C_ID) self.assertArgHasType(Security.SecKeychainSetAccess, 1, objc._C_ID)