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