1from Foundation import *
2from PyObjCTools.TestSupport import *
3
4
5class TestNSThread (TestCase):
6    def testMethods(self):
7        self.failUnlessResultIsBOOL(NSThread.isMultiThreaded)
8        self.failUnlessArgIsSEL(NSThread.detachNewThreadSelector_toTarget_withObject_, 0, 'v@:@')
9        self.failUnlessResultIsBOOL(NSThread.setThreadPriority_)
10
11        self.failUnlessArgIsSEL(NSThread.performSelectorOnMainThread_withObject_waitUntilDone_modes_, 0, 'v@:@')
12        self.failUnlessArgIsBOOL(NSThread.performSelectorOnMainThread_withObject_waitUntilDone_modes_, 2)
13        self.failUnlessArgIsSEL(NSThread.performSelectorOnMainThread_withObject_waitUntilDone_, 0, 'v@:@')
14        self.failUnlessArgIsBOOL(NSThread.performSelectorOnMainThread_withObject_waitUntilDone_, 2)
15
16    @min_os_level('10.5')
17    def testMethods10_5(self):
18        self.failUnlessArgIsSEL(NSThread.initWithTarget_selector_object_, 1, 'v@:@')
19        self.failUnlessResultIsBOOL(NSThread.isExecuting)
20        self.failUnlessResultIsBOOL(NSThread.isFinished)
21        self.failUnlessResultIsBOOL(NSThread.isCancelled)
22        self.failUnlessResultIsBOOL(NSThread.isMainThread)
23        self.failUnlessResultIsBOOL(NSThread.mainThread().isMainThread)
24        self.failUnlessArgIsSEL(NSThread.performSelector_onThread_withObject_waitUntilDone_modes_, 0, 'v@:@')
25        self.failUnlessArgIsBOOL(NSThread.performSelector_onThread_withObject_waitUntilDone_modes_, 3)
26        self.failUnlessArgIsSEL(NSThread.performSelector_onThread_withObject_waitUntilDone_, 0, 'v@:@')
27        self.failUnlessArgIsBOOL(NSThread.performSelector_onThread_withObject_waitUntilDone_, 3)
28        self.failUnlessArgIsSEL(NSThread.performSelectorInBackground_withObject_, 0, 'v@:@')
29
30
31    def testConstants(self):
32        self.failUnlessIsInstance(NSWillBecomeMultiThreadedNotification, unicode)
33        self.failUnlessIsInstance(NSDidBecomeSingleThreadedNotification, unicode)
34        self.failUnlessIsInstance(NSThreadWillExitNotification, unicode)
35
36
37if __name__ == "__main__":
38    main()
39