fix Thread.ident when it is the main thread or a dummy thread #5632
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index cb6f6d2..463d0d8 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -83,11 +83,24 @@
             t.join(NUMTASKS)
             self.assert_(not t.is_alive())
             self.failIfEqual(t.ident, 0)
+            self.assertFalse(t.ident is None)
             self.assert_(re.match('<TestThread\(.*, \w+ -?\d+\)>', repr(t)))
         if verbose:
             print 'all tasks done'
         self.assertEqual(numrunning.get(), 0)
 
+    def test_ident_of_no_threading_threads(self):
+        # The ident still must work for the main thread and dummy threads.
+        self.assertFalse(threading.currentThread().ident is None)
+        def f():
+            ident.append(threading.currentThread().ident)
+            done.set()
+        done = threading.Event()
+        ident = []
+        thread.start_new_thread(f, ())
+        done.wait()
+        self.assertFalse(ident[0] is None)
+
     # run with a small(ish) thread stack size (256kB)
     def test_various_ops_small_stack(self):
         if verbose: