Issue #7449, part 7: simplify threading detection in test_capi

 * Skip TestPendingCalls if threading module is missing
 * Test if threading module is present or not, instead of test the presence of
   _testcapi._test_thread_state
diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py
index c313dcf..7c25923 100644
--- a/Lib/test/test_capi.py
+++ b/Lib/test/test_capi.py
@@ -6,10 +6,14 @@
 import time
 import random
 import unittest
-import threading
 from test import test_support
+try:
+    import threading
+except ImportError:
+    threading = None
 import _testcapi
 
+@unittest.skipUnless(threading, 'Threading required for this test.')
 class TestPendingCalls(unittest.TestCase):
 
     def pendingcalls_submit(self, l, n):
@@ -47,7 +51,6 @@
             print "(%i)"%(len(l),)
 
     def test_pendingcalls_threaded(self):
-
         #do every callback on a separate thread
         n = 32 #total callbacks
         threads = []
@@ -123,17 +126,10 @@
             raise test_support.TestFailed, \
                   "Couldn't find main thread correctly in the list"
 
-    try:
-        _testcapi._test_thread_state
-        have_thread_state = True
-    except AttributeError:
-        have_thread_state = False
-
-    if have_thread_state:
+    if threading:
         import thread
         import time
         TestThreadState()
-        import threading
         t=threading.Thread(target=TestThreadState)
         t.start()
         t.join()