THRIFT-3596 Better conformance to PEP8

This closes #832
diff --git a/test/py/RunClientServer.py b/test/py/RunClientServer.py
index d5ebd6a..98ead43 100755
--- a/test/py/RunClientServer.py
+++ b/test/py/RunClientServer.py
@@ -37,13 +37,13 @@
 DEFAULT_LIBDIR_PY3 = os.path.join(ROOT_DIR, 'lib', 'py', 'build', 'lib')
 
 SCRIPTS = [
-  'FastbinaryTest.py',
-  'TestFrozen.py',
-  'TSimpleJSONProtocolTest.py',
-  'SerializationTest.py',
-  'TestEof.py',
-  'TestSyntax.py',
-  'TestSocket.py',
+    'FastbinaryTest.py',
+    'TestFrozen.py',
+    'TSimpleJSONProtocolTest.py',
+    'SerializationTest.py',
+    'TestEof.py',
+    'TestSyntax.py',
+    'TestSocket.py',
 ]
 FRAMED = ["TNonblockingServer"]
 SKIP_ZLIB = ['TNonblockingServer', 'THttpServer']
@@ -51,20 +51,20 @@
 EXTRA_DELAY = dict(TProcessPoolServer=5.5)
 
 PROTOS = [
-  'accel',
-  'binary',
-  'compact',
-  'json',
+    'accel',
+    'binary',
+    'compact',
+    'json',
 ]
 
 SERVERS = [
-  "TSimpleServer",
-  "TThreadedServer",
-  "TThreadPoolServer",
-  "TProcessPoolServer",
-  "TForkingServer",
-  "TNonblockingServer",
-  "THttpServer",
+    "TSimpleServer",
+    "TThreadedServer",
+    "TThreadPoolServer",
+    "TProcessPoolServer",
+    "TForkingServer",
+    "TNonblockingServer",
+    "THttpServer",
 ]
 
 
@@ -73,246 +73,246 @@
 
 
 def setup_pypath(libdir, gendir):
-  dirs = [libdir, gendir]
-  env = copy.deepcopy(os.environ)
-  pypath = env.get('PYTHONPATH', None)
-  if pypath:
-    dirs.append(pypath)
-  env['PYTHONPATH'] = ':'.join(dirs)
-  if gendir.endswith('gen-py-no_utf8strings'):
-    env['THRIFT_TEST_PY_NO_UTF8STRINGS'] = '1'
-  return env
+    dirs = [libdir, gendir]
+    env = copy.deepcopy(os.environ)
+    pypath = env.get('PYTHONPATH', None)
+    if pypath:
+        dirs.append(pypath)
+    env['PYTHONPATH'] = ':'.join(dirs)
+    if gendir.endswith('gen-py-no_utf8strings'):
+        env['THRIFT_TEST_PY_NO_UTF8STRINGS'] = '1'
+    return env
 
 
 def runScriptTest(libdir, genbase, genpydir, script):
-  env = setup_pypath(libdir, os.path.join(genbase, genpydir))
-  script_args = [sys.executable, relfile(script)]
-  print('\nTesting script: %s\n----' % (' '.join(script_args)))
-  ret = subprocess.call(script_args, env=env)
-  if ret != 0:
-    print('*** FAILED ***', file=sys.stderr)
-    print('LIBDIR: %s' % libdir, file=sys.stderr)
-    print('PY_GEN: %s' % genpydir, file=sys.stderr)
-    print('SCRIPT: %s' % script, file=sys.stderr)
-    raise Exception("Script subprocess failed, retcode=%d, args: %s" % (ret, ' '.join(script_args)))
+    env = setup_pypath(libdir, os.path.join(genbase, genpydir))
+    script_args = [sys.executable, relfile(script)]
+    print('\nTesting script: %s\n----' % (' '.join(script_args)))
+    ret = subprocess.call(script_args, env=env)
+    if ret != 0:
+        print('*** FAILED ***', file=sys.stderr)
+        print('LIBDIR: %s' % libdir, file=sys.stderr)
+        print('PY_GEN: %s' % genpydir, file=sys.stderr)
+        print('SCRIPT: %s' % script, file=sys.stderr)
+        raise Exception("Script subprocess failed, retcode=%d, args: %s" % (ret, ' '.join(script_args)))
 
 
 def runServiceTest(libdir, genbase, genpydir, server_class, proto, port, use_zlib, use_ssl, verbose):
-  env = setup_pypath(libdir, os.path.join(genbase, genpydir))
-  # Build command line arguments
-  server_args = [sys.executable, relfile('TestServer.py')]
-  cli_args = [sys.executable, relfile('TestClient.py')]
-  for which in (server_args, cli_args):
-    which.append('--protocol=%s' % proto)  # accel, binary, compact or json
-    which.append('--port=%d' % port)  # default to 9090
-    if use_zlib:
-      which.append('--zlib')
-    if use_ssl:
-      which.append('--ssl')
-    if verbose == 0:
-      which.append('-q')
-    if verbose == 2:
-      which.append('-v')
-  # server-specific option to select server class
-  server_args.append(server_class)
-  # client-specific cmdline options
-  if server_class in FRAMED:
-    cli_args.append('--transport=framed')
-  else:
-     cli_args.append('--transport=buffered')
-  if server_class == 'THttpServer':
-    cli_args.append('--http=/')
-  if verbose > 0:
-    print('Testing server %s: %s' % (server_class, ' '.join(server_args)))
-  serverproc = subprocess.Popen(server_args, env=env)
-
-  def ensureServerAlive():
-    if serverproc.poll() is not None:
-      print(('FAIL: Server process (%s) failed with retcode %d')
-            % (' '.join(server_args), serverproc.returncode))
-      raise Exception('Server subprocess %s died, args: %s'
-                      % (server_class, ' '.join(server_args)))
-
-  # Wait for the server to start accepting connections on the given port.
-  sock = socket.socket()
-  sleep_time = 0.1  # Seconds
-  max_attempts = 100
-  try:
-    attempt = 0
-    while sock.connect_ex(('127.0.0.1', port)) != 0:
-      attempt += 1
-      if attempt >= max_attempts:
-        raise Exception("TestServer not ready on port %d after %.2f seconds"
-                        % (port, sleep_time * attempt))
-      ensureServerAlive()
-      time.sleep(sleep_time)
-  finally:
-    sock.close()
-
-  try:
+    env = setup_pypath(libdir, os.path.join(genbase, genpydir))
+    # Build command line arguments
+    server_args = [sys.executable, relfile('TestServer.py')]
+    cli_args = [sys.executable, relfile('TestClient.py')]
+    for which in (server_args, cli_args):
+        which.append('--protocol=%s' % proto)  # accel, binary, compact or json
+        which.append('--port=%d' % port)  # default to 9090
+        if use_zlib:
+            which.append('--zlib')
+        if use_ssl:
+            which.append('--ssl')
+        if verbose == 0:
+            which.append('-q')
+        if verbose == 2:
+            which.append('-v')
+    # server-specific option to select server class
+    server_args.append(server_class)
+    # client-specific cmdline options
+    if server_class in FRAMED:
+        cli_args.append('--transport=framed')
+    else:
+        cli_args.append('--transport=buffered')
+    if server_class == 'THttpServer':
+        cli_args.append('--http=/')
     if verbose > 0:
-      print('Testing client: %s' % (' '.join(cli_args)))
-    ret = subprocess.call(cli_args, env=env)
-    if ret != 0:
-      print('*** FAILED ***', file=sys.stderr)
-      print('LIBDIR: %s' % libdir, file=sys.stderr)
-      print('PY_GEN: %s' % genpydir, file=sys.stderr)
-      raise Exception("Client subprocess failed, retcode=%d, args: %s" % (ret, ' '.join(cli_args)))
-  finally:
-    # check that server didn't die
-    ensureServerAlive()
-    extra_sleep = EXTRA_DELAY.get(server_class, 0)
-    if extra_sleep > 0 and verbose > 0:
-      print('Giving %s (proto=%s,zlib=%s,ssl=%s) an extra %d seconds for child'
-            'processes to terminate via alarm'
-            % (server_class, proto, use_zlib, use_ssl, extra_sleep))
-      time.sleep(extra_sleep)
-    os.kill(serverproc.pid, signal.SIGKILL)
-    serverproc.wait()
+        print('Testing server %s: %s' % (server_class, ' '.join(server_args)))
+    serverproc = subprocess.Popen(server_args, env=env)
+
+    def ensureServerAlive():
+        if serverproc.poll() is not None:
+            print(('FAIL: Server process (%s) failed with retcode %d')
+                  % (' '.join(server_args), serverproc.returncode))
+            raise Exception('Server subprocess %s died, args: %s'
+                            % (server_class, ' '.join(server_args)))
+
+    # Wait for the server to start accepting connections on the given port.
+    sock = socket.socket()
+    sleep_time = 0.1  # Seconds
+    max_attempts = 100
+    try:
+        attempt = 0
+        while sock.connect_ex(('127.0.0.1', port)) != 0:
+            attempt += 1
+            if attempt >= max_attempts:
+                raise Exception("TestServer not ready on port %d after %.2f seconds"
+                                % (port, sleep_time * attempt))
+            ensureServerAlive()
+            time.sleep(sleep_time)
+    finally:
+        sock.close()
+
+    try:
+        if verbose > 0:
+            print('Testing client: %s' % (' '.join(cli_args)))
+        ret = subprocess.call(cli_args, env=env)
+        if ret != 0:
+            print('*** FAILED ***', file=sys.stderr)
+            print('LIBDIR: %s' % libdir, file=sys.stderr)
+            print('PY_GEN: %s' % genpydir, file=sys.stderr)
+            raise Exception("Client subprocess failed, retcode=%d, args: %s" % (ret, ' '.join(cli_args)))
+    finally:
+        # check that server didn't die
+        ensureServerAlive()
+        extra_sleep = EXTRA_DELAY.get(server_class, 0)
+        if extra_sleep > 0 and verbose > 0:
+            print('Giving %s (proto=%s,zlib=%s,ssl=%s) an extra %d seconds for child'
+                  'processes to terminate via alarm'
+                  % (server_class, proto, use_zlib, use_ssl, extra_sleep))
+            time.sleep(extra_sleep)
+        os.kill(serverproc.pid, signal.SIGKILL)
+        serverproc.wait()
 
 
 class TestCases(object):
-  def __init__(self, genbase, libdir, port, gendirs, servers, verbose):
-    self.genbase = genbase
-    self.libdir = libdir
-    self.port = port
-    self.verbose = verbose
-    self.gendirs = gendirs
-    self.servers = servers
+    def __init__(self, genbase, libdir, port, gendirs, servers, verbose):
+        self.genbase = genbase
+        self.libdir = libdir
+        self.port = port
+        self.verbose = verbose
+        self.gendirs = gendirs
+        self.servers = servers
 
-  def default_conf(self):
-    return {
-      'gendir': self.gendirs[0],
-      'server': self.servers[0],
-      'proto': PROTOS[0],
-      'zlib': False,
-      'ssl': False,
-    }
+    def default_conf(self):
+        return {
+            'gendir': self.gendirs[0],
+            'server': self.servers[0],
+            'proto': PROTOS[0],
+            'zlib': False,
+            'ssl': False,
+        }
 
-  def run(self, conf, test_count):
-    with_zlib = conf['zlib']
-    with_ssl = conf['ssl']
-    try_server = conf['server']
-    try_proto = conf['proto']
-    genpydir = conf['gendir']
-    # skip any servers that don't work with the Zlib transport
-    if with_zlib and try_server in SKIP_ZLIB:
-      return False
-    # skip any servers that don't work with SSL
-    if with_ssl and try_server in SKIP_SSL:
-      return False
-    if self.verbose > 0:
-      print('\nTest run #%d:  (includes %s) Server=%s,  Proto=%s,  zlib=%s,  SSL=%s'
-            % (test_count, genpydir, try_server, try_proto, with_zlib, with_ssl))
-    runServiceTest(self.libdir, self.genbase, genpydir, try_server, try_proto, self.port, with_zlib, with_ssl, self.verbose)
-    if self.verbose > 0:
-      print('OK: Finished (includes %s)  %s / %s proto / zlib=%s / SSL=%s.   %d combinations tested.'
-            % (genpydir, try_server, try_proto, with_zlib, with_ssl, test_count))
-    return True
+    def run(self, conf, test_count):
+        with_zlib = conf['zlib']
+        with_ssl = conf['ssl']
+        try_server = conf['server']
+        try_proto = conf['proto']
+        genpydir = conf['gendir']
+        # skip any servers that don't work with the Zlib transport
+        if with_zlib and try_server in SKIP_ZLIB:
+            return False
+        # skip any servers that don't work with SSL
+        if with_ssl and try_server in SKIP_SSL:
+            return False
+        if self.verbose > 0:
+            print('\nTest run #%d:  (includes %s) Server=%s,  Proto=%s,  zlib=%s,  SSL=%s'
+                  % (test_count, genpydir, try_server, try_proto, with_zlib, with_ssl))
+        runServiceTest(self.libdir, self.genbase, genpydir, try_server, try_proto, self.port, with_zlib, with_ssl, self.verbose)
+        if self.verbose > 0:
+            print('OK: Finished (includes %s)  %s / %s proto / zlib=%s / SSL=%s.   %d combinations tested.'
+                  % (genpydir, try_server, try_proto, with_zlib, with_ssl, test_count))
+        return True
 
-  def test_feature(self, name, values):
-    test_count = 0
-    conf = self.default_conf()
-    for try_server in values:
-      conf[name] = try_server
-      if self.run(conf, test_count):
-        test_count += 1
-    return test_count
+    def test_feature(self, name, values):
+        test_count = 0
+        conf = self.default_conf()
+        for try_server in values:
+            conf[name] = try_server
+            if self.run(conf, test_count):
+                test_count += 1
+        return test_count
 
-  def run_all_tests(self):
-    test_count = 0
-    for try_server in self.servers:
-      for genpydir in self.gendirs:
-        for try_proto in PROTOS:
-          for with_zlib in (False, True):
-            # skip any servers that don't work with the Zlib transport
-            if with_zlib and try_server in SKIP_ZLIB:
-              continue
-            for with_ssl in (False, True):
-              # skip any servers that don't work with SSL
-              if with_ssl and try_server in SKIP_SSL:
-                continue
-              test_count += 1
-              if self.verbose > 0:
-                print('\nTest run #%d:  (includes %s) Server=%s,  Proto=%s,  zlib=%s,  SSL=%s'
-                      % (test_count, genpydir, try_server, try_proto, with_zlib, with_ssl))
-              runServiceTest(self.libdir, self.genbase, genpydir, try_server, try_proto, self.port, with_zlib, with_ssl)
-              if self.verbose > 0:
-                print('OK: Finished (includes %s)  %s / %s proto / zlib=%s / SSL=%s.   %d combinations tested.'
-                      % (genpydir, try_server, try_proto, with_zlib, with_ssl, test_count))
-    return test_count
+    def run_all_tests(self):
+        test_count = 0
+        for try_server in self.servers:
+            for genpydir in self.gendirs:
+                for try_proto in PROTOS:
+                    for with_zlib in (False, True):
+                        # skip any servers that don't work with the Zlib transport
+                        if with_zlib and try_server in SKIP_ZLIB:
+                            continue
+                        for with_ssl in (False, True):
+                            # skip any servers that don't work with SSL
+                            if with_ssl and try_server in SKIP_SSL:
+                                continue
+                            test_count += 1
+                            if self.verbose > 0:
+                                print('\nTest run #%d:  (includes %s) Server=%s,  Proto=%s,  zlib=%s,  SSL=%s'
+                                      % (test_count, genpydir, try_server, try_proto, with_zlib, with_ssl))
+                            runServiceTest(self.libdir, self.genbase, genpydir, try_server, try_proto, self.port, with_zlib, with_ssl)
+                            if self.verbose > 0:
+                                print('OK: Finished (includes %s)  %s / %s proto / zlib=%s / SSL=%s.   %d combinations tested.'
+                                      % (genpydir, try_server, try_proto, with_zlib, with_ssl, test_count))
+        return test_count
 
 
 def default_libdir():
-  if sys.version_info[0] == 2:
-    return glob.glob(DEFAULT_LIBDIR_GLOB)[0]
-  else:
-    return DEFAULT_LIBDIR_PY3
+    if sys.version_info[0] == 2:
+        return glob.glob(DEFAULT_LIBDIR_GLOB)[0]
+    else:
+        return DEFAULT_LIBDIR_PY3
 
 
 def main():
-  parser = OptionParser()
-  parser.add_option('--all', action="store_true", dest='all')
-  parser.add_option('--genpydirs', type='string', dest='genpydirs',
-                    default='default,slots,oldstyle,no_utf8strings,dynamic,dynamicslots',
-                    help='directory extensions for generated code, used as suffixes for \"gen-py-*\" added sys.path for individual tests')
-  parser.add_option("--port", type="int", dest="port", default=9090,
-                    help="port number for server to listen on")
-  parser.add_option('-v', '--verbose', action="store_const",
-                    dest="verbose", const=2,
-                    help="verbose output")
-  parser.add_option('-q', '--quiet', action="store_const",
-                    dest="verbose", const=0,
-                    help="minimal output")
-  parser.add_option('-L', '--libdir', dest="libdir", default=default_libdir(),
-                    help="directory path that contains Thrift Python library")
-  parser.add_option('--gen-base', dest="gen_base", default=SCRIPT_DIR,
-                    help="directory path that contains Thrift Python library")
-  parser.set_defaults(verbose=1)
-  options, args = parser.parse_args()
+    parser = OptionParser()
+    parser.add_option('--all', action="store_true", dest='all')
+    parser.add_option('--genpydirs', type='string', dest='genpydirs',
+                      default='default,slots,oldstyle,no_utf8strings,dynamic,dynamicslots',
+                      help='directory extensions for generated code, used as suffixes for \"gen-py-*\" added sys.path for individual tests')
+    parser.add_option("--port", type="int", dest="port", default=9090,
+                      help="port number for server to listen on")
+    parser.add_option('-v', '--verbose', action="store_const",
+                      dest="verbose", const=2,
+                      help="verbose output")
+    parser.add_option('-q', '--quiet', action="store_const",
+                      dest="verbose", const=0,
+                      help="minimal output")
+    parser.add_option('-L', '--libdir', dest="libdir", default=default_libdir(),
+                      help="directory path that contains Thrift Python library")
+    parser.add_option('--gen-base', dest="gen_base", default=SCRIPT_DIR,
+                      help="directory path that contains Thrift Python library")
+    parser.set_defaults(verbose=1)
+    options, args = parser.parse_args()
 
-  generated_dirs = []
-  for gp_dir in options.genpydirs.split(','):
-    generated_dirs.append('gen-py-%s' % (gp_dir))
+    generated_dirs = []
+    for gp_dir in options.genpydirs.split(','):
+        generated_dirs.append('gen-py-%s' % (gp_dir))
 
-  # commandline permits a single class name to be specified to override SERVERS=[...]
-  servers = SERVERS
-  if len(args) == 1:
-    if args[0] in SERVERS:
-      servers = args
+    # commandline permits a single class name to be specified to override SERVERS=[...]
+    servers = SERVERS
+    if len(args) == 1:
+        if args[0] in SERVERS:
+            servers = args
+        else:
+            print('Unavailable server type "%s", please choose one of: %s' % (args[0], servers))
+            sys.exit(0)
+
+    tests = TestCases(options.gen_base, options.libdir, options.port, generated_dirs, servers, options.verbose)
+
+    # run tests without a client/server first
+    print('----------------')
+    print(' Executing individual test scripts with various generated code directories')
+    print(' Directories to be tested: ' + ', '.join(generated_dirs))
+    print(' Scripts to be tested: ' + ', '.join(SCRIPTS))
+    print('----------------')
+    for genpydir in generated_dirs:
+        for script in SCRIPTS:
+            runScriptTest(options.libdir, options.gen_base, genpydir, script)
+
+    print('----------------')
+    print(' Executing Client/Server tests with various generated code directories')
+    print(' Servers to be tested: ' + ', '.join(servers))
+    print(' Directories to be tested: ' + ', '.join(generated_dirs))
+    print(' Protocols to be tested: ' + ', '.join(PROTOS))
+    print(' Options to be tested: ZLIB(yes/no), SSL(yes/no)')
+    print('----------------')
+
+    if options.all:
+        tests.run_all_tests()
     else:
-      print('Unavailable server type "%s", please choose one of: %s' % (args[0], servers))
-      sys.exit(0)
-
-  tests = TestCases(options.gen_base, options.libdir, options.port, generated_dirs, servers, options.verbose)
-
-  # run tests without a client/server first
-  print('----------------')
-  print(' Executing individual test scripts with various generated code directories')
-  print(' Directories to be tested: ' + ', '.join(generated_dirs))
-  print(' Scripts to be tested: ' + ', '.join(SCRIPTS))
-  print('----------------')
-  for genpydir in generated_dirs:
-    for script in SCRIPTS:
-      runScriptTest(options.libdir, options.gen_base, genpydir, script)
-
-  print('----------------')
-  print(' Executing Client/Server tests with various generated code directories')
-  print(' Servers to be tested: ' + ', '.join(servers))
-  print(' Directories to be tested: ' + ', '.join(generated_dirs))
-  print(' Protocols to be tested: ' + ', '.join(PROTOS))
-  print(' Options to be tested: ZLIB(yes/no), SSL(yes/no)')
-  print('----------------')
-
-  if options.all:
-    tests.run_all_tests()
-  else:
-    tests.test_feature('gendir', generated_dirs)
-    tests.test_feature('server', servers)
-    tests.test_feature('proto', PROTOS)
-    tests.test_feature('zlib', [False, True])
-    tests.test_feature('ssl', [False, True])
+        tests.test_feature('gendir', generated_dirs)
+        tests.test_feature('server', servers)
+        tests.test_feature('proto', PROTOS)
+        tests.test_feature('zlib', [False, True])
+        tests.test_feature('ssl', [False, True])
 
 
 if __name__ == '__main__':
-  sys.exit(main())
+    sys.exit(main())