diff --git a/test/py/Makefile b/test/py/Makefile
index b4b2718..2049663 100644
--- a/test/py/Makefile
+++ b/test/py/Makefile
@@ -1,5 +1,5 @@
 # Makefile for Thrift test project.
-# 
+#
 # Author:
 #   Mark Slee <mcslee@facebook.com>
 
diff --git a/test/py/RunClientServer.py b/test/py/RunClientServer.py
index 0f5c46f..21f4531 100644
--- a/test/py/RunClientServer.py
+++ b/test/py/RunClientServer.py
@@ -7,7 +7,7 @@
 
 serverproc = subprocess.Popen([sys.executable, "TestServer.py"])
 try:
-    
+
     ret = subprocess.call([sys.executable, "TestClient.py"])
     if ret != 0:
         raise Exception("subprocess failed")
diff --git a/test/py/TestClient.py b/test/py/TestClient.py
index 63ec1d0..7e58dfe 100755
--- a/test/py/TestClient.py
+++ b/test/py/TestClient.py
@@ -15,7 +15,7 @@
 
 
 parser = OptionParser()
-    
+
 parser.add_option("--port", type="int", dest="port", default=9090)
 parser.add_option("--host", type="string", dest="host", default='localhost')
 parser.add_option("--framed-input", action="store_true", dest="framed_input")
@@ -24,12 +24,12 @@
 (options, args) = parser.parse_args()
 
 class AbstractTest(unittest.TestCase):
-  
+
   def setUp(self):
     global options
-    
+
     socket = TSocket.TSocket(options.host, options.port)
-    
+
     # Frame or buffer depending upon args
     if options.framed_input or options.framed_output:
       self.transport = TTransport.TFramedTransport(socket, options.framed_input, options.framed_output)
@@ -37,17 +37,17 @@
       self.transport = TTransport.TBufferedTransport(socket)
 
     self.transport.open()
-    
+
     protocol = self.protocol_factory.getProtocol(self.transport)
     self.client = ThriftTest.Client(protocol)
-    
+
   def tearDown(self):
     # Close!
     self.transport.close()
 
   def testVoid(self):
     self.client.testVoid()
-    
+
   def testString(self):
     self.assertEqual(self.client.testString('Python'), 'Python')
 
diff --git a/test/py/TestServer.py b/test/py/TestServer.py
index 6cd9f58..94a81c0 100755
--- a/test/py/TestServer.py
+++ b/test/py/TestServer.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-import sys, glob 
+import sys, glob
 sys.path.insert(0, './gen-py')
 sys.path.insert(0, glob.glob('../../lib/py/build/lib.*')[0])
 
diff --git a/test/py/TestSocket.py b/test/py/TestSocket.py
index 7cbdf5c..b693d18 100755
--- a/test/py/TestSocket.py
+++ b/test/py/TestSocket.py
@@ -31,7 +31,7 @@
 
     def testConnectTimeout(self):
         starttime = time.time()
-        
+
         try:
             leaky = []
             for i in xrange(100):
@@ -44,7 +44,7 @@
 
     def testWriteTimeout(self):
         starttime = time.time()
-        
+
         try:
             socket = TSocket.TSocket('localhost', self.port)
             socket.setTimeout(10)
@@ -52,10 +52,10 @@
             lsock = self.listen_sock.accept()
             while True:
                 socket.write("hi" * 100)
-            
+
         except:
             assert time.time() - starttime < 5.0
-            
+
 suite = unittest.TestSuite()
 loader = unittest.TestLoader()
 
