diff --git a/test/features/string_limit.py b/test/features/string_limit.py
index b4d48ac..3c68b3e 100644
--- a/test/features/string_limit.py
+++ b/test/features/string_limit.py
@@ -10,52 +10,52 @@
 
 # TODO: generate from ThriftTest.thrift
 def test_string(proto, value):
-  method_name = 'testString'
-  ttype = TType.STRING
-  proto.writeMessageBegin(method_name, TMessageType.CALL, 3)
-  proto.writeStructBegin(method_name + '_args')
-  proto.writeFieldBegin('thing', ttype, 1)
-  proto.writeString(value)
-  proto.writeFieldEnd()
-  proto.writeFieldStop()
-  proto.writeStructEnd()
-  proto.writeMessageEnd()
-  proto.trans.flush()
+    method_name = 'testString'
+    ttype = TType.STRING
+    proto.writeMessageBegin(method_name, TMessageType.CALL, 3)
+    proto.writeStructBegin(method_name + '_args')
+    proto.writeFieldBegin('thing', ttype, 1)
+    proto.writeString(value)
+    proto.writeFieldEnd()
+    proto.writeFieldStop()
+    proto.writeStructEnd()
+    proto.writeMessageEnd()
+    proto.trans.flush()
 
-  _, mtype, _ = proto.readMessageBegin()
-  assert mtype == TMessageType.REPLY
-  proto.readStructBegin()
-  _, ftype, fid = proto.readFieldBegin()
-  assert fid == 0
-  assert ftype == ttype
-  result = proto.readString()
-  proto.readFieldEnd()
-  _, ftype, _ = proto.readFieldBegin()
-  assert ftype == TType.STOP
-  proto.readStructEnd()
-  proto.readMessageEnd()
-  assert value == result
+    _, mtype, _ = proto.readMessageBegin()
+    assert mtype == TMessageType.REPLY
+    proto.readStructBegin()
+    _, ftype, fid = proto.readFieldBegin()
+    assert fid == 0
+    assert ftype == ttype
+    result = proto.readString()
+    proto.readFieldEnd()
+    _, ftype, _ = proto.readFieldBegin()
+    assert ftype == TType.STOP
+    proto.readStructEnd()
+    proto.readMessageEnd()
+    assert value == result
 
 
 def main(argv):
-  p = argparse.ArgumentParser()
-  add_common_args(p)
-  p.add_argument('--limit', type=int)
-  args = p.parse_args()
-  proto = init_protocol(args)
-  test_string(proto, 'a' * (args.limit - 1))
-  test_string(proto, 'a' * (args.limit - 1))
-  print('[OK]: limit - 1')
-  test_string(proto, 'a' * args.limit)
-  test_string(proto, 'a' * args.limit)
-  print('[OK]: just limit')
-  try:
-    test_string(proto, 'a' * (args.limit + 1))
-  except:
-    print('[OK]: limit + 1')
-  else:
-    print('[ERROR]: limit + 1')
-    assert False
+    p = argparse.ArgumentParser()
+    add_common_args(p)
+    p.add_argument('--limit', type=int)
+    args = p.parse_args()
+    proto = init_protocol(args)
+    test_string(proto, 'a' * (args.limit - 1))
+    test_string(proto, 'a' * (args.limit - 1))
+    print('[OK]: limit - 1')
+    test_string(proto, 'a' * args.limit)
+    test_string(proto, 'a' * args.limit)
+    print('[OK]: just limit')
+    try:
+        test_string(proto, 'a' * (args.limit + 1))
+    except:
+        print('[OK]: limit + 1')
+    else:
+        print('[ERROR]: limit + 1')
+        assert False
 
 if __name__ == '__main__':
-  main(sys.argv[1:])
+    main(sys.argv[1:])
