]> granicus.if.org Git - python/commitdiff
http://bugs.python.org/issue6460
authorKristján Valur Jónsson <kristjan@ccpgames.com>
Sat, 11 Jul 2009 08:44:43 +0000 (08:44 +0000)
committerKristján Valur Jónsson <kristjan@ccpgames.com>
Sat, 11 Jul 2009 08:44:43 +0000 (08:44 +0000)
Need to be careful with thread switching when testing the xmlrpc server.  The server thread may not have updated stats when the client thread tests them.

Lib/test/test_xmlrpc.py

index ff0dec9d7a9571c39f0048cd33b18de400e6aa10..92b5fe8fb71566143244242f9af8bcb1db56423e 100644 (file)
@@ -541,11 +541,17 @@ class KeepaliveServerTestCase(BaseServerTestCase):
 
     def test_two(self):
         p = xmlrpclib.ServerProxy(URL)
+        #do three requests.
         self.assertEqual(p.pow(6,8), 6**8)
         self.assertEqual(p.pow(6,8), 6**8)
+        self.assertEqual(p.pow(6,8), 6**8)
+
+        #they should have all been handled by a single request handler
         self.assertEqual(len(self.RequestHandler.myRequests), 1)
-        #we may or may not catch the final "append" with the empty line
-        self.assertTrue(len(self.RequestHandler.myRequests[-1]) >= 2)
+
+        #check that we did at least two (the third may be pending append
+        #due to thread scheduling)
+        self.assertGreaterEqual(len(self.RequestHandler.myRequests[-1]), 2)
 
 #A test case that verifies that gzip encoding works in both directions
 #(for a request and the response)