1from PyObjCTools.TestSupport import *
2
3from Foundation import *
4
5class TestNSErrorHelper (NSObject):
6    def attemptRecoveryFromError_optionIndex_delegate_didRecoverSelector_contextInfo_(self, a, b, c, d, e): pass
7    def attemptRecoveryFromError_optionIndex_(self, a, b): return 1
8
9
10class TestNSError (TestCase):
11    def testConstants(self):
12        self.failUnless( isinstance(NSCocoaErrorDomain, unicode) )
13        self.failUnless( isinstance(NSPOSIXErrorDomain, unicode) )
14        self.failUnless( isinstance(NSOSStatusErrorDomain, unicode) )
15        self.failUnless( isinstance(NSMachErrorDomain, unicode) )
16        self.failUnless( isinstance(NSUnderlyingErrorKey, unicode) )
17        self.failUnless( isinstance(NSLocalizedDescriptionKey, unicode) )
18        self.failUnless( isinstance(NSLocalizedFailureReasonErrorKey, unicode) )
19        self.failUnless( isinstance(NSLocalizedRecoverySuggestionErrorKey, unicode) )
20        self.failUnless( isinstance(NSLocalizedRecoveryOptionsErrorKey, unicode) )
21        self.failUnless( isinstance(NSRecoveryAttempterErrorKey, unicode) )
22        self.failUnless( isinstance(NSStringEncodingErrorKey, unicode) )
23        self.failUnless( isinstance(NSURLErrorKey, unicode) )
24        self.failUnless( isinstance(NSFilePathErrorKey, unicode) )
25
26    def testAttemptRecovery(self):
27        self.failUnlessArgHasType(TestNSErrorHelper.attemptRecoveryFromError_optionIndex_delegate_didRecoverSelector_contextInfo_, 1, objc._C_NSUInteger)
28        self.failUnlessArgIsSEL(TestNSErrorHelper.attemptRecoveryFromError_optionIndex_delegate_didRecoverSelector_contextInfo_, 3, 'v@:' + objc._C_NSBOOL + '^v')
29        self.failUnlessArgHasType(TestNSErrorHelper.attemptRecoveryFromError_optionIndex_delegate_didRecoverSelector_contextInfo_, 4, '^v')
30
31        self.failUnlessResultIsBOOL(TestNSErrorHelper.attemptRecoveryFromError_optionIndex_)
32        self.failUnlessArgHasType(TestNSErrorHelper.attemptRecoveryFromError_optionIndex_, 1, objc._C_NSUInteger)
33
34if __name__ == "__main__":
35    main()
36