Tarantool development patches archive
 help / color / mirror / Atom feed
* [Tarantool-patches] [PATCH 0/6] Support Python 3 in tests and PEPify source code
@ 2020-12-07  7:46 sergeyb
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 1/6] test: support Python 3 and make quotes use consistent sergeyb
                   ` (5 more replies)
  0 siblings, 6 replies; 14+ messages in thread
From: sergeyb @ 2020-12-07  7:46 UTC (permalink / raw)
  To: tarantool-patches, lvasiliev; +Cc: alexander.turenko

From: Sergey Bronnikov <sergeyb@tarantool.org>

Changes v1:
- convert print statements to functions
- use "format()" instead of "%" everywhere

Changes v2:
- make using quotes with strings consistent
- remove dead code
- remove empty prints
- added make target for running flake8
- added flake8 config
- added job to run flake8 on Gitlab CI

Gitlab CI: https://gitlab.com/tarantool/tarantool/-/pipelines/225950617
Branch: https://github.com/tarantool/tarantool/tree/ligurio/gh-5538-support-python3
Issue: https://github.com/tarantool/tarantool/issues/5538

Sergey Bronnikov (6):
  test: support Python 3 and make quotes use consistent
  test: remove dead code in Python tests end extra newline
  test: remove empty print() functions
  add initial flake8 config
  cmake: add integration with flake8
  ci: enable flake8

 .flake8                                  |   66 +
 .gitlab-ci.yml                           |    8 +
 .travis.mk                               |   12 +
 CMakeLists.txt                           |   18 +
 test/app-tap/httpd.py                    |   42 +-
 test/box-py/args.test.py                 |   14 +-
 test/box-py/bad_trigger.result           |    2 -
 test/box-py/bad_trigger.test.py          |   20 +-
 test/box-py/bootstrap.result             |    2 +-
 test/box-py/bootstrap.test.py            |   16 +-
 test/box-py/call.result                  |   16 +-
 test/box-py/call.test.py                 |   88 +-
 test/box-py/iproto.result                |   10 +-
 test/box-py/iproto.test.py               |  218 ++-
 test/box-py/print.result                 |    6 +-
 test/box-py/print.test.py                |   24 +-
 test/box-py/snapshot.result              |    4 +-
 test/box-py/snapshot.test.py             |   33 +-
 test/long_run-py/finalizers.result       |    2 +-
 test/long_run-py/finalizers.test.py      |    8 +-
 test/replication-py/cluster.result       |    6 +-
 test/replication-py/cluster.test.py      |  217 +--
 test/replication-py/conflict.test.py     |   54 +-
 test/replication-py/init_storage.test.py |   54 +-
 test/replication-py/multi.result         |    6 -
 test/replication-py/multi.test.py        |   72 +-
 test/replication-py/swap.result          | 1600 +++++++++++-----------
 test/replication-py/swap.test.py         |   55 +-
 test/xlog-py/big_lsn.test.py             |    4 +-
 test/xlog-py/dup_key.result              |    2 -
 test/xlog-py/dup_key.test.py             |   20 +-
 test/xlog-py/empty.test.py               |    4 +-
 test/xlog-py/lsn_gap.result              |    2 -
 test/xlog-py/lsn_gap.test.py             |    9 +-
 test/xlog-py/misc.result                 |    6 -
 test/xlog-py/misc.test.py                |   27 +-
 test/xlog-py/missing.result              |    2 -
 test/xlog-py/missing.test.py             |    8 +-
 38 files changed, 1407 insertions(+), 1350 deletions(-)
 create mode 100644 .flake8

-- 
2.25.1

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Tarantool-patches] [PATCH 1/6] test: support Python 3 and make quotes use consistent
  2020-12-07  7:46 [Tarantool-patches] [PATCH 0/6] Support Python 3 in tests and PEPify source code sergeyb
@ 2020-12-07  7:46 ` sergeyb
  2020-12-09 15:58   ` Leonid Vasiliev
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 2/6] test: remove dead code in Python tests end extra newline sergeyb
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 14+ messages in thread
From: sergeyb @ 2020-12-07  7:46 UTC (permalink / raw)
  To: tarantool-patches, lvasiliev; +Cc: alexander.turenko

From: Sergey Bronnikov <sergeyb@tarantool.org>

- convert print statement to function. In a Python 3 'print' becomes a
function, see [1]. Patch makes 'print' in a regression tests compatible with
Python 3.
- according to PEP8, mixing using double quotes and quotes in a project looks
inconsistent (one must be selected). Patch makes using quotes with strings
consistent.
- convert iteritems() to list
- print multiline strings with multiple print()
- use "format()" instead of "%" everywhere

1. https://docs.python.org/3/whatsnew/3.0.html#print-is-a-function

Closes #5538
---
 test/app-tap/httpd.py                    |   42 +-
 test/box-py/args.test.py                 |   14 +-
 test/box-py/bad_trigger.result           |    2 -
 test/box-py/bad_trigger.test.py          |   20 +-
 test/box-py/bootstrap.result             |    2 +-
 test/box-py/bootstrap.test.py            |   16 +-
 test/box-py/call.result                  |   12 +-
 test/box-py/call.test.py                 |   92 +-
 test/box-py/iproto.result                |   10 +-
 test/box-py/iproto.test.py               |  218 ++-
 test/box-py/print.result                 |    6 +-
 test/box-py/print.test.py                |   24 +-
 test/box-py/snapshot.result              |    4 +-
 test/box-py/snapshot.test.py             |   33 +-
 test/long_run-py/finalizers.result       |    2 +-
 test/long_run-py/finalizers.test.py      |    8 +-
 test/replication-py/cluster.result       |    6 +-
 test/replication-py/cluster.test.py      |  217 +--
 test/replication-py/conflict.test.py     |   54 +-
 test/replication-py/init_storage.test.py |   48 +-
 test/replication-py/multi.test.py        |   78 +-
 test/replication-py/swap.result          | 1600 +++++++++++-----------
 test/replication-py/swap.test.py         |   52 +-
 test/xlog-py/big_lsn.test.py             |    4 +-
 test/xlog-py/dup_key.test.py             |   17 +-
 test/xlog-py/empty.test.py               |    4 +-
 test/xlog-py/lsn_gap.test.py             |   10 +-
 test/xlog-py/misc.test.py                |   33 +-
 test/xlog-py/missing.test.py             |   10 +-
 29 files changed, 1324 insertions(+), 1314 deletions(-)

diff --git a/test/app-tap/httpd.py b/test/app-tap/httpd.py
index b4662bc1f..b57ef1e39 100755
--- a/test/app-tap/httpd.py
+++ b/test/app-tap/httpd.py
@@ -6,35 +6,35 @@ from gevent import spawn, sleep, socket
 
 def absent():
     code = "500 Server Error"
-    headers = [('Content-Type', 'application/json')]
+    headers = [("Content-Type", "application/json")]
     body = ["No such method"]
     return code, body, headers
 
 def hello():
     code = "200 OK"
     body = ["hello world"]
-    headers = [('Content-Type', 'application/json')]
+    headers = [("Content-Type", "application/json")]
     return code, body, headers
 
 def hello1():
     code = "200 OK"
     body = [b"abc"]
-    headers = [('Content-Type', 'application/json')]
+    headers = [("Content-Type", "application/json")]
     return code, body, headers
 
 def headers():
     code = "200 OK"
     body = [b"cookies"]
-    headers = [('Content-Type', 'application/json'),
-               ('Content-Type', 'application/yaml'),
-               ('Set-Cookie', 'likes=cheese; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly'),
-               ('Set-Cookie', 'bad@name=no;'),
-               ('Set-Cookie', 'badcookie'),
-               ('Set-Cookie', 'good_name=yes;'),
-               ('Set-Cookie', 'age = 17; NOSuchOption; EmptyOption=Value;Secure'),
-               ('my_header', 'value1'),
-               ('my_header', 'value2'),
-               ('very_very_very_long_headers_name1', 'true'),
+    headers = [("Content-Type", "application/json"),
+               ("Content-Type", "application/yaml"),
+               ("Set-Cookie", "likes=cheese; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly"),
+               ("Set-Cookie", "bad@name=no;"),
+               ("Set-Cookie", "badcookie"),
+               ("Set-Cookie", "good_name=yes;"),
+               ("Set-Cookie", "age = 17; NOSuchOption; EmptyOption=Value;Secure"),
+               ("my_header", "value1"),
+               ("my_header", "value2"),
+               ("very_very_very_long_headers_name1", "true"),
                ]
     return code, body, headers
 
@@ -42,13 +42,13 @@ def long_query():
     sleep(0.005)
     code = "200 OK"
     body = [b"abc"]
-    headers = [('Content-Type', 'application/json')]
+    headers = [("Content-Type", "application/json")]
     return code, body, headers
 
 def redirect():
     code = "302 Found"
     body = ["redirecting"]
-    headers = [('Location', '/')]
+    headers = [("Location", "/")]
     return code, body, headers
 
 paths = {
@@ -63,7 +63,7 @@ paths = {
 def read_handle(env, response):
     code = "404 Not Found"
     headers = []
-    body = ['Not Found']
+    body = ["Not Found"]
     if env["PATH_INFO"] in paths:
         code, body, headers = paths[env["PATH_INFO"]]()
     for key,value in env.iteritems():
@@ -74,7 +74,7 @@ def read_handle(env, response):
 
 def post_handle(env, response):
     code = "200 OK"
-    body = [env['wsgi.input'].read()]
+    body = [env["wsgi.input"].read()]
     headers = []
     for key,value in env.iteritems():
         if "HTTP_" in key:
@@ -83,7 +83,7 @@ def post_handle(env, response):
     return body
 
 def other_handle(env, response, method, code):
-    headers = [('Content-Type', 'text/plain'), ("method", method)]
+    headers = [("Content-Type", "text/plain"), ("method", method)]
     body = [method]
     for key,value in env.iteritems():
         if "HTTP_" in key:
@@ -119,15 +119,15 @@ def heartbeat():
         sys.exit(1)
 
 def usage():
-    sys.stderr.write("Usage: %s { --inet HOST:PORT | --unix PATH }\n" %
-                     sys.argv[0])
+    message = "Usage: {} {{ --inet HOST:PORT | --unix PATH }}\n".format(sys.argv[0])
+    sys.stderr.write(message)
     sys.exit(1)
 
 if len(sys.argv) != 3:
     usage()
 
 if sys.argv[1] == "--inet":
-    host, port = sys.argv[2].split(':')
+    host, port = sys.argv[2].split(":")
     sock_family = socket.AF_INET
     sock_addr = (host, int(port))
 elif sys.argv[1] == "--unix":
diff --git a/test/box-py/args.test.py b/test/box-py/args.test.py
index c0fac9038..f1b840a85 100644
--- a/test/box-py/args.test.py
+++ b/test/box-py/args.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import sys
 import os
 import re
@@ -5,7 +7,7 @@ import re
 # Disabled on OpenBSD due to fail #XXXX.
 import platform
 
-if platform.system() == 'OpenBSD':
+if platform.system() == "OpenBSD":
     self.skip = 1
 
 # mask BFD warnings: https://bugs.launchpad.net/tarantool/+bug/1018356
@@ -13,9 +15,9 @@ sys.stdout.push_filter("unable to read unknown load command 0x2\d+", "")
 server.test_option("--help")
 server.test_option("-h")
 # Replace with the same value for case when builddir inside source dir
-sys.stdout.push_filter(re.escape(os.getenv("BUILDDIR")+'/src/tarantool'), "tarantool")
+sys.stdout.push_filter(re.escape(os.getenv("BUILDDIR")+"/src/tarantool"), "tarantool")
 sys.stdout.push_filter(re.escape(os.getenv("BUILDDIR")), "${SOURCEDIR}")
-sys.stdout.push_filter(re.escape(os.getenv("SOURCEDIR")+'/src/tarantool'), "tarantool")
+sys.stdout.push_filter(re.escape(os.getenv("SOURCEDIR")+"/src/tarantool"), "tarantool")
 sys.stdout.push_filter(re.escape(os.getenv("SOURCEDIR")), "${SOURCEDIR}")
 sys.stdout.push_filter("invalid option.*", "invalid option")
 sys.stdout.push_filter("unrecognized option.*", "unrecognized option")
@@ -44,11 +46,11 @@ server.test_option(script + " --help 1 2 3")
 server.test_option("-V " + script + " 1 2 3")
 
 # gh-3966: os.exit() hangs if called by a command from the argument list.
-server.test_option("-e \"print(1) os.exit() print(2)\"")
-server.test_option("-e \"print(1)\" -e \"os.exit()\" -e \"print(1)\" -e \"os.exit()\" -e \"print(1)\"")
+server.test_option("-e 'print(1) os.exit() print(2)'")
+server.test_option("-e 'print(1)' -e 'os.exit()' -e 'print(1)' -e 'os.exit()' -e 'print(1)'")
 
 server.test_option("-e \"print('Hello')\" " + script + " 1 2 3")
-server.test_option("-e \"a = 10\" " + \
+server.test_option("-e 'a = 10' " + \
                    "-e print(a) " + \
                    script + \
                    " 1 2 3 --help")
diff --git a/test/box-py/bad_trigger.result b/test/box-py/bad_trigger.result
index 5d064b764..42cd9a7e8 100644
--- a/test/box-py/bad_trigger.result
+++ b/test/box-py/bad_trigger.result
@@ -1,8 +1,6 @@
-
  #
  # if on_connect() trigger raises an exception, the connection is dropped
  #
- 
 nosuchfunction = nil
 ---
 ...
diff --git a/test/box-py/bad_trigger.test.py b/test/box-py/bad_trigger.test.py
index 7d200b921..789fe8045 100644
--- a/test/box-py/bad_trigger.test.py
+++ b/test/box-py/bad_trigger.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 from lib.box_connection import BoxConnection
 from lib.tarantool_connection import TarantoolConnection
 from tarantool import NetworkError
@@ -6,11 +8,9 @@ from tarantool.const import IPROTO_GREETING_SIZE, IPROTO_CODE, IPROTO_ERROR, \
 import socket
 import msgpack
 
-print """
- #
- # if on_connect() trigger raises an exception, the connection is dropped
- #
- """
+print(" #")
+print(" # if on_connect() trigger raises an exception, the connection is dropped")
+print(" #")
 
 # silence possible error of strict mode
 server.admin("nosuchfunction = nil")
@@ -24,12 +24,12 @@ conn.connect()
 s = conn.socket
 
 # Read greeting
-print 'greeting: ', len(s.recv(IPROTO_GREETING_SIZE)) == IPROTO_GREETING_SIZE
+print("greeting:  {}".format(len(s.recv(IPROTO_GREETING_SIZE)) == IPROTO_GREETING_SIZE))
 
 # Read error packet
 IPROTO_FIXHEADER_SIZE = 5
 fixheader = s.recv(IPROTO_FIXHEADER_SIZE)
-print 'fixheader: ', len(fixheader) == IPROTO_FIXHEADER_SIZE
+print("fixheader:  {}".format(len(fixheader) == IPROTO_FIXHEADER_SIZE))
 unpacker.feed(fixheader)
 packet_len = unpacker.unpack()
 packet = s.recv(packet_len)
@@ -38,9 +38,9 @@ unpacker.feed(packet)
 # Parse packet
 header = unpacker.unpack()
 body = unpacker.unpack()
-print 'error code', (header[IPROTO_CODE] & (REQUEST_TYPE_ERROR - 1))
-print 'error message: ', body[IPROTO_ERROR]
-print 'eof:', len(s.recv(1024)) == 0
+print("error code {}".format((header[IPROTO_CODE] & (REQUEST_TYPE_ERROR - 1))))
+print("error message:  {}".format(body[IPROTO_ERROR]))
+print("eof: {}".format(len(s.recv(1024)) == 0))
 s.close()
 
 server.admin("box.session.on_connect(nil, f1)")
diff --git a/test/box-py/bootstrap.result b/test/box-py/bootstrap.result
index 0876e77a6..865302698 100644
--- a/test/box-py/bootstrap.result
+++ b/test/box-py/bootstrap.result
@@ -165,7 +165,7 @@ box.space._user:select{}
   - [3, 1, 'replication', 'role', {}]
   - [31, 1, 'super', 'role', {}]
 ...
-for _, v in box.space._func:pairs{} do r = {} table.insert(r, v:update({{"=", 18, ""}, {"=", 19, ""}})) return r end
+for _, v in box.space._func:pairs{} do r = {} table.insert(r, v:update({{'=', 18, ''}, {'=', 19, ''}})) return r end
 ---
 - - [1, 1, 'box.schema.user.info', 1, 'LUA', '', 'function', [], 'any', 'none', 'none',
     false, false, true, ['LUA'], {}, '', '', '']
diff --git a/test/box-py/bootstrap.test.py b/test/box-py/bootstrap.test.py
index 63c13e8a4..f7c846bf1 100644
--- a/test/box-py/bootstrap.test.py
+++ b/test/box-py/bootstrap.test.py
@@ -1,11 +1,11 @@
-server.admin('box.internal.bootstrap()')
-server.admin('box.space._schema:select{}')
-server.admin('box.space._cluster:select{}')
-server.admin('box.space._space:select{}')
-server.admin('box.space._index:select{}')
-server.admin('box.space._user:select{}')
-server.admin('for _, v in box.space._func:pairs{} do r = {} table.insert(r, v:update({{"=", 18, ""}, {"=", 19, ""}})) return r end')
-server.admin('box.space._priv:select{}')
+server.admin("box.internal.bootstrap()")
+server.admin("box.space._schema:select{}")
+server.admin("box.space._cluster:select{}")
+server.admin("box.space._space:select{}")
+server.admin("box.space._index:select{}")
+server.admin("box.space._user:select{}")
+server.admin("for _, v in box.space._func:pairs{} do r = {} table.insert(r, v:update({{'=', 18, ''}, {'=', 19, ''}})) return r end")
+server.admin("box.space._priv:select{}")
 
 # Cleanup
 server.stop()
diff --git a/test/box-py/call.result b/test/box-py/call.result
index d340ed6fa..e6b7b8dc9 100644
--- a/test/box-py/call.result
+++ b/test/box-py/call.result
@@ -536,10 +536,10 @@ function f(...) return ... end
 call f({'k2': 'v2', 'k1': 'v1'})
 ---
 - {'k2': 'v2', 'k1': 'v1'}
-eval (return space:auto_increment({"transaction"}))()
+eval (return space:auto_increment({'transaction'}))()
 ---
 - [1, 'transaction']
-function f(...) return space:auto_increment({"transaction"}) end
+function f(...) return space:auto_increment({'transaction'}) end
 ---
 ...
 call f()
@@ -554,11 +554,11 @@ function f(...) return space:select{} end
 call f()
 ---
 - [[1, 'transaction'], [2, 'transaction']]
-eval (return box.begin(), space:auto_increment({"failed"}), box.rollback())()
+eval (return box.begin(), space:auto_increment({'failed'}), box.rollback())()
 ---
 - None
 - [3, 'failed']
-function f(...) return box.begin(), space:auto_increment({"failed"}), box.rollback() end
+function f(...) return box.begin(), space:auto_increment({'failed'}), box.rollback() end
 ---
 ...
 call f()
@@ -574,10 +574,10 @@ function f(...) return space:select{} end
 call f()
 ---
 - [[1, 'transaction'], [2, 'transaction']]
-eval (return require("fiber").sleep(0))()
+eval (return require('fiber').sleep(0))()
 ---
 
-function f(...) return require("fiber").sleep(0) end
+function f(...) return require('fiber').sleep(0) end
 ---
 ...
 call f()
diff --git a/test/box-py/call.test.py b/test/box-py/call.test.py
index 974ba0cac..75ced1dff 100644
--- a/test/box-py/call.test.py
+++ b/test/box-py/call.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import os
 import sys
 
@@ -6,9 +8,9 @@ def call(name, *args):
 
 admin("box.schema.user.create('test', { password = 'test' })")
 admin("box.schema.user.grant('test', 'execute,read,write', 'universe')")
-iproto.authenticate('test', 'test')
+iproto.authenticate("test", "test")
 # workaround for gh-770 centos 6 float representation
-admin('exp_notation = 1e123')
+admin("exp_notation = 1e123")
 admin("function f1() return 'testing', 1, false, -1, 1.123, math.abs(exp_notation - 1e123) < 0.1, nil end")
 admin("f1()")
 call("f1")
@@ -19,13 +21,13 @@ call("f1")
 
 # A test case for https://github.com/tarantool/tarantool/issues/44
 # IPROTO required!
-call("box.error", 33333, 'Hey!')
+call("box.error", 33333, "Hey!")
 
-print """
-# A test case for Bug#103491
-# server CALL processing bug with name path longer than two
-# https://bugs.launchpad.net/tarantool/+bug/1034912
-"""
+print("")
+print("# A test case for Bug#103491")
+print("# server CALL processing bug with name path longer than two")
+print("# https://bugs.launchpad.net/tarantool/+bug/1034912")
+print("")
 admin("f = function() return 'OK' end")
 admin("test = {}")
 admin("test.f = f")
@@ -35,11 +37,11 @@ call("f")
 call("test.f")
 call("test.test.f")
 
-print """
-# Test for Bug #955226
-# Lua Numbers are passed back wrongly as strings
-#
-"""
+print("")
+print("# Test for Bug #955226")
+print("# Lua Numbers are passed back wrongly as strings")
+print("#")
+print("")
 admin("function foo() return 1, 2, '1', '2' end")
 call("foo")
 
@@ -48,8 +50,8 @@ call("foo")
 #
 admin("function f1(...) return {...} end")
 admin("function f2(...) return f1({...}) end")
-call("f1", 'test_', 'test_')
-call("f2", 'test_', 'test_')
+call("f1", "test_", "test_")
+call("f2", "test_", "test_")
 call("f1")
 call("f2")
 #
@@ -72,8 +74,8 @@ call("f3")
 admin("function f3() return { { test={1,2,3} }, { test2={1,2,3} } } end")
 call("f3")
 
-call("f1", 'jason')
-call("f1", 'jason', 1, 'test', 2, 'stewart')
+call("f1", "jason")
+call("f1", "jason", 1, "test", 2, "stewart")
 
 admin("space = box.schema.space.create('tweedledum')")
 admin("index = space:create_index('primary', { type = 'hash' })")
@@ -81,30 +83,30 @@ admin("index = space:create_index('primary', { type = 'hash' })")
 admin("function myreplace(...) return space:replace{...} end")
 admin("function myinsert(...) return space:insert{...} end")
 
-call("myinsert", 1, 'test box delete')
+call("myinsert", 1, "test box delete")
 call("space:delete", 1)
-call("myinsert", 1, 'test box delete')
+call("myinsert", 1, "test box delete")
 call("space:delete", 1)
 call("space:delete", 1)
-call("myinsert", 2, 'test box delete')
+call("myinsert", 2, "test box delete")
 call("space:delete", 1)
 call("space:delete", 2)
 call("space:delete", 2)
 admin("space:delete{2}")
 
-call("myinsert", 2, 'test box delete')
+call("myinsert", 2, "test box delete")
 call("space:get", 2)
 admin("space:delete{2}")
 call("space:get", 2)
-call("myinsert", 2, 'test box.select()')
+call("myinsert", 2, "test box.select()")
 call("space:get", 2)
 call("space:select", 2)
 admin("space:get{2}")
 admin("space:select{2}")
 admin("space:get{1}")
 admin("space:select{1}")
-call("myreplace", 2, 'hello', 'world')
-call("myreplace", 2, 'goodbye', 'universe')
+call("myreplace", 2, "hello", "world")
+call("myreplace", 2, "goodbye", "universe")
 call("space:get", 2)
 call("space:select", 2)
 admin("space:get{2}")
@@ -114,9 +116,9 @@ call("space:get", 2)
 call("space:select", 2)
 call("space:delete", 2)
 call("space:delete", 2)
-call("myinsert", 3, 'old', 2)
+call("myinsert", 3, "old", 2)
 # test that insert produces a duplicate key error
-call("myinsert", 3, 'old', 2)
+call("myinsert", 3, "old", 2)
 admin("space:update({3}, {{'=', 1, 4}, {'=', 2, 'new'}})")
 admin("space:insert(space:get{3}:update{{'=', 1, 4}, {'=', 2, 'new'}}) space:delete{3}")
 call("space:get", 4)
@@ -136,19 +138,19 @@ admin("index = space:create_index('primary', { type = 'tree' })")
 
 
 def lua_eval(name, *args):
-    print 'eval (%s)(%s)' % (name, ','.join([ str(arg) for arg in args]))
-    print '---'
-    print iproto.py_con.eval(name, args)
+    print("eval ({})({})".format(name, ",".join([ str(arg) for arg in args])))
+    print("---")
+    print(iproto.py_con.eval(name, args))
 
 def lua_call(name, *args):
-    print 'call %s(%s)' % (name, ','.join([ str(arg) for arg in args]))
-    print '---'
-    print iproto.py_con.call(name, args)
+    print("call {}({})".format(name, ",".join([ str(arg) for arg in args])))
+    print("---")
+    print(iproto.py_con.call(name, args))
 
 def test(expr, *args):
-    lua_eval('return ' + expr, *args)
-    admin('function f(...) return ' + expr + ' end')
-    lua_call('f', *args)
+    lua_eval("return " + expr, *args)
+    admin("function f(...) return " + expr + " end")
+    lua_call("f", *args)
 
 # Return values
 test("1")
@@ -172,18 +174,18 @@ test("{t}")
 test("{t, t, t}")
 test("error('exception')")
 test("box.error(0)")
-test('...')
-test('...', 1, 2, 3)
-test('...',  None, None, None)
-test('...', { 'k1': 'v1', 'k2': 'v2'})
+test("...")
+test("...", 1, 2, 3)
+test("...",  None, None, None)
+test("...", { "k1": "v1", "k2": "v2"})
 # Transactions
-test('space:auto_increment({"transaction"})')
-test('space:select{}')
-test('box.begin(), space:auto_increment({"failed"}), box.rollback()')
-test('space:select{}')
-test('require("fiber").sleep(0)')
+test("space:auto_increment({'transaction'})")
+test("space:select{}")
+test("box.begin(), space:auto_increment({'failed'}), box.rollback()")
+test("space:select{}")
+test("require('fiber').sleep(0)")
 # Other
-lua_eval('!invalid expression')
+lua_eval("!invalid expression")
 
 admin("space:drop()")
 admin("box.schema.user.drop('test')")
diff --git a/test/box-py/iproto.result b/test/box-py/iproto.result
index 04e2e220c..0f2766871 100644
--- a/test/box-py/iproto.result
+++ b/test/box-py/iproto.result
@@ -1,21 +1,15 @@
 box.schema.user.grant('guest', 'read,write,execute', 'universe')
 ---
 ...
-
 #
 # iproto packages test
 #
-
-
 # Test bug #899343 (server assertion failure on incorrect packet)
-
 # send the package with invalid length
 12
 # check that is server alive
 True
-
-#  Test gh-206 "Segfault if sending IPROTO package without `KEY` field"
-
+#  Test gh-206 'Segfault if sending IPROTO package without `KEY` field'
 IPROTO_SELECT
 query {'IPROTO_CODE': 1} {'IPROTO_SPACE_ID': 280}
 True
@@ -165,10 +159,8 @@ space:drop()
 box.schema.user.revoke('guest', 'read,write,execute', 'universe')
 ---
 ...
-
 # Test bugs gh-272, gh-1654 if the packet was incorrect, respond with
 # an error code and do not close connection
-
 sync=0, Invalid MsgPack - packet header
 sync=1234, Missing mandatory field 'space id' in request
 sync=5678, Read access to space '_user' is denied for user 'guest'
diff --git a/test/box-py/iproto.test.py b/test/box-py/iproto.test.py
index cdd1a71c5..5eccd40d3 100644
--- a/test/box-py/iproto.test.py
+++ b/test/box-py/iproto.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import os
 import sys
 import struct
@@ -11,46 +13,42 @@ from lib.tarantool_connection import TarantoolConnection
 
 admin("box.schema.user.grant('guest', 'read,write,execute', 'universe')")
 
-print """
-#
-# iproto packages test
-#
-"""
+print("#")
+print("# iproto packages test")
+print("#")
 
-# opeing new connection to tarantool/box
+# opening new connection to tarantool/box
 conn = TarantoolConnection(server.iproto.host, server.iproto.port)
 conn.connect()
 s = conn.socket
 
-print """
-# Test bug #899343 (server assertion failure on incorrect packet)
-"""
-print "# send the package with invalid length"
-invalid_request = struct.pack('<LLL', 1, 4294967290, 1)
-print s.send(invalid_request)
-print "# check that is server alive"
-print iproto.py_con.ping() > 0
+print("# Test bug #899343 (server assertion failure on incorrect packet)")
+print("# send the package with invalid length")
+invalid_request = struct.pack("<LLL", 1, 4294967290, 1)
+print(s.send(invalid_request))
+print("# check that is server alive")
+print(iproto.py_con.ping() > 0)
 
 # closing connection
 s.close()
 
 key_names = {}
-for (k,v) in globals().items():
-    if type(k) == str and k.startswith('IPROTO_') and type(v) == int:
+for (k,v) in list(globals().items()):
+    if type(k) == str and k.startswith("IPROTO_") and type(v) == int:
         key_names[v] = k
 
 def repr_dict(todump):
     d = {}
-    for (k, v) in todump.items():
+    for (k, v) in list(todump.items()):
         k_name = key_names.get(k, k)
         d[k_name] = v
     return repr(d)
 
 def test(header, body):
     # Connect and authenticate
-    c = Connection('localhost', server.iproto.port)
+    c = Connection("localhost", server.iproto.port)
     c.connect()
-    print 'query', repr_dict(header), repr_dict(body)
+    print("query", repr_dict(header), repr_dict(body))
     header = msgpack.dumps(header)
     body = msgpack.dumps(body)
     query = msgpack.dumps(len(header) + len(body)) + header + body
@@ -59,36 +57,34 @@ def test(header, body):
     try:
         s.send(query)
     except OSError as e:
-        print '   => ', 'Failed to send request'
+        print("   => ", "Failed to send request")
     c.close()
-    print iproto.py_con.ping() > 0
+    print(iproto.py_con.ping() > 0)
 
-print """
-#  Test gh-206 "Segfault if sending IPROTO package without `KEY` field"
-"""
+print("#  Test gh-206 'Segfault if sending IPROTO package without `KEY` field'")
 
-print "IPROTO_SELECT"
+print("IPROTO_SELECT")
 test({ IPROTO_CODE : REQUEST_TYPE_SELECT }, { IPROTO_SPACE_ID: 280 })
-print "\n"
+print("\n")
 
-print "IPROTO_DELETE"
+print("IPROTO_DELETE")
 test({ IPROTO_CODE : REQUEST_TYPE_DELETE }, { IPROTO_SPACE_ID: 280 })
-print "\n"
+print("\n")
 
-print "IPROTO_UPDATE"
+print("IPROTO_UPDATE")
 test({ IPROTO_CODE : REQUEST_TYPE_UPDATE }, { IPROTO_SPACE_ID: 280 })
 test({ IPROTO_CODE : REQUEST_TYPE_UPDATE },
      { IPROTO_SPACE_ID: 280, IPROTO_KEY: (1, )})
-print "\n"
+print("\n")
 
-print "IPROTO_REPLACE"
+print("IPROTO_REPLACE")
 test({ IPROTO_CODE : REQUEST_TYPE_REPLACE }, { IPROTO_SPACE_ID: 280 })
-print "\n"
+print("\n")
 
-print "IPROTO_CALL"
+print("IPROTO_CALL")
 test({ IPROTO_CODE : REQUEST_TYPE_CALL }, {})
-test({ IPROTO_CODE : REQUEST_TYPE_CALL }, { IPROTO_KEY: ('procname', )})
-print "\n"
+test({ IPROTO_CODE : REQUEST_TYPE_CALL }, { IPROTO_KEY: ("procname", )})
+print("\n")
 
 # gh-434 Tarantool crashes on multiple iproto requests with WAL enabled
 admin("box.cfg.wal_mode")
@@ -96,7 +92,7 @@ admin("space = box.schema.space.create('test', { id = 567 })")
 admin("index = space:create_index('primary', { type = 'hash' })")
 admin("box.schema.user.grant('guest', 'read,write,execute', 'space', 'test')")
 
-c = Connection('localhost', server.iproto.port)
+c = Connection("localhost", server.iproto.port)
 c.connect()
 request1 = RequestInsert(c, 567, [1, "baobab"])
 request2 = RequestInsert(c, 567, [2, "obbaba"])
@@ -104,11 +100,11 @@ s = c._socket
 try:
     s.send(bytes(request1) + bytes(request2))
 except OSError as e:
-    print '   => ', 'Failed to send request'
+    print("   => ", "Failed to send request")
 response1 = Response(c, c._read_response())
 response2 = Response(c, c._read_response())
-print response1.__str__()
-print response2.__str__()
+print(response1.__str__())
+print(response2.__str__())
 
 request1 = RequestInsert(c, 567, [3, "occama"])
 request2 = RequestSelect(c, 567, 0, [1], 0, 1, 0)
@@ -116,11 +112,11 @@ s = c._socket
 try:
     s.send(bytes(request1) + bytes(request2))
 except OSError as e:
-    print '   => ', 'Failed to send request'
+    print("   => ", "Failed to send request")
 response1 = Response(c, c._read_response())
 response2 = Response(c, c._read_response())
-print response1.__str__()
-print response2.__str__()
+print(response1.__str__())
+print(response2.__str__())
 
 request1 = RequestSelect(c, 567, 0, [2], 0, 1, 0)
 request2 = RequestInsert(c, 567, [4, "ockham"])
@@ -128,11 +124,11 @@ s = c._socket
 try:
     s.send(bytes(request1) + bytes(request2))
 except OSError as e:
-    print '   => ', 'Failed to send request'
+    print("   => ", "Failed to send request")
 response1 = Response(c, c._read_response())
 response2 = Response(c, c._read_response())
-print response1.__str__()
-print response2.__str__()
+print(response1.__str__())
+print(response2.__str__())
 
 request1 = RequestSelect(c, 567, 0, [1], 0, 1, 0)
 request2 = RequestSelect(c, 567, 0, [2], 0, 1, 0)
@@ -140,11 +136,11 @@ s = c._socket
 try:
     s.send(bytes(request1) + bytes(request2))
 except OSError as e:
-    print '   => ', 'Failed to send request'
+    print("   => ", "Failed to send request")
 response1 = Response(c, c._read_response())
 response2 = Response(c, c._read_response())
-print response1.__str__()
-print response2.__str__()
+print(response1.__str__())
+print(response2.__str__())
 
 c.close()
 
@@ -176,7 +172,7 @@ class RawSelect(Request):
         self._body = request_body
 
 c = iproto.py_con
-space = c.space('test')
+space = c.space("test")
 space_id = space.space_no
 
 TESTS = [
@@ -192,34 +188,34 @@ TESTS = [
 for test in TESTS:
     it = iter(test)
     size = next(it)
-    print 'STR', size
-    print '--'
+    print("STR", size)
+    print("--")
     for fmt in it:
-        print '0x' + fmt.encode('hex'), '=>',
-        field = '*' * size
+        print("0x" + fmt.encode("hex"), "=>", end=" ")
+        field = "*" * size
         c._send_request(RawInsert(c, space_id, "\x91" + fmt + field))
         tuple = space.select(field)[0]
-        print len(tuple[0])== size and 'ok' or 'fail',
+        print(len(tuple[0])== size and "ok" or "fail", end=" ")
         it2 = iter(test)
         next(it2)
         for fmt2 in it2:
             tuple = c._send_request(RawSelect(c, space_id,
                 "\x91" + fmt2 + field))[0]
-            print len(tuple[0]) == size and 'ok' or 'fail',
+            print(len(tuple[0]) == size and "ok" or "fail", end=" ")
         tuple = space.delete(field)[0]
-        print len(tuple[0]) == size and 'ok' or 'fail',
-        print
-    print
+        print(len(tuple[0]) == size and "ok" or "fail", end="")
+        print()
+    print()
 
 
-print 'Test of schema_id in iproto.'
-c = Connection('localhost', server.iproto.port)
+print("Test of schema_id in iproto.")
+c = Connection("localhost", server.iproto.port)
 c.connect()
 s = c._socket
 
 def receive_response():
-    resp_len = ''
-    resp_headerbody = ''
+    resp_len = ""
+    resp_headerbody = ""
     resp_header = {}
     resp_body = {}
     try:
@@ -235,10 +231,10 @@ def receive_response():
         resp_header = unpacker.unpack()
         resp_body = unpacker.unpack()
     except OSError as e:
-        print '   => ', 'Failed to recv response'
+        print("   => ", "Failed to recv response")
     res = {}
-    res['header'] = resp_header
-    res['body'] = resp_body
+    res["header"] = resp_header
+    res["body"] = resp_body
     return res
 
 def test_request(req_header, req_body):
@@ -249,7 +245,7 @@ def test_request(req_header, req_body):
     try:
         s.send(query)
     except OSError as e:
-        print '   => ', 'Failed to send request'
+        print("   => ", "Failed to send request")
     return receive_response()
 
 header = { IPROTO_CODE : REQUEST_TYPE_SELECT}
@@ -260,62 +256,62 @@ body = { IPROTO_SPACE_ID: space_id,
     IPROTO_OFFSET: 0,
     IPROTO_LIMIT: 1 }
 resp = test_request(header, body)
-print 'Normal connect done w/o errors:', resp['header'][0] == 0
-print 'Got schema_id:', resp['header'][5] > 0
-schema_id = resp['header'][5]
+print("Normal connect done w/o errors:", resp["header"][0] == 0)
+print("Got schema_id:", resp["header"][5] > 0)
+schema_id = resp["header"][5]
 
 header = { IPROTO_CODE : REQUEST_TYPE_SELECT, 5 : 0 }
 resp = test_request(header, body)
-print 'Zero-schema_id connect done w/o errors:', resp['header'][0] == 0
-print 'Same schema_id:', resp['header'][5] == schema_id
+print("Zero-schema_id connect done w/o errors:", resp["header"][0] == 0)
+print("Same schema_id:", resp["header"][5] == schema_id)
 
 header = { IPROTO_CODE : REQUEST_TYPE_SELECT, 5 : schema_id }
 resp = test_request(header, body)
-print 'Normal connect done w/o errors:', resp['header'][0] == 0
-print 'Same schema_id:', resp['header'][5] == schema_id
+print("Normal connect done w/o errors:", resp["header"][0] == 0)
+print("Same schema_id:", resp["header"][5] == schema_id)
 
 header = { IPROTO_CODE : REQUEST_TYPE_SELECT, 5 : schema_id + 1 }
 resp = test_request(header, body)
-print 'Wrong schema_id leads to error:', resp['header'][0] != 0
-print 'Same schema_id:', resp['header'][5] == schema_id
+print("Wrong schema_id leads to error:", resp["header"][0] != 0)
+print("Same schema_id:", resp["header"][5] == schema_id)
 
 admin("space2 = box.schema.create_space('test2')")
 
 header = { IPROTO_CODE : REQUEST_TYPE_SELECT, 5 : schema_id }
 resp = test_request(header, body)
-print 'Schema changed -> error:', resp['header'][0] != 0
-print 'Got another schema_id:', resp['header'][5] != schema_id
+print("Schema changed -> error:", resp["header"][0] != 0)
+print("Got another schema_id:", resp["header"][5] != schema_id)
 
 #
 # gh-2334 Lost SYNC in JOIN response.
 #
-uuid = '0d5bd431-7f3e-4695-a5c2-82de0a9cbc95'
+uuid = "0d5bd431-7f3e-4695-a5c2-82de0a9cbc95"
 header = { IPROTO_CODE: REQUEST_TYPE_JOIN, IPROTO_SYNC: 2334 }
 body = { IPROTO_SERVER_UUID: uuid }
 resp = test_request(header, body)
-if resp['header'][IPROTO_SYNC] == 2334:
+if resp["header"][IPROTO_SYNC] == 2334:
     i = 1
     while i < 3:
         resp = receive_response()
-        if resp['header'][IPROTO_SYNC] != 2334:
-            print 'Bad sync on response with number ', i
+        if resp["header"][IPROTO_SYNC] != 2334:
+            print("Bad sync on response with number ", i)
             break
-        if resp['header'][IPROTO_CODE] == REQUEST_TYPE_OK:
+        if resp["header"][IPROTO_CODE] == REQUEST_TYPE_OK:
             i += 1
     else:
-        print 'Sync ok'
+        print("Sync ok")
 else:
-    print 'Bad first sync'
+    print("Bad first sync")
 
 #
 # Try incorrect JOIN. SYNC must be also returned.
 #
-body[IPROTO_SERVER_UUID] = 'unknown'
+body[IPROTO_SERVER_UUID] = "unknown"
 resp = test_request(header, body)
-if resp['header'][IPROTO_SYNC] == 2334:
-    print('Sync on error is ok')
+if resp["header"][IPROTO_SYNC] == 2334:
+    print("Sync on error is ok")
 else:
-    print('Sync on error is not ok')
+    print("Sync on error is not ok")
 
 c.close()
 
@@ -332,8 +328,8 @@ admin("space:insert({1})")
 admin("space:insert({2, 'Music'})")
 admin("space:insert({3, 'Length', 93})")
 
-iproto.py_con.space('gh1280').select([])
-iproto.py_con.space('gh1280').select(list())
+iproto.py_con.space("gh1280").select([])
+iproto.py_con.space("gh1280").select(list())
 
 
 admin("space:drop()")
@@ -344,26 +340,24 @@ admin("box.schema.user.revoke('guest', 'read,write,execute', 'universe')")
 # gh-272 if the packet was incorrect, respond with an error code
 # gh-1654 do not close connnection on invalid request
 #
-print """
-# Test bugs gh-272, gh-1654 if the packet was incorrect, respond with
-# an error code and do not close connection
-"""
+print("# Test bugs gh-272, gh-1654 if the packet was incorrect, respond with")
+print("# an error code and do not close connection")
 
-c = Connection('localhost', server.iproto.port)
+c = Connection("localhost", server.iproto.port)
 c.connect()
 s = c._socket
 header = { "hello": "world"}
 body = { "bug": 272 }
 resp = test_request(header, body)
-print 'sync=%d, %s' % (resp['header'][IPROTO_SYNC], resp['body'].get(IPROTO_ERROR))
+print("sync={}, {}".format(resp["header"][IPROTO_SYNC], resp["body"].get(IPROTO_ERROR)))
 header = { IPROTO_CODE : REQUEST_TYPE_SELECT }
 header[IPROTO_SYNC] = 1234
 resp = test_request(header, body)
-print 'sync=%d, %s' % (resp['header'][IPROTO_SYNC], resp['body'].get(IPROTO_ERROR))
+print("sync={}, {}".format(resp["header"][IPROTO_SYNC], resp["body"].get(IPROTO_ERROR)))
 header[IPROTO_SYNC] = 5678
 body = { IPROTO_SPACE_ID: 304, IPROTO_KEY: [], IPROTO_LIMIT: 1 }
 resp = test_request(header, body)
-print 'sync=%d, %s' % (resp['header'][IPROTO_SYNC], resp['body'].get(IPROTO_ERROR))
+print("sync={}, {}".format(resp["header"][IPROTO_SYNC], resp["body"].get(IPROTO_ERROR)))
 c.close()
 
 
@@ -371,7 +365,7 @@ admin("space = box.schema.space.create('test_index_base', { id = 568 })")
 admin("index = space:create_index('primary', { type = 'hash' })")
 admin("box.schema.user.grant('guest', 'read,write,execute', 'space', 'test_index_base')")
 
-c = Connection('localhost', server.iproto.port)
+c = Connection("localhost", server.iproto.port)
 c.connect()
 s = c._socket
 
@@ -379,32 +373,32 @@ request = RequestInsert(c, 568, [1, 0, 0, 0])
 try:
     s.send(bytes(request))
 except OSError as e:
-    print '   => ', 'Failed to send request'
+    print("   => ", "Failed to send request")
 response = Response(c, c._read_response())
-print response.__str__()
+print(response.__str__())
 
-request = RequestUpdate(c, 568, 0, [1], [['+', 2, 1], ['-', 3, 1]])
+request = RequestUpdate(c, 568, 0, [1], [["+", 2, 1], ["-", 3, 1]])
 try:
     s.send(bytes(request))
 except OSError as e:
-    print '   => ', 'Failed to send request'
+    print("   => ", "Failed to send request")
 response = Response(c, c._read_response())
-print response.__str__()
+print(response.__str__())
 
-request = RequestUpsert(c, 568, 0, [1, 0, 0, 0], [['+', 2, 1], ['-', 3, 1]])
+request = RequestUpsert(c, 568, 0, [1, 0, 0, 0], [["+", 2, 1], ["-", 3, 1]])
 try:
     s.send(bytes(request))
 except OSError as e:
-    print '   => ', 'Failed to send request'
+    print("   => ", "Failed to send request")
 response = Response(c, c._read_response())
 
 request = RequestSelect(c, 568, 0, [1], 0, 1, 0)
 try:
     s.send(bytes(request))
 except OSError as e:
-    print '   => ', 'Failed to send request'
+    print("   => ", "Failed to send request")
 response = Response(c, c._read_response())
-print response.__str__()
+print(response.__str__())
 
 c.close()
 
@@ -414,15 +408,15 @@ c.close()
 admin("function kek() return 'kek' end")
 admin("box.schema.user.grant('guest', 'read,write,execute', 'universe')")
 
-c = Connection('localhost', server.iproto.port)
+c = Connection("localhost", server.iproto.port)
 c.connect()
 s = c._socket
 
 header = { IPROTO_CODE: REQUEST_TYPE_CALL, IPROTO_SYNC: 100 }
-body = { IPROTO_FUNCTION_NAME: 'kek' }
+body = { IPROTO_FUNCTION_NAME: "kek" }
 resp = test_request(header, body)
-print "Sync: ", resp['header'][IPROTO_SYNC]
-print "Retcode: ", resp['body'][IPROTO_DATA]
+print("Sync: ", resp["header"][IPROTO_SYNC])
+print("Retcode: ", resp["body"][IPROTO_DATA])
 
 c.close()
 
diff --git a/test/box-py/print.result b/test/box-py/print.result
index b2d58d7de..7a3282d79 100644
--- a/test/box-py/print.result
+++ b/test/box-py/print.result
@@ -1,4 +1,4 @@
-print("Hello, world")
+print('Hello, world')
 ---
 ...
 io = require('io')
@@ -17,9 +17,9 @@ require('fiber').sleep(0.01)
 ...
 Check log line (Hello):
 ---
-- "logfile contains "Hello""
+- 'logfile contains 'Hello''
 ...
 Check log line (Ehllo):
 ---
-- "logfile contains "Ehllo""
+- 'logfile contains 'Ehllo''
 ...
diff --git a/test/box-py/print.test.py b/test/box-py/print.test.py
index 5083bdf42..37f07cab8 100644
--- a/test/box-py/print.test.py
+++ b/test/box-py/print.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import tarantool
 
 import sys
@@ -6,7 +8,7 @@ import re
 
 log = server.get_log()
 
-admin('print("Hello, world")')
+admin("print('Hello, world')")
 admin("io = require('io')")
 
 admin("""local f = require('fiber').create(
@@ -18,17 +20,17 @@ admin("""local f = require('fiber').create(
 admin("require('fiber').sleep(0.01)")
 
 print("Check log line (Hello):")
-print('---')
-if log.seek_once('Hello') >= 0:
-    print('- "logfile contains "Hello""')
+print("---")
+if log.seek_once("Hello") >= 0:
+    print("- 'logfile contains \'Hello\''")
 else:
-    print('- "logfile does not contain "Hello""')
-print('...')
+    print("- 'logfile does not contain \'Hello\''")
+print("...")
 
 print("Check log line (Ehllo):")
-print('---')
-if log.seek_once('Ehllo') >= 0:
-    print('- "logfile contains "Ehllo""')
+print("---")
+if log.seek_once("Ehllo") >= 0:
+    print("- 'logfile contains \'Ehllo\''")
 else:
-    print('- "logfile does not contain "Ehllo""')
-print('...')
+    print("- 'logfile does not contain \'Ehllo\''")
+print("...")
diff --git a/test/box-py/snapshot.result b/test/box-py/snapshot.result
index fbaab912f..dfd1a00a2 100644
--- a/test/box-py/snapshot.result
+++ b/test/box-py/snapshot.result
@@ -10,7 +10,6 @@ index = space:create_index('primary', { type = 'hash' })
 # file that already exists. Verify also that any other
 # error that happens when saving snapshot is propagated
 # to the caller.
-
 space:insert{1, 'first tuple'}
 ---
 - [1, 'first tuple']
@@ -44,9 +43,8 @@ space:delete{2}
 ...
 #
 # A test case for http://bugs.launchpad.net/bugs/727174
-# "tarantool_box crashes when saving snapshot on SIGUSR1"
+# 'tarantool_box crashes when saving snapshot on SIGUSR1'
 #
-
 # Increment the lsn number, to make sure there is no such snapshot yet
 #
 space:insert{1, 'Test tuple'}
diff --git a/test/box-py/snapshot.test.py b/test/box-py/snapshot.test.py
index 2bfb8f621..91ff0c5dd 100644
--- a/test/box-py/snapshot.test.py
+++ b/test/box-py/snapshot.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import os
 import sys
 import yaml
@@ -9,13 +11,13 @@ sys.stdout.push_filter(server.vardir, "<dir>")
 admin("space = box.schema.space.create('tweedledum')")
 admin("index = space:create_index('primary', { type = 'hash' })")
 
-print """#
-# A test case for: http://bugs.launchpad.net/bugs/686411
-# Check that 'box.snapshot()' does not overwrite a snapshot
-# file that already exists. Verify also that any other
-# error that happens when saving snapshot is propagated
-# to the caller.
-"""
+print("#")
+print("# A test case for: http://bugs.launchpad.net/bugs/686411")
+print("# Check that 'box.snapshot()' does not overwrite a snapshot")
+print("# file that already exists. Verify also that any other")
+print("# error that happens when saving snapshot is propagated")
+print("# to the caller.")
+
 admin("space:insert{1, 'first tuple'}")
 admin("box.snapshot()")
 #
@@ -38,14 +40,13 @@ os.rmdir(snapshot)
 admin("space:delete{1}")
 admin("space:delete{2}")
 
-print """#
-# A test case for http://bugs.launchpad.net/bugs/727174
-# "tarantool_box crashes when saving snapshot on SIGUSR1"
-#"""
+print("#")
+print("# A test case for http://bugs.launchpad.net/bugs/727174")
+print("# 'tarantool_box crashes when saving snapshot on SIGUSR1'")
+print("#")
 
-print """
-# Increment the lsn number, to make sure there is no such snapshot yet
-#"""
+print("# Increment the lsn number, to make sure there is no such snapshot yet")
+print("#")
 
 admin("space:insert{1, 'Test tuple'}")
 
@@ -65,9 +66,9 @@ while not os.access(snapshot, os.F_OK) and iteration < MAX_ITERATIONS:
   iteration = iteration + 1
 
 if iteration == 0 or iteration >= MAX_ITERATIONS:
-  print "Snapshot is missing."
+  print("Snapshot is missing.")
 else:
-  print "Snapshot exists."
+  print("Snapshot exists.")
 
 admin("space:drop()")
 
diff --git a/test/long_run-py/finalizers.result b/test/long_run-py/finalizers.result
index 29313694c..2d2866b35 100644
--- a/test/long_run-py/finalizers.result
+++ b/test/long_run-py/finalizers.result
@@ -1 +1 @@
-Expected error: <class 'lib.tarantool_server.TarantoolStartError'>
+('Expected error:', <class 'lib.tarantool_server.TarantoolStartError'>)
diff --git a/test/long_run-py/finalizers.test.py b/test/long_run-py/finalizers.test.py
index 96118e607..07bceb6b9 100644
--- a/test/long_run-py/finalizers.test.py
+++ b/test/long_run-py/finalizers.test.py
@@ -5,12 +5,12 @@ import yaml
 from lib.tarantool_server import TarantoolServer
 
 server = TarantoolServer(server.ini)
-server.script = 'long_run-py/lua/finalizers.lua'
-server.vardir = os.path.join(server.vardir, 'finalizers')
+server.script = "long_run-py/lua/finalizers.lua"
+server.vardir = os.path.join(server.vardir, "finalizers")
 server.crash_expected = True
 try:
     server.deploy()
 except:
-    print "Expected error:", sys.exc_info()[0]
+    print("Expected error:", sys.exc_info()[0])
 else:
-    print "Error! exception did not occur"
+    print("Error! exception did not occur")
diff --git a/test/replication-py/cluster.result b/test/replication-py/cluster.result
index f68a6af7c..9bc8a7393 100644
--- a/test/replication-py/cluster.result
+++ b/test/replication-py/cluster.result
@@ -93,7 +93,7 @@ box.info.vclock[2] == nil
 -------------------------------------------------------------
 Modify data to bump LSN and check box.info
 -------------------------------------------------------------
-box.space._schema:insert{"test", 48}
+box.space._schema:insert{'test', 48}
 ---
 - ['test', 48]
 ...
@@ -114,7 +114,7 @@ box.cfg{ replication_source = '<replication_source>' }
 -------------------------------------------------------------
 Disconnect replica from master
 -------------------------------------------------------------
-box.cfg { replication_source = "" }
+box.cfg { replication_source = '' }
 ---
 ...
 -------------------------------------------------------------
@@ -131,7 +131,7 @@ box.info.vclock[2] == 1
 -------------------------------------------------------------
 Modify data to bump LSN on replica
 -------------------------------------------------------------
-box.space._schema:insert{"tost", 49}
+box.space._schema:insert{'tost', 49}
 ---
 - ['tost', 49]
 ...
diff --git a/test/replication-py/cluster.test.py b/test/replication-py/cluster.test.py
index 088ca9c34..c770a9bc9 100644
--- a/test/replication-py/cluster.test.py
+++ b/test/replication-py/cluster.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import os
 import sys
 import re
@@ -7,19 +9,19 @@ import glob
 from lib.tarantool_server import TarantoolServer
 
 ## Get cluster uuid
-cluster_uuid = ''
+cluster_uuid = ""
 try:
     cluster_uuid = yaml.safe_load(server.admin("box.space._schema:get('cluster')",
         silent = True))[0][1]
-    uuid.UUID('{' + cluster_uuid + '}')
-    print 'ok - cluster uuid'
+    uuid.UUID("{" + cluster_uuid + "}")
+    print("ok - cluster uuid")
 except Exception as e:
-    print 'not ok - invalid cluster uuid', e
+    print("not ok - invalid cluster uuid", e)
 
 server.iproto.reconnect() # re-connect with new permissions
-print '-------------------------------------------------------------'
-print ' gh-696: Check global READ permissions for replication'
-print '-------------------------------------------------------------'
+print("-------------------------------------------------------------")
+print(" gh-696: Check global READ permissions for replication")
+print("-------------------------------------------------------------")
 
 
 # Generate replica cluster UUID
@@ -27,56 +29,59 @@ replica_uuid = str(uuid.uuid4())
 
 ## Universal read permission is required to perform JOIN/SUBSCRIBE
 rows = list(server.iproto.py_con.join(replica_uuid))
-print len(rows) == 1 and rows[0].return_message.find('Read access') >= 0 and \
-    'ok' or 'not ok', '-', 'join without read permissions on universe'
+status = len(rows) == 1 and rows[0].return_message.find("Read access") >= 0 and \
+        "ok" or "not ok"
+print("{} - join without read permissions on universe".format(status))
 rows = list(server.iproto.py_con.subscribe(cluster_uuid, replica_uuid))
-print len(rows) == 1 and rows[0].return_message.find('Read access') >= 0 and \
-    'ok' or 'not ok', '-', 'subscribe without read permissions on universe'
+status = len(rows) == 1 and rows[0].return_message.find("Read access") >= 0 and \
+        "ok" or "not ok"
+print("{} - subscribe without read permissions on universe".format(status))
 ## Write permission to space `_cluster` is required to perform JOIN
 server.admin("box.schema.user.grant('guest', 'read', 'universe')")
 server.iproto.reconnect() # re-connect with new permissions
 rows = list(server.iproto.py_con.join(replica_uuid))
-print len(rows) == 1 and rows[0].return_message.find('Write access') >= 0 and \
-    'ok' or 'not ok', '-', 'join without write permissions to _cluster'
+status = len(rows) == 1 and rows[0].return_message.find("Write access") >= 0 and \
+        "ok" or "not ok"
+print("{} - join without write permissions to _cluster".format(status))
 
 def check_join(msg):
     ok = True
     for resp in server.iproto.py_con.join(replica_uuid):
         if resp._return_code != 0:
-            print 'not ok', '-', msg, resp.return_message
+            print("not ok - {} {}".format(msg, resp.return_message))
             ok = False
 
     server.iproto.reconnect() # the only way to stop JOIN
     if not ok:
         return
-    tuples = server.iproto.py_con.space('_cluster').select(replica_uuid, index = 1)
+    tuples = server.iproto.py_con.space("_cluster").select(replica_uuid, index = 1)
     if len(tuples) == 0:
-        print 'not ok', '-', msg, 'missing entry in _cluster'
+        print("not ok - {} missing entry in _cluster".format(msg))
         return
     server_id = tuples[0][0]
-    print 'ok', '-', msg
+    print("ok - {}".format(msg))
     return server_id
 
 ## JOIN with permissions
 server.admin("box.schema.user.grant('guest', 'write', 'space', '_cluster')")
 server.iproto.reconnect() # re-connect with new permissions
-server_id = check_join('join with granted permissions')
-server.iproto.py_con.space('_cluster').delete(server_id)
+server_id = check_join("join with granted permissions")
+server.iproto.py_con.space("_cluster").delete(server_id)
 
 # JOIN with granted role
 server.admin("box.schema.user.revoke('guest', 'read', 'universe')")
 server.admin("box.schema.user.revoke('guest', 'write', 'space', '_cluster')")
 server.admin("box.schema.user.grant('guest', 'replication')")
 server.iproto.reconnect() # re-connect with new permissions
-server_id = check_join('join with granted role')
-server.iproto.py_con.space('_cluster').delete(server_id)
+server_id = check_join("join with granted role")
+server.iproto.py_con.space("_cluster").delete(server_id)
 
-print '-------------------------------------------------------------'
-print 'gh-434: Assertion if replace _cluster tuple for local server'
-print '-------------------------------------------------------------'
+print("-------------------------------------------------------------")
+print("gh-434: Assertion if replace _cluster tuple for local server")
+print("-------------------------------------------------------------")
 
-master_uuid = server.get_param('uuid')
-sys.stdout.push_filter(master_uuid, '<master uuid>')
+master_uuid = server.get_param("uuid")
+sys.stdout.push_filter(master_uuid, "<master uuid>")
 
 # Invalid UUID
 server.admin("box.space._cluster:replace{1, require('uuid').NULL:str()}")
@@ -87,19 +92,19 @@ server.admin("box.space._cluster:replace{1, require('uuid').str()}")
 # Update of tail is OK
 server.admin("box.space._cluster:update(1, {{'=', 3, 'test'}})")
 
-print '-------------------------------------------------------------'
-print 'gh-1140: Assertion if replace _cluster tuple for remote server'
-print '-------------------------------------------------------------'
+print("-------------------------------------------------------------")
+print("gh-1140: Assertion if replace _cluster tuple for remote server")
+print("-------------------------------------------------------------")
 
 # Test that insert is OK
-new_uuid = '0d5bd431-7f3e-4695-a5c2-82de0a9cbc95'
+new_uuid = "0d5bd431-7f3e-4695-a5c2-82de0a9cbc95"
 server.admin("box.space._cluster:insert{{5, '{0}'}}".format(new_uuid))
 server.admin("box.info.vclock[5] == nil")
 
 # Replace with the same UUID is OK
 server.admin("box.space._cluster:replace{{5, '{0}'}}".format(new_uuid))
 # Replace with a new UUID is not OK
-new_uuid = 'a48a19a3-26c0-4f8c-a5b5-77377bab389b'
+new_uuid = "a48a19a3-26c0-4f8c-a5b5-77377bab389b"
 server.admin("box.space._cluster:replace{{5, '{0}'}}".format(new_uuid))
 # Update of tail is OK
 server.admin("box.space._cluster:update(5, {{'=', 3, 'test'}})")
@@ -112,83 +117,83 @@ server.admin("box.info.vclock[5] == nil")
 server.stop()
 server.deploy()
 
-print '-------------------------------------------------------------'
-print 'Start a new replica and check box.info on the start'
-print '-------------------------------------------------------------'
+print("-------------------------------------------------------------")
+print("Start a new replica and check box.info on the start")
+print("-------------------------------------------------------------")
 # master server
 master = server
-master_id = master.get_param('id')
+master_id = master.get_param("id")
 
 master.admin("box.schema.user.grant('guest', 'replication')")
 
 replica = TarantoolServer(server.ini)
-replica.script = 'replication-py/replica.lua'
+replica.script = "replication-py/replica.lua"
 replica.vardir = server.vardir
 replica.rpl_master = master
 replica.deploy()
-replica_id = replica.get_param('id')
-replica_uuid = replica.get_param('uuid')
-sys.stdout.push_filter(replica_uuid, '<replica uuid>')
-
-replica.admin('box.info.id == %d' % replica_id)
-replica.admin('not box.info.ro')
-replica.admin('box.info.lsn == 0')
-replica.admin('box.info.vclock[%d] == nil' % replica_id)
-
-print '-------------------------------------------------------------'
-print 'Modify data to bump LSN and check box.info'
-print '-------------------------------------------------------------'
-replica.admin('box.space._schema:insert{"test", 48}')
-replica.admin('box.info.lsn == 1')
-replica.admin('box.info.vclock[%d] == 1' % replica_id)
-
-print '-------------------------------------------------------------'
-print 'Connect master to replica'
-print '-------------------------------------------------------------'
-replication_source = yaml.safe_load(replica.admin('box.cfg.listen', silent = True))[0]
-sys.stdout.push_filter(replication_source, '<replication_source>')
-master.admin("box.cfg{ replication_source = '%s' }" % replication_source)
+replica_id = replica.get_param("id")
+replica_uuid = replica.get_param("uuid")
+sys.stdout.push_filter(replica_uuid, "<replica uuid>")
+
+replica.admin("box.info.id == {}".format(replica_id))
+replica.admin("not box.info.ro")
+replica.admin("box.info.lsn == 0")
+replica.admin("box.info.vclock[{}] == nil".format(replica_id))
+
+print("-------------------------------------------------------------")
+print("Modify data to bump LSN and check box.info")
+print("-------------------------------------------------------------")
+replica.admin("box.space._schema:insert{'test', 48}")
+replica.admin("box.info.lsn == 1")
+replica.admin("box.info.vclock[{}] == 1".format(replica_id))
+
+print("-------------------------------------------------------------")
+print("Connect master to replica")
+print("-------------------------------------------------------------")
+replication_source = yaml.safe_load(replica.admin("box.cfg.listen", silent = True))[0]
+sys.stdout.push_filter(replication_source, "<replication_source>")
+master.admin("box.cfg{{ replication_source = '{}' }}".format(replication_source))
 master.wait_lsn(replica_id, replica.get_lsn(replica_id))
 
-print '-------------------------------------------------------------'
-print 'Disconnect replica from master'
-print '-------------------------------------------------------------'
-replica.admin('box.cfg { replication_source = "" }')
+print("-------------------------------------------------------------")
+print("Disconnect replica from master")
+print("-------------------------------------------------------------")
+replica.admin("box.cfg { replication_source = '' }")
 
-print '-------------------------------------------------------------'
-print 'Unregister replica'
-print '-------------------------------------------------------------'
+print("-------------------------------------------------------------")
+print("Unregister replica")
+print("-------------------------------------------------------------")
 
-master.admin('box.space._cluster:delete{%d} ~= nil' % replica_id)
+master.admin("box.space._cluster:delete{{{}}} ~= nil".format(replica_id))
 
 # gh-1219: LSN must not be removed from vclock on unregister
-master.admin('box.info.vclock[%d] == 1' % replica_id)
+master.admin("box.info.vclock[{}] == 1".format(replica_id))
 
-print '-------------------------------------------------------------'
-print 'Modify data to bump LSN on replica'
-print '-------------------------------------------------------------'
-replica.admin('box.space._schema:insert{"tost", 49}')
-replica.admin('box.info.lsn == 2')
-replica.admin('box.info.vclock[%d] == 2' % replica_id)
+print("-------------------------------------------------------------")
+print("Modify data to bump LSN on replica")
+print("-------------------------------------------------------------")
+replica.admin("box.space._schema:insert{'tost', 49}")
+replica.admin("box.info.lsn == 2")
+replica.admin("box.info.vclock[{}] == 2".format(replica_id))
 
-print '-------------------------------------------------------------'
-print 'Master must not crash then receives orphan rows from replica'
-print '-------------------------------------------------------------'
+print("-------------------------------------------------------------")
+print("Master must not crash then receives orphan rows from replica")
+print("-------------------------------------------------------------")
 
-replication_source = yaml.safe_load(replica.admin('box.cfg.listen', silent = True))[0]
-sys.stdout.push_filter(replication_source, '<replication>')
-master.admin("box.cfg{ replication = '%s' }" % replication_source)
+replication_source = yaml.safe_load(replica.admin("box.cfg.listen", silent = True))[0]
+sys.stdout.push_filter(replication_source, "<replication>")
+master.admin("box.cfg{{ replication = '{}' }}".format(replication_source))
 
 master.wait_lsn(replica_id, replica.get_lsn(replica_id))
-master.admin('box.info.vclock[%d] == 2' % replica_id)
+master.admin("box.info.vclock[{}] == 2".format(replica_id))
 
 master.admin("box.cfg{ replication = '' }")
 replica.stop()
 replica.cleanup()
 
-print '-------------------------------------------------------------'
-print 'Start a new replica and check that server_id, LSN is re-used'
-print '-------------------------------------------------------------'
+print("-------------------------------------------------------------")
+print("Start a new replica and check that server_id, LSN is re-used")
+print("-------------------------------------------------------------")
 
 #
 # gh-1219: Proper removal of servers with non-zero LSN from _cluster
@@ -196,36 +201,36 @@ print '-------------------------------------------------------------'
 # Snapshot is required. Otherwise a relay will skip records made by previous
 # replica with the re-used id.
 master.admin("box.snapshot()")
-master.admin('box.info.vclock[%d] == 2' % replica_id)
+master.admin("box.info.vclock[{}] == 2".format(replica_id))
 
 replica = TarantoolServer(server.ini)
-replica.script = 'replication-py/replica.lua'
+replica.script = "replication-py/replica.lua"
 replica.vardir = server.vardir
 replica.rpl_master = master
 replica.deploy()
 replica.wait_lsn(master_id, master.get_lsn(master_id))
 # Check that replica_id was re-used
-replica.admin('box.info.id == %d' % replica_id)
-replica.admin('not box.info.ro')
+replica.admin("box.info.id == {}".format(replica_id))
+replica.admin("not box.info.ro")
 # All records were succesfully recovered.
 # Replica should have the same vclock as master.
-master.admin('box.info.vclock[%d] == 2' % replica_id)
-replica.admin('box.info.vclock[%d] == 2' % replica_id)
+master.admin("box.info.vclock[{}] == 2".format(replica_id))
+replica.admin("box.info.vclock[{}] == 2".format(replica_id))
 
 replica.stop()
 replica.cleanup()
-master.admin('box.space._cluster:delete{%d} ~= nil' % replica_id)
+master.admin("box.space._cluster:delete{{{}}} ~= nil".format(replica_id))
 
-print '-------------------------------------------------------------'
-print 'JOIN replica to read-only master'
-print '-------------------------------------------------------------'
+print("-------------------------------------------------------------")
+print("JOIN replica to read-only master")
+print("-------------------------------------------------------------")
 
 # master server
 master = server
-master.admin('box.cfg { read_only = true }')
+master.admin("box.cfg { read_only = true }")
 #gh-1230 Assertion vclock_has on attempt to JOIN read-only master
 failed = TarantoolServer(server.ini)
-failed.script = 'replication-py/failed.lua'
+failed.script = "replication-py/failed.lua"
 failed.vardir = server.vardir
 failed.rpl_master = master
 failed.name = "failed"
@@ -235,16 +240,16 @@ try:
 except Exception as e:
     line = "ER_READONLY"
     if failed.logfile_pos.seek_once(line) >= 0:
-        print "'%s' exists in server log" % line
+        print("\'{}\' exists in server log".format(line))
 
-master.admin('box.cfg { read_only = false }')
+master.admin("box.cfg { read_only = false }")
 
-print '-------------------------------------------------------------'
-print 'JOIN replica with different replica set UUID'
-print '-------------------------------------------------------------'
+print("-------------------------------------------------------------")
+print("JOIN replica with different replica set UUID")
+print("-------------------------------------------------------------")
 
 failed = TarantoolServer(server.ini)
-failed.script = 'replication-py/uuid_mismatch.lua'
+failed.script = "replication-py/uuid_mismatch.lua"
 failed.vardir = server.vardir
 failed.rpl_master = master
 failed.name = "uuid_mismatch"
@@ -254,15 +259,15 @@ try:
 except Exception as e:
     line = "ER_REPLICASET_UUID_MISMATCH"
     if failed.logfile_pos.seek_once(line) >= 0:
-        print "'%s' exists in server log" % line
+        print("\'{}\' exists in server log".format(line))
 
 failed.cleanup()
 
-print '-------------------------------------------------------------'
-print 'Cleanup'
-print '-------------------------------------------------------------'
+print("-------------------------------------------------------------")
+print("Cleanup")
+print("-------------------------------------------------------------")
 
 # Cleanup
 sys.stdout.pop_filter()
 master.admin("box.schema.user.revoke('guest', 'replication')")
-master.admin('box.space._cluster:delete{2} ~= nil')
+master.admin("box.space._cluster:delete{2} ~= nil")
diff --git a/test/replication-py/conflict.test.py b/test/replication-py/conflict.test.py
index 1dcd66765..5e19d0c40 100644
--- a/test/replication-py/conflict.test.py
+++ b/test/replication-py/conflict.test.py
@@ -1,35 +1,37 @@
+from __future__ import print_function
+
 from lib.tarantool_server import TarantoolServer
 from time import sleep
 import yaml
 
-def check_replication(nodes, select_args=''):
+def check_replication(nodes, select_args=""):
     for node in nodes:
-        node.admin('box.space.test:select{%s}' % select_args)
+        node.admin("box.space.test:select{{{}}}".format(select_args))
 
 master = server
 master.admin("box.schema.user.grant('guest', 'replication')")
 
 replica = TarantoolServer(server.ini)
-replica.script = 'replication-py/replica.lua'
+replica.script = "replication-py/replica.lua"
 replica.vardir = server.vardir
 replica.rpl_master = master
 replica.deploy()
 
 def parallel_run(cmd1, cmd2, compare):
-    print 'parallel send: %s' % cmd1
-    print 'parallel send: %s' % cmd2
-    master.admin.socket.sendall('%s\n' % cmd1)
-    replica.admin.socket.sendall('%s\n' % cmd2)
+    print("parallel send: {}".format(cmd1))
+    print("parallel send: {}".format(cmd2))
+    master.admin.socket.sendall("{}\n".format(cmd1))
+    replica.admin.socket.sendall("{}\n".format(cmd2))
 
     master.admin.socket.recv(2048)
     replica.admin.socket.recv(2048)
 
     # wait for status changing in tarantool
     master_status = yaml.safe_load(master.admin(
-        'box.info().replication[2].upstream.status', silent=True
+        "box.info().replication[2].upstream.status", silent=True
     ))[0]
     replica_status = yaml.safe_load(replica.admin(
-        'box.info().replication[1].upstream.status', silent=True
+        "box.info().replication[1].upstream.status", silent=True
     ))[0]
 
     # wait for status
@@ -37,11 +39,11 @@ def parallel_run(cmd1, cmd2, compare):
     while True:
         sleep(0.01)
         if any(results):
-            print 'replication state is correct'
+            print("replication state is correct")
             break
 
 def prepare_cluster():
-    print 'reset master-master replication'
+    print("reset master-master replication")
     master.stop()
     master.cleanup()
     master.start()
@@ -51,13 +53,13 @@ def prepare_cluster():
     replica.cleanup()
     replica.start()
 
-    master.admin("box.cfg{replication='%s'}" % replica.iproto.uri, silent=True)
-    r1_id = replica.get_param('id')
-    r2_id = master.get_param('id')
+    master.admin("box.cfg{{replication='{}'}}".format(replica.iproto.uri), silent=True)
+    r1_id = replica.get_param("id")
+    r2_id = master.get_param("id")
 
     master.admin("space = box.schema.space.create('test')", silent=True)
     master.admin("index = space:create_index('primary', { type = 'tree'})", silent=True)
-    master.admin('for k = 1, 9 do space:insert{k, k*k} end', silent=True)
+    master.admin("for k = 1, 9 do space:insert{k, k*k} end", silent=True)
 
     # wait lsn
     replica.wait_lsn(r2_id, master.get_lsn(r2_id))
@@ -69,20 +71,20 @@ parallel_run(
     "box.space.test:update(1, {{'#', 2, 1}})",
     "box.space.test:update(1, {{'#', 2, 1}})",
     [
-        lambda x,y: x == 'stopped' or y == 'stopped',
-        lambda x,y: x == 'follow' and y == 'follow',
+        lambda x,y: x == "stopped" or y == "stopped",
+        lambda x,y: x == "follow" and y == "follow",
     ]
 )
-check_replication([master, replica], '1')
+check_replication([master, replica], "1")
 
 # test2: insert different values with single id
 prepare_cluster()
 parallel_run(
-    'box.space.test:insert{20, 1}',
-    'box.space.test:insert{20, 2}',
+    "box.space.test:insert{20, 1}",
+    "box.space.test:insert{20, 2}",
     [
-        lambda x,y: x == 'stopped' or y == 'stopped',
-        lambda x,y: x == 'follow' and y == 'follow',
+        lambda x,y: x == "stopped" or y == "stopped",
+        lambda x,y: x == "follow" and y == "follow",
     ]
 )
 
@@ -91,7 +93,7 @@ prepare_cluster()
 parallel_run(
     "box.space.test:update(2, {{'=', 2, 1}})",
     "box.space.test:update(2, {{'=', 2, 2}})",
-    [lambda x,y: x == 'follow' and y == 'follow',]
+    [lambda x,y: x == "follow" and y == "follow",]
 )
 
 # test4: CRDT increment with update
@@ -99,16 +101,16 @@ prepare_cluster()
 parallel_run(
     "box.space.test:update(1, {{'+', 2, 1}})",
     "box.space.test:update(1, {{'+', 2, 2}})",
-    [lambda x,y: x == 'follow' and y == 'follow',]
+    [lambda x,y: x == "follow" and y == "follow",]
 )
-check_replication([master, replica], '1')
+check_replication([master, replica], "1")
 
 # test5: delete not existing key
 prepare_cluster()
 parallel_run(
     "box.space.test:delete(999)",
     "box.space.test:delete(999)",
-    [lambda x,y: x == 'follow' and y == 'follow',]
+    [lambda x,y: x == "follow" and y == "follow",]
 )
 check_replication([master, replica])
 
diff --git a/test/replication-py/init_storage.test.py b/test/replication-py/init_storage.test.py
index 4be531f8d..30ba75405 100644
--- a/test/replication-py/init_storage.test.py
+++ b/test/replication-py/init_storage.test.py
@@ -1,80 +1,82 @@
+from __future__ import print_function
+
 import os
 import glob
 from lib.tarantool_server import TarantoolServer
 
 # master server
 master = server
-master_id = master.get_param('id')
+master_id = master.get_param("id")
 master.admin("box.schema.user.grant('guest', 'replication')")
 
-print '-------------------------------------------------------------'
-print 'gh-484: JOIN doesn\'t save data to snapshot with TREE index'
-print '-------------------------------------------------------------'
+print("-------------------------------------------------------------")
+print("gh-484: JOIN doesn't save data to snapshot with TREE index")
+print("-------------------------------------------------------------")
 
 master.admin("space = box.schema.space.create('test', {id =  42})")
 master.admin("index = space:create_index('primary', { type = 'tree'})")
 
-master.admin('for k = 1, 9 do space:insert{k, k*k} end')
+master.admin("for k = 1, 9 do space:insert{k, k*k} end")
 
 replica = TarantoolServer(server.ini)
-replica.script = 'replication-py/replica.lua'
+replica.script = "replication-py/replica.lua"
 replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
 replica.rpl_master = master
 replica.deploy()
-replica.admin('box.space.test:select()')
+replica.admin("box.space.test:select()")
 
 replica.restart()
-replica.admin('box.space.test:select()')
+replica.admin("box.space.test:select()")
 replica.stop()
 replica.cleanup()
 
-print '-------------------------------------------------------------'
-print 'replica test 2 (must be ok)'
-print '-------------------------------------------------------------'
+print("-------------------------------------------------------------")
+print("replica test 2 (must be ok)")
+print("-------------------------------------------------------------")
 
 master.restart()
-master.admin('for k = 10, 19 do box.space[42]:insert{k, k*k*k} end')
+master.admin("for k = 10, 19 do box.space[42]:insert{k, k*k*k} end")
 master.admin("for k = 20, 29 do box.space[42]:upsert({k}, {}) end")
 lsn = master.get_lsn(master_id)
 
 replica = TarantoolServer(server.ini)
-replica.script = 'replication-py/replica.lua'
+replica.script = "replication-py/replica.lua"
 replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
 replica.rpl_master = master
 replica.deploy()
 
-replica.admin('space = box.space.test');
+replica.admin("space = box.space.test");
 replica.wait_lsn(master_id, lsn)
 for i in range(1, 20):
-    replica.admin('space:get{%d}' % i)
+    replica.admin("space:get{{{}}}".format(i))
 
 replica.stop()
 replica.cleanup()
 
-print '-------------------------------------------------------------'
-print 'reconnect on JOIN/SUBSCRIBE'
-print '-------------------------------------------------------------'
+print("-------------------------------------------------------------")
+print("reconnect on JOIN/SUBSCRIBE")
+print("-------------------------------------------------------------")
 
 server.stop()
 replica = TarantoolServer(server.ini)
-replica.script = 'replication-py/replica.lua'
+replica.script = "replication-py/replica.lua"
 replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
 replica.rpl_master = master
 replica.deploy(wait=False)
 
-print 'waiting reconnect on JOIN...'
+print("waiting reconnect on JOIN...")
 server.start()
 replica.wait_until_started()
-print 'ok'
+print("ok")
 
 replica.stop()
 server.stop()
 
-print 'waiting reconnect on SUBSCRIBE...'
+print("waiting reconnect on SUBSCRIBE...")
 replica.start(wait=False)
 server.start()
 replica.wait_until_started()
-print 'ok'
+print("ok")
 
 replica.stop()
 replica.cleanup()
diff --git a/test/replication-py/multi.test.py b/test/replication-py/multi.test.py
index 233802458..a346fd560 100644
--- a/test/replication-py/multi.test.py
+++ b/test/replication-py/multi.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import sys
 import os
 from lib.tarantool_server import TarantoolServer
@@ -14,17 +16,17 @@ master.admin("fiber = require('fiber')")
 master.admin("box.schema.user.grant('guest', 'replication')")
 master.admin("box.schema.user.grant('guest', 'execute', 'universe')")
 
-print '----------------------------------------------------------------------'
-print 'Bootstrap replicas'
-print '----------------------------------------------------------------------'
+print("----------------------------------------------------------------------")
+print("Bootstrap replicas")
+print("----------------------------------------------------------------------")
 
 # Start replicas
-master.id = master.get_param('id')
+master.id = master.get_param("id")
 cluster = [ master ]
 for i in range(REPLICA_N - 1):
     server = TarantoolServer(server.ini)
-    server.script = 'replication-py/replica.lua'
-    server.vardir = os.path.join(server.vardir, 'replica', str(master.id + i))
+    server.script = "replication-py/replica.lua"
+    server.vardir = os.path.join(server.vardir, "replica", str(master.id + i))
     server.rpl_master = master
     server.deploy()
     # Wait replica to fully bootstrap.
@@ -34,14 +36,14 @@ for i in range(REPLICA_N - 1):
 # Make a list of servers
 sources = []
 for server in cluster:
-    sources.append(yaml.safe_load(server.admin('box.cfg.listen', silent = True))[0])
-    server.id = server.get_param('id')
+    sources.append(yaml.safe_load(server.admin("box.cfg.listen", silent = True))[0])
+    server.id = server.get_param("id")
 
-print 'done'
+print("done")
 
-print '----------------------------------------------------------------------'
-print 'Make a full mesh'
-print '----------------------------------------------------------------------'
+print("----------------------------------------------------------------------")
+print("Make a full mesh")
+print("----------------------------------------------------------------------")
 
 # Connect each server to each other to make full mesh
 for server in cluster:
@@ -54,55 +56,55 @@ for server in cluster:
             while #box.info.vclock[...] ~= nil do
                 fiber.sleep(0.01)
             end;""", server2.id)
-        print 'server', server.id, "connected"
+        print("server {} connected".format(server.id))
 
-print 'done'
+print("done")
 
-print '----------------------------------------------------------------------'
-print 'Test inserts'
-print '----------------------------------------------------------------------'
+print("----------------------------------------------------------------------")
+print("Test inserts")
+print("----------------------------------------------------------------------")
 
-print 'Create a test space'
+print("Create a test space")
 master.admin("_ = box.schema.space.create('test')")
 master.admin("_ = box.space.test:create_index('primary')")
 master_lsn = master.get_lsn(master.id)
 # Wait changes to propagate to replicas
 for server in cluster:
     server.wait_lsn(master.id, master_lsn)
-    print 'server', server.id, 'is ok'
-print
+    print("server {} is ok".format(server.id))
+print("")
 
-print 'Insert records'
+print("Insert records")
 for i in range(ROW_N):
     server = cluster[i % REPLICA_N]
-    server.admin("box.space.test:insert{%d, %s}" % (i, server.id), silent = True)
-print 'inserted %d records' % ROW_N
-print
+    server.admin("box.space.test:insert{{{}, {}}}".format(i, server.id), silent = True)
+print("inserted {} records".format(ROW_N))
+print("")
 
-print 'Synchronize'
+print("Synchronize")
 for server1 in cluster:
     for server2 in cluster:
         server1.wait_lsn(server2.id, server2.get_lsn(server2.id))
-    print 'server', server1.id, 'done'
-print 'done'
-print
+    print("server {} done".format(server1.id))
+print("done")
+print("")
 
-print 'Check data'
+print("Check data")
 for server in cluster:
     cnt = yaml.safe_load(server.admin("box.space.test:len()", silent = True))[0]
-    print 'server', server.id, 'is', cnt == ROW_N and 'ok' or 'not ok'
-print 'Done'
-print
+    print("server {} is {}".format(server.id, cnt == ROW_N and "ok" or "not ok"))
+print("Done")
+print("")
 
-print
-print '----------------------------------------------------------------------'
-print 'Cleanup'
-print '----------------------------------------------------------------------'
+print("")
+print("----------------------------------------------------------------------")
+print("Cleanup")
+print("----------------------------------------------------------------------")
 
 for server in cluster:
     server.stop()
-    print 'server', server.id, 'done'
-print
+    print("server {} done".format(server.id))
+print("")
 
 master.cleanup()
 master.deploy()
diff --git a/test/replication-py/swap.result b/test/replication-py/swap.result
index 7e6e66483..f96da95e4 100644
--- a/test/replication-py/swap.result
+++ b/test/replication-py/swap.result
@@ -23,34 +23,34 @@ index = s:create_index('primary', {type = 'tree'})
 ---
 ...
 test 0 iteration
-box.space.memtx:insert{0, "tuple 0"}
+box.space.memtx:insert{0, 'tuple 0'}
 -
 - [0, 'tuple 0']
-box.space.memtx:insert{1, "tuple 1"}
+box.space.memtx:insert{1, 'tuple 1'}
 -
 - [1, 'tuple 1']
-box.space.memtx:insert{2, "tuple 2"}
+box.space.memtx:insert{2, 'tuple 2'}
 -
 - [2, 'tuple 2']
-box.space.memtx:insert{3, "tuple 3"}
+box.space.memtx:insert{3, 'tuple 3'}
 -
 - [3, 'tuple 3']
-box.space.memtx:insert{4, "tuple 4"}
+box.space.memtx:insert{4, 'tuple 4'}
 -
 - [4, 'tuple 4']
-box.space.vinyl:insert{0, "tuple 0"}
+box.space.vinyl:insert{0, 'tuple 0'}
 -
 - [0, 'tuple 0']
-box.space.vinyl:insert{1, "tuple 1"}
+box.space.vinyl:insert{1, 'tuple 1'}
 -
 - [1, 'tuple 1']
-box.space.vinyl:insert{2, "tuple 2"}
+box.space.vinyl:insert{2, 'tuple 2'}
 -
 - [2, 'tuple 2']
-box.space.vinyl:insert{3, "tuple 3"}
+box.space.vinyl:insert{3, 'tuple 3'}
 -
 - [3, 'tuple 3']
-box.space.vinyl:insert{4, "tuple 4"}
+box.space.vinyl:insert{4, 'tuple 4'}
 -
 - [4, 'tuple 4']
 box.space.memtx:select{0}
@@ -83,34 +83,34 @@ box.space.vinyl:select{3}
 box.space.vinyl:select{4}
 -
 - [4, 'tuple 4']
-box.space.memtx:insert{5, "tuple 5"}
+box.space.memtx:insert{5, 'tuple 5'}
 -
 - [5, 'tuple 5']
-box.space.memtx:insert{6, "tuple 6"}
+box.space.memtx:insert{6, 'tuple 6'}
 -
 - [6, 'tuple 6']
-box.space.memtx:insert{7, "tuple 7"}
+box.space.memtx:insert{7, 'tuple 7'}
 -
 - [7, 'tuple 7']
-box.space.memtx:insert{8, "tuple 8"}
+box.space.memtx:insert{8, 'tuple 8'}
 -
 - [8, 'tuple 8']
-box.space.memtx:insert{9, "tuple 9"}
+box.space.memtx:insert{9, 'tuple 9'}
 -
 - [9, 'tuple 9']
-box.space.vinyl:insert{5, "tuple 5"}
+box.space.vinyl:insert{5, 'tuple 5'}
 -
 - [5, 'tuple 5']
-box.space.vinyl:insert{6, "tuple 6"}
+box.space.vinyl:insert{6, 'tuple 6'}
 -
 - [6, 'tuple 6']
-box.space.vinyl:insert{7, "tuple 7"}
+box.space.vinyl:insert{7, 'tuple 7'}
 -
 - [7, 'tuple 7']
-box.space.vinyl:insert{8, "tuple 8"}
+box.space.vinyl:insert{8, 'tuple 8'}
 -
 - [8, 'tuple 8']
-box.space.vinyl:insert{9, "tuple 9"}
+box.space.vinyl:insert{9, 'tuple 9'}
 -
 - [9, 'tuple 9']
 box.space.memtx:select{5}
@@ -149,34 +149,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{10, "tuple 10"}
+box.space.memtx:insert{10, 'tuple 10'}
 -
 - [10, 'tuple 10']
-box.space.memtx:insert{11, "tuple 11"}
+box.space.memtx:insert{11, 'tuple 11'}
 -
 - [11, 'tuple 11']
-box.space.memtx:insert{12, "tuple 12"}
+box.space.memtx:insert{12, 'tuple 12'}
 -
 - [12, 'tuple 12']
-box.space.memtx:insert{13, "tuple 13"}
+box.space.memtx:insert{13, 'tuple 13'}
 -
 - [13, 'tuple 13']
-box.space.memtx:insert{14, "tuple 14"}
+box.space.memtx:insert{14, 'tuple 14'}
 -
 - [14, 'tuple 14']
-box.space.vinyl:insert{10, "tuple 10"}
+box.space.vinyl:insert{10, 'tuple 10'}
 -
 - [10, 'tuple 10']
-box.space.vinyl:insert{11, "tuple 11"}
+box.space.vinyl:insert{11, 'tuple 11'}
 -
 - [11, 'tuple 11']
-box.space.vinyl:insert{12, "tuple 12"}
+box.space.vinyl:insert{12, 'tuple 12'}
 -
 - [12, 'tuple 12']
-box.space.vinyl:insert{13, "tuple 13"}
+box.space.vinyl:insert{13, 'tuple 13'}
 -
 - [13, 'tuple 13']
-box.space.vinyl:insert{14, "tuple 14"}
+box.space.vinyl:insert{14, 'tuple 14'}
 -
 - [14, 'tuple 14']
 box.space.memtx:select{10}
@@ -209,34 +209,34 @@ box.space.vinyl:select{13}
 box.space.vinyl:select{14}
 -
 - [14, 'tuple 14']
-box.space.memtx:insert{15, "tuple 15"}
+box.space.memtx:insert{15, 'tuple 15'}
 -
 - [15, 'tuple 15']
-box.space.memtx:insert{16, "tuple 16"}
+box.space.memtx:insert{16, 'tuple 16'}
 -
 - [16, 'tuple 16']
-box.space.memtx:insert{17, "tuple 17"}
+box.space.memtx:insert{17, 'tuple 17'}
 -
 - [17, 'tuple 17']
-box.space.memtx:insert{18, "tuple 18"}
+box.space.memtx:insert{18, 'tuple 18'}
 -
 - [18, 'tuple 18']
-box.space.memtx:insert{19, "tuple 19"}
+box.space.memtx:insert{19, 'tuple 19'}
 -
 - [19, 'tuple 19']
-box.space.vinyl:insert{15, "tuple 15"}
+box.space.vinyl:insert{15, 'tuple 15'}
 -
 - [15, 'tuple 15']
-box.space.vinyl:insert{16, "tuple 16"}
+box.space.vinyl:insert{16, 'tuple 16'}
 -
 - [16, 'tuple 16']
-box.space.vinyl:insert{17, "tuple 17"}
+box.space.vinyl:insert{17, 'tuple 17'}
 -
 - [17, 'tuple 17']
-box.space.vinyl:insert{18, "tuple 18"}
+box.space.vinyl:insert{18, 'tuple 18'}
 -
 - [18, 'tuple 18']
-box.space.vinyl:insert{19, "tuple 19"}
+box.space.vinyl:insert{19, 'tuple 19'}
 -
 - [19, 'tuple 19']
 box.space.memtx:select{15}
@@ -276,34 +276,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 1 iteration
-box.space.memtx:insert{20, "tuple 20"}
+box.space.memtx:insert{20, 'tuple 20'}
 -
 - [20, 'tuple 20']
-box.space.memtx:insert{21, "tuple 21"}
+box.space.memtx:insert{21, 'tuple 21'}
 -
 - [21, 'tuple 21']
-box.space.memtx:insert{22, "tuple 22"}
+box.space.memtx:insert{22, 'tuple 22'}
 -
 - [22, 'tuple 22']
-box.space.memtx:insert{23, "tuple 23"}
+box.space.memtx:insert{23, 'tuple 23'}
 -
 - [23, 'tuple 23']
-box.space.memtx:insert{24, "tuple 24"}
+box.space.memtx:insert{24, 'tuple 24'}
 -
 - [24, 'tuple 24']
-box.space.vinyl:insert{20, "tuple 20"}
+box.space.vinyl:insert{20, 'tuple 20'}
 -
 - [20, 'tuple 20']
-box.space.vinyl:insert{21, "tuple 21"}
+box.space.vinyl:insert{21, 'tuple 21'}
 -
 - [21, 'tuple 21']
-box.space.vinyl:insert{22, "tuple 22"}
+box.space.vinyl:insert{22, 'tuple 22'}
 -
 - [22, 'tuple 22']
-box.space.vinyl:insert{23, "tuple 23"}
+box.space.vinyl:insert{23, 'tuple 23'}
 -
 - [23, 'tuple 23']
-box.space.vinyl:insert{24, "tuple 24"}
+box.space.vinyl:insert{24, 'tuple 24'}
 -
 - [24, 'tuple 24']
 box.space.memtx:select{20}
@@ -336,34 +336,34 @@ box.space.vinyl:select{23}
 box.space.vinyl:select{24}
 -
 - [24, 'tuple 24']
-box.space.memtx:insert{25, "tuple 25"}
+box.space.memtx:insert{25, 'tuple 25'}
 -
 - [25, 'tuple 25']
-box.space.memtx:insert{26, "tuple 26"}
+box.space.memtx:insert{26, 'tuple 26'}
 -
 - [26, 'tuple 26']
-box.space.memtx:insert{27, "tuple 27"}
+box.space.memtx:insert{27, 'tuple 27'}
 -
 - [27, 'tuple 27']
-box.space.memtx:insert{28, "tuple 28"}
+box.space.memtx:insert{28, 'tuple 28'}
 -
 - [28, 'tuple 28']
-box.space.memtx:insert{29, "tuple 29"}
+box.space.memtx:insert{29, 'tuple 29'}
 -
 - [29, 'tuple 29']
-box.space.vinyl:insert{25, "tuple 25"}
+box.space.vinyl:insert{25, 'tuple 25'}
 -
 - [25, 'tuple 25']
-box.space.vinyl:insert{26, "tuple 26"}
+box.space.vinyl:insert{26, 'tuple 26'}
 -
 - [26, 'tuple 26']
-box.space.vinyl:insert{27, "tuple 27"}
+box.space.vinyl:insert{27, 'tuple 27'}
 -
 - [27, 'tuple 27']
-box.space.vinyl:insert{28, "tuple 28"}
+box.space.vinyl:insert{28, 'tuple 28'}
 -
 - [28, 'tuple 28']
-box.space.vinyl:insert{29, "tuple 29"}
+box.space.vinyl:insert{29, 'tuple 29'}
 -
 - [29, 'tuple 29']
 box.space.memtx:select{25}
@@ -402,34 +402,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{30, "tuple 30"}
+box.space.memtx:insert{30, 'tuple 30'}
 -
 - [30, 'tuple 30']
-box.space.memtx:insert{31, "tuple 31"}
+box.space.memtx:insert{31, 'tuple 31'}
 -
 - [31, 'tuple 31']
-box.space.memtx:insert{32, "tuple 32"}
+box.space.memtx:insert{32, 'tuple 32'}
 -
 - [32, 'tuple 32']
-box.space.memtx:insert{33, "tuple 33"}
+box.space.memtx:insert{33, 'tuple 33'}
 -
 - [33, 'tuple 33']
-box.space.memtx:insert{34, "tuple 34"}
+box.space.memtx:insert{34, 'tuple 34'}
 -
 - [34, 'tuple 34']
-box.space.vinyl:insert{30, "tuple 30"}
+box.space.vinyl:insert{30, 'tuple 30'}
 -
 - [30, 'tuple 30']
-box.space.vinyl:insert{31, "tuple 31"}
+box.space.vinyl:insert{31, 'tuple 31'}
 -
 - [31, 'tuple 31']
-box.space.vinyl:insert{32, "tuple 32"}
+box.space.vinyl:insert{32, 'tuple 32'}
 -
 - [32, 'tuple 32']
-box.space.vinyl:insert{33, "tuple 33"}
+box.space.vinyl:insert{33, 'tuple 33'}
 -
 - [33, 'tuple 33']
-box.space.vinyl:insert{34, "tuple 34"}
+box.space.vinyl:insert{34, 'tuple 34'}
 -
 - [34, 'tuple 34']
 box.space.memtx:select{30}
@@ -462,34 +462,34 @@ box.space.vinyl:select{33}
 box.space.vinyl:select{34}
 -
 - [34, 'tuple 34']
-box.space.memtx:insert{35, "tuple 35"}
+box.space.memtx:insert{35, 'tuple 35'}
 -
 - [35, 'tuple 35']
-box.space.memtx:insert{36, "tuple 36"}
+box.space.memtx:insert{36, 'tuple 36'}
 -
 - [36, 'tuple 36']
-box.space.memtx:insert{37, "tuple 37"}
+box.space.memtx:insert{37, 'tuple 37'}
 -
 - [37, 'tuple 37']
-box.space.memtx:insert{38, "tuple 38"}
+box.space.memtx:insert{38, 'tuple 38'}
 -
 - [38, 'tuple 38']
-box.space.memtx:insert{39, "tuple 39"}
+box.space.memtx:insert{39, 'tuple 39'}
 -
 - [39, 'tuple 39']
-box.space.vinyl:insert{35, "tuple 35"}
+box.space.vinyl:insert{35, 'tuple 35'}
 -
 - [35, 'tuple 35']
-box.space.vinyl:insert{36, "tuple 36"}
+box.space.vinyl:insert{36, 'tuple 36'}
 -
 - [36, 'tuple 36']
-box.space.vinyl:insert{37, "tuple 37"}
+box.space.vinyl:insert{37, 'tuple 37'}
 -
 - [37, 'tuple 37']
-box.space.vinyl:insert{38, "tuple 38"}
+box.space.vinyl:insert{38, 'tuple 38'}
 -
 - [38, 'tuple 38']
-box.space.vinyl:insert{39, "tuple 39"}
+box.space.vinyl:insert{39, 'tuple 39'}
 -
 - [39, 'tuple 39']
 box.space.memtx:select{35}
@@ -529,34 +529,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 2 iteration
-box.space.memtx:insert{40, "tuple 40"}
+box.space.memtx:insert{40, 'tuple 40'}
 -
 - [40, 'tuple 40']
-box.space.memtx:insert{41, "tuple 41"}
+box.space.memtx:insert{41, 'tuple 41'}
 -
 - [41, 'tuple 41']
-box.space.memtx:insert{42, "tuple 42"}
+box.space.memtx:insert{42, 'tuple 42'}
 -
 - [42, 'tuple 42']
-box.space.memtx:insert{43, "tuple 43"}
+box.space.memtx:insert{43, 'tuple 43'}
 -
 - [43, 'tuple 43']
-box.space.memtx:insert{44, "tuple 44"}
+box.space.memtx:insert{44, 'tuple 44'}
 -
 - [44, 'tuple 44']
-box.space.vinyl:insert{40, "tuple 40"}
+box.space.vinyl:insert{40, 'tuple 40'}
 -
 - [40, 'tuple 40']
-box.space.vinyl:insert{41, "tuple 41"}
+box.space.vinyl:insert{41, 'tuple 41'}
 -
 - [41, 'tuple 41']
-box.space.vinyl:insert{42, "tuple 42"}
+box.space.vinyl:insert{42, 'tuple 42'}
 -
 - [42, 'tuple 42']
-box.space.vinyl:insert{43, "tuple 43"}
+box.space.vinyl:insert{43, 'tuple 43'}
 -
 - [43, 'tuple 43']
-box.space.vinyl:insert{44, "tuple 44"}
+box.space.vinyl:insert{44, 'tuple 44'}
 -
 - [44, 'tuple 44']
 box.space.memtx:select{40}
@@ -589,34 +589,34 @@ box.space.vinyl:select{43}
 box.space.vinyl:select{44}
 -
 - [44, 'tuple 44']
-box.space.memtx:insert{45, "tuple 45"}
+box.space.memtx:insert{45, 'tuple 45'}
 -
 - [45, 'tuple 45']
-box.space.memtx:insert{46, "tuple 46"}
+box.space.memtx:insert{46, 'tuple 46'}
 -
 - [46, 'tuple 46']
-box.space.memtx:insert{47, "tuple 47"}
+box.space.memtx:insert{47, 'tuple 47'}
 -
 - [47, 'tuple 47']
-box.space.memtx:insert{48, "tuple 48"}
+box.space.memtx:insert{48, 'tuple 48'}
 -
 - [48, 'tuple 48']
-box.space.memtx:insert{49, "tuple 49"}
+box.space.memtx:insert{49, 'tuple 49'}
 -
 - [49, 'tuple 49']
-box.space.vinyl:insert{45, "tuple 45"}
+box.space.vinyl:insert{45, 'tuple 45'}
 -
 - [45, 'tuple 45']
-box.space.vinyl:insert{46, "tuple 46"}
+box.space.vinyl:insert{46, 'tuple 46'}
 -
 - [46, 'tuple 46']
-box.space.vinyl:insert{47, "tuple 47"}
+box.space.vinyl:insert{47, 'tuple 47'}
 -
 - [47, 'tuple 47']
-box.space.vinyl:insert{48, "tuple 48"}
+box.space.vinyl:insert{48, 'tuple 48'}
 -
 - [48, 'tuple 48']
-box.space.vinyl:insert{49, "tuple 49"}
+box.space.vinyl:insert{49, 'tuple 49'}
 -
 - [49, 'tuple 49']
 box.space.memtx:select{45}
@@ -655,34 +655,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{50, "tuple 50"}
+box.space.memtx:insert{50, 'tuple 50'}
 -
 - [50, 'tuple 50']
-box.space.memtx:insert{51, "tuple 51"}
+box.space.memtx:insert{51, 'tuple 51'}
 -
 - [51, 'tuple 51']
-box.space.memtx:insert{52, "tuple 52"}
+box.space.memtx:insert{52, 'tuple 52'}
 -
 - [52, 'tuple 52']
-box.space.memtx:insert{53, "tuple 53"}
+box.space.memtx:insert{53, 'tuple 53'}
 -
 - [53, 'tuple 53']
-box.space.memtx:insert{54, "tuple 54"}
+box.space.memtx:insert{54, 'tuple 54'}
 -
 - [54, 'tuple 54']
-box.space.vinyl:insert{50, "tuple 50"}
+box.space.vinyl:insert{50, 'tuple 50'}
 -
 - [50, 'tuple 50']
-box.space.vinyl:insert{51, "tuple 51"}
+box.space.vinyl:insert{51, 'tuple 51'}
 -
 - [51, 'tuple 51']
-box.space.vinyl:insert{52, "tuple 52"}
+box.space.vinyl:insert{52, 'tuple 52'}
 -
 - [52, 'tuple 52']
-box.space.vinyl:insert{53, "tuple 53"}
+box.space.vinyl:insert{53, 'tuple 53'}
 -
 - [53, 'tuple 53']
-box.space.vinyl:insert{54, "tuple 54"}
+box.space.vinyl:insert{54, 'tuple 54'}
 -
 - [54, 'tuple 54']
 box.space.memtx:select{50}
@@ -715,34 +715,34 @@ box.space.vinyl:select{53}
 box.space.vinyl:select{54}
 -
 - [54, 'tuple 54']
-box.space.memtx:insert{55, "tuple 55"}
+box.space.memtx:insert{55, 'tuple 55'}
 -
 - [55, 'tuple 55']
-box.space.memtx:insert{56, "tuple 56"}
+box.space.memtx:insert{56, 'tuple 56'}
 -
 - [56, 'tuple 56']
-box.space.memtx:insert{57, "tuple 57"}
+box.space.memtx:insert{57, 'tuple 57'}
 -
 - [57, 'tuple 57']
-box.space.memtx:insert{58, "tuple 58"}
+box.space.memtx:insert{58, 'tuple 58'}
 -
 - [58, 'tuple 58']
-box.space.memtx:insert{59, "tuple 59"}
+box.space.memtx:insert{59, 'tuple 59'}
 -
 - [59, 'tuple 59']
-box.space.vinyl:insert{55, "tuple 55"}
+box.space.vinyl:insert{55, 'tuple 55'}
 -
 - [55, 'tuple 55']
-box.space.vinyl:insert{56, "tuple 56"}
+box.space.vinyl:insert{56, 'tuple 56'}
 -
 - [56, 'tuple 56']
-box.space.vinyl:insert{57, "tuple 57"}
+box.space.vinyl:insert{57, 'tuple 57'}
 -
 - [57, 'tuple 57']
-box.space.vinyl:insert{58, "tuple 58"}
+box.space.vinyl:insert{58, 'tuple 58'}
 -
 - [58, 'tuple 58']
-box.space.vinyl:insert{59, "tuple 59"}
+box.space.vinyl:insert{59, 'tuple 59'}
 -
 - [59, 'tuple 59']
 box.space.memtx:select{55}
@@ -782,34 +782,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 3 iteration
-box.space.memtx:insert{60, "tuple 60"}
+box.space.memtx:insert{60, 'tuple 60'}
 -
 - [60, 'tuple 60']
-box.space.memtx:insert{61, "tuple 61"}
+box.space.memtx:insert{61, 'tuple 61'}
 -
 - [61, 'tuple 61']
-box.space.memtx:insert{62, "tuple 62"}
+box.space.memtx:insert{62, 'tuple 62'}
 -
 - [62, 'tuple 62']
-box.space.memtx:insert{63, "tuple 63"}
+box.space.memtx:insert{63, 'tuple 63'}
 -
 - [63, 'tuple 63']
-box.space.memtx:insert{64, "tuple 64"}
+box.space.memtx:insert{64, 'tuple 64'}
 -
 - [64, 'tuple 64']
-box.space.vinyl:insert{60, "tuple 60"}
+box.space.vinyl:insert{60, 'tuple 60'}
 -
 - [60, 'tuple 60']
-box.space.vinyl:insert{61, "tuple 61"}
+box.space.vinyl:insert{61, 'tuple 61'}
 -
 - [61, 'tuple 61']
-box.space.vinyl:insert{62, "tuple 62"}
+box.space.vinyl:insert{62, 'tuple 62'}
 -
 - [62, 'tuple 62']
-box.space.vinyl:insert{63, "tuple 63"}
+box.space.vinyl:insert{63, 'tuple 63'}
 -
 - [63, 'tuple 63']
-box.space.vinyl:insert{64, "tuple 64"}
+box.space.vinyl:insert{64, 'tuple 64'}
 -
 - [64, 'tuple 64']
 box.space.memtx:select{60}
@@ -842,34 +842,34 @@ box.space.vinyl:select{63}
 box.space.vinyl:select{64}
 -
 - [64, 'tuple 64']
-box.space.memtx:insert{65, "tuple 65"}
+box.space.memtx:insert{65, 'tuple 65'}
 -
 - [65, 'tuple 65']
-box.space.memtx:insert{66, "tuple 66"}
+box.space.memtx:insert{66, 'tuple 66'}
 -
 - [66, 'tuple 66']
-box.space.memtx:insert{67, "tuple 67"}
+box.space.memtx:insert{67, 'tuple 67'}
 -
 - [67, 'tuple 67']
-box.space.memtx:insert{68, "tuple 68"}
+box.space.memtx:insert{68, 'tuple 68'}
 -
 - [68, 'tuple 68']
-box.space.memtx:insert{69, "tuple 69"}
+box.space.memtx:insert{69, 'tuple 69'}
 -
 - [69, 'tuple 69']
-box.space.vinyl:insert{65, "tuple 65"}
+box.space.vinyl:insert{65, 'tuple 65'}
 -
 - [65, 'tuple 65']
-box.space.vinyl:insert{66, "tuple 66"}
+box.space.vinyl:insert{66, 'tuple 66'}
 -
 - [66, 'tuple 66']
-box.space.vinyl:insert{67, "tuple 67"}
+box.space.vinyl:insert{67, 'tuple 67'}
 -
 - [67, 'tuple 67']
-box.space.vinyl:insert{68, "tuple 68"}
+box.space.vinyl:insert{68, 'tuple 68'}
 -
 - [68, 'tuple 68']
-box.space.vinyl:insert{69, "tuple 69"}
+box.space.vinyl:insert{69, 'tuple 69'}
 -
 - [69, 'tuple 69']
 box.space.memtx:select{65}
@@ -908,34 +908,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{70, "tuple 70"}
+box.space.memtx:insert{70, 'tuple 70'}
 -
 - [70, 'tuple 70']
-box.space.memtx:insert{71, "tuple 71"}
+box.space.memtx:insert{71, 'tuple 71'}
 -
 - [71, 'tuple 71']
-box.space.memtx:insert{72, "tuple 72"}
+box.space.memtx:insert{72, 'tuple 72'}
 -
 - [72, 'tuple 72']
-box.space.memtx:insert{73, "tuple 73"}
+box.space.memtx:insert{73, 'tuple 73'}
 -
 - [73, 'tuple 73']
-box.space.memtx:insert{74, "tuple 74"}
+box.space.memtx:insert{74, 'tuple 74'}
 -
 - [74, 'tuple 74']
-box.space.vinyl:insert{70, "tuple 70"}
+box.space.vinyl:insert{70, 'tuple 70'}
 -
 - [70, 'tuple 70']
-box.space.vinyl:insert{71, "tuple 71"}
+box.space.vinyl:insert{71, 'tuple 71'}
 -
 - [71, 'tuple 71']
-box.space.vinyl:insert{72, "tuple 72"}
+box.space.vinyl:insert{72, 'tuple 72'}
 -
 - [72, 'tuple 72']
-box.space.vinyl:insert{73, "tuple 73"}
+box.space.vinyl:insert{73, 'tuple 73'}
 -
 - [73, 'tuple 73']
-box.space.vinyl:insert{74, "tuple 74"}
+box.space.vinyl:insert{74, 'tuple 74'}
 -
 - [74, 'tuple 74']
 box.space.memtx:select{70}
@@ -968,34 +968,34 @@ box.space.vinyl:select{73}
 box.space.vinyl:select{74}
 -
 - [74, 'tuple 74']
-box.space.memtx:insert{75, "tuple 75"}
+box.space.memtx:insert{75, 'tuple 75'}
 -
 - [75, 'tuple 75']
-box.space.memtx:insert{76, "tuple 76"}
+box.space.memtx:insert{76, 'tuple 76'}
 -
 - [76, 'tuple 76']
-box.space.memtx:insert{77, "tuple 77"}
+box.space.memtx:insert{77, 'tuple 77'}
 -
 - [77, 'tuple 77']
-box.space.memtx:insert{78, "tuple 78"}
+box.space.memtx:insert{78, 'tuple 78'}
 -
 - [78, 'tuple 78']
-box.space.memtx:insert{79, "tuple 79"}
+box.space.memtx:insert{79, 'tuple 79'}
 -
 - [79, 'tuple 79']
-box.space.vinyl:insert{75, "tuple 75"}
+box.space.vinyl:insert{75, 'tuple 75'}
 -
 - [75, 'tuple 75']
-box.space.vinyl:insert{76, "tuple 76"}
+box.space.vinyl:insert{76, 'tuple 76'}
 -
 - [76, 'tuple 76']
-box.space.vinyl:insert{77, "tuple 77"}
+box.space.vinyl:insert{77, 'tuple 77'}
 -
 - [77, 'tuple 77']
-box.space.vinyl:insert{78, "tuple 78"}
+box.space.vinyl:insert{78, 'tuple 78'}
 -
 - [78, 'tuple 78']
-box.space.vinyl:insert{79, "tuple 79"}
+box.space.vinyl:insert{79, 'tuple 79'}
 -
 - [79, 'tuple 79']
 box.space.memtx:select{75}
@@ -1035,34 +1035,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 4 iteration
-box.space.memtx:insert{80, "tuple 80"}
+box.space.memtx:insert{80, 'tuple 80'}
 -
 - [80, 'tuple 80']
-box.space.memtx:insert{81, "tuple 81"}
+box.space.memtx:insert{81, 'tuple 81'}
 -
 - [81, 'tuple 81']
-box.space.memtx:insert{82, "tuple 82"}
+box.space.memtx:insert{82, 'tuple 82'}
 -
 - [82, 'tuple 82']
-box.space.memtx:insert{83, "tuple 83"}
+box.space.memtx:insert{83, 'tuple 83'}
 -
 - [83, 'tuple 83']
-box.space.memtx:insert{84, "tuple 84"}
+box.space.memtx:insert{84, 'tuple 84'}
 -
 - [84, 'tuple 84']
-box.space.vinyl:insert{80, "tuple 80"}
+box.space.vinyl:insert{80, 'tuple 80'}
 -
 - [80, 'tuple 80']
-box.space.vinyl:insert{81, "tuple 81"}
+box.space.vinyl:insert{81, 'tuple 81'}
 -
 - [81, 'tuple 81']
-box.space.vinyl:insert{82, "tuple 82"}
+box.space.vinyl:insert{82, 'tuple 82'}
 -
 - [82, 'tuple 82']
-box.space.vinyl:insert{83, "tuple 83"}
+box.space.vinyl:insert{83, 'tuple 83'}
 -
 - [83, 'tuple 83']
-box.space.vinyl:insert{84, "tuple 84"}
+box.space.vinyl:insert{84, 'tuple 84'}
 -
 - [84, 'tuple 84']
 box.space.memtx:select{80}
@@ -1095,34 +1095,34 @@ box.space.vinyl:select{83}
 box.space.vinyl:select{84}
 -
 - [84, 'tuple 84']
-box.space.memtx:insert{85, "tuple 85"}
+box.space.memtx:insert{85, 'tuple 85'}
 -
 - [85, 'tuple 85']
-box.space.memtx:insert{86, "tuple 86"}
+box.space.memtx:insert{86, 'tuple 86'}
 -
 - [86, 'tuple 86']
-box.space.memtx:insert{87, "tuple 87"}
+box.space.memtx:insert{87, 'tuple 87'}
 -
 - [87, 'tuple 87']
-box.space.memtx:insert{88, "tuple 88"}
+box.space.memtx:insert{88, 'tuple 88'}
 -
 - [88, 'tuple 88']
-box.space.memtx:insert{89, "tuple 89"}
+box.space.memtx:insert{89, 'tuple 89'}
 -
 - [89, 'tuple 89']
-box.space.vinyl:insert{85, "tuple 85"}
+box.space.vinyl:insert{85, 'tuple 85'}
 -
 - [85, 'tuple 85']
-box.space.vinyl:insert{86, "tuple 86"}
+box.space.vinyl:insert{86, 'tuple 86'}
 -
 - [86, 'tuple 86']
-box.space.vinyl:insert{87, "tuple 87"}
+box.space.vinyl:insert{87, 'tuple 87'}
 -
 - [87, 'tuple 87']
-box.space.vinyl:insert{88, "tuple 88"}
+box.space.vinyl:insert{88, 'tuple 88'}
 -
 - [88, 'tuple 88']
-box.space.vinyl:insert{89, "tuple 89"}
+box.space.vinyl:insert{89, 'tuple 89'}
 -
 - [89, 'tuple 89']
 box.space.memtx:select{85}
@@ -1161,34 +1161,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{90, "tuple 90"}
+box.space.memtx:insert{90, 'tuple 90'}
 -
 - [90, 'tuple 90']
-box.space.memtx:insert{91, "tuple 91"}
+box.space.memtx:insert{91, 'tuple 91'}
 -
 - [91, 'tuple 91']
-box.space.memtx:insert{92, "tuple 92"}
+box.space.memtx:insert{92, 'tuple 92'}
 -
 - [92, 'tuple 92']
-box.space.memtx:insert{93, "tuple 93"}
+box.space.memtx:insert{93, 'tuple 93'}
 -
 - [93, 'tuple 93']
-box.space.memtx:insert{94, "tuple 94"}
+box.space.memtx:insert{94, 'tuple 94'}
 -
 - [94, 'tuple 94']
-box.space.vinyl:insert{90, "tuple 90"}
+box.space.vinyl:insert{90, 'tuple 90'}
 -
 - [90, 'tuple 90']
-box.space.vinyl:insert{91, "tuple 91"}
+box.space.vinyl:insert{91, 'tuple 91'}
 -
 - [91, 'tuple 91']
-box.space.vinyl:insert{92, "tuple 92"}
+box.space.vinyl:insert{92, 'tuple 92'}
 -
 - [92, 'tuple 92']
-box.space.vinyl:insert{93, "tuple 93"}
+box.space.vinyl:insert{93, 'tuple 93'}
 -
 - [93, 'tuple 93']
-box.space.vinyl:insert{94, "tuple 94"}
+box.space.vinyl:insert{94, 'tuple 94'}
 -
 - [94, 'tuple 94']
 box.space.memtx:select{90}
@@ -1221,34 +1221,34 @@ box.space.vinyl:select{93}
 box.space.vinyl:select{94}
 -
 - [94, 'tuple 94']
-box.space.memtx:insert{95, "tuple 95"}
+box.space.memtx:insert{95, 'tuple 95'}
 -
 - [95, 'tuple 95']
-box.space.memtx:insert{96, "tuple 96"}
+box.space.memtx:insert{96, 'tuple 96'}
 -
 - [96, 'tuple 96']
-box.space.memtx:insert{97, "tuple 97"}
+box.space.memtx:insert{97, 'tuple 97'}
 -
 - [97, 'tuple 97']
-box.space.memtx:insert{98, "tuple 98"}
+box.space.memtx:insert{98, 'tuple 98'}
 -
 - [98, 'tuple 98']
-box.space.memtx:insert{99, "tuple 99"}
+box.space.memtx:insert{99, 'tuple 99'}
 -
 - [99, 'tuple 99']
-box.space.vinyl:insert{95, "tuple 95"}
+box.space.vinyl:insert{95, 'tuple 95'}
 -
 - [95, 'tuple 95']
-box.space.vinyl:insert{96, "tuple 96"}
+box.space.vinyl:insert{96, 'tuple 96'}
 -
 - [96, 'tuple 96']
-box.space.vinyl:insert{97, "tuple 97"}
+box.space.vinyl:insert{97, 'tuple 97'}
 -
 - [97, 'tuple 97']
-box.space.vinyl:insert{98, "tuple 98"}
+box.space.vinyl:insert{98, 'tuple 98'}
 -
 - [98, 'tuple 98']
-box.space.vinyl:insert{99, "tuple 99"}
+box.space.vinyl:insert{99, 'tuple 99'}
 -
 - [99, 'tuple 99']
 box.space.memtx:select{95}
@@ -1288,34 +1288,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 5 iteration
-box.space.memtx:insert{100, "tuple 100"}
+box.space.memtx:insert{100, 'tuple 100'}
 -
 - [100, 'tuple 100']
-box.space.memtx:insert{101, "tuple 101"}
+box.space.memtx:insert{101, 'tuple 101'}
 -
 - [101, 'tuple 101']
-box.space.memtx:insert{102, "tuple 102"}
+box.space.memtx:insert{102, 'tuple 102'}
 -
 - [102, 'tuple 102']
-box.space.memtx:insert{103, "tuple 103"}
+box.space.memtx:insert{103, 'tuple 103'}
 -
 - [103, 'tuple 103']
-box.space.memtx:insert{104, "tuple 104"}
+box.space.memtx:insert{104, 'tuple 104'}
 -
 - [104, 'tuple 104']
-box.space.vinyl:insert{100, "tuple 100"}
+box.space.vinyl:insert{100, 'tuple 100'}
 -
 - [100, 'tuple 100']
-box.space.vinyl:insert{101, "tuple 101"}
+box.space.vinyl:insert{101, 'tuple 101'}
 -
 - [101, 'tuple 101']
-box.space.vinyl:insert{102, "tuple 102"}
+box.space.vinyl:insert{102, 'tuple 102'}
 -
 - [102, 'tuple 102']
-box.space.vinyl:insert{103, "tuple 103"}
+box.space.vinyl:insert{103, 'tuple 103'}
 -
 - [103, 'tuple 103']
-box.space.vinyl:insert{104, "tuple 104"}
+box.space.vinyl:insert{104, 'tuple 104'}
 -
 - [104, 'tuple 104']
 box.space.memtx:select{100}
@@ -1348,34 +1348,34 @@ box.space.vinyl:select{103}
 box.space.vinyl:select{104}
 -
 - [104, 'tuple 104']
-box.space.memtx:insert{105, "tuple 105"}
+box.space.memtx:insert{105, 'tuple 105'}
 -
 - [105, 'tuple 105']
-box.space.memtx:insert{106, "tuple 106"}
+box.space.memtx:insert{106, 'tuple 106'}
 -
 - [106, 'tuple 106']
-box.space.memtx:insert{107, "tuple 107"}
+box.space.memtx:insert{107, 'tuple 107'}
 -
 - [107, 'tuple 107']
-box.space.memtx:insert{108, "tuple 108"}
+box.space.memtx:insert{108, 'tuple 108'}
 -
 - [108, 'tuple 108']
-box.space.memtx:insert{109, "tuple 109"}
+box.space.memtx:insert{109, 'tuple 109'}
 -
 - [109, 'tuple 109']
-box.space.vinyl:insert{105, "tuple 105"}
+box.space.vinyl:insert{105, 'tuple 105'}
 -
 - [105, 'tuple 105']
-box.space.vinyl:insert{106, "tuple 106"}
+box.space.vinyl:insert{106, 'tuple 106'}
 -
 - [106, 'tuple 106']
-box.space.vinyl:insert{107, "tuple 107"}
+box.space.vinyl:insert{107, 'tuple 107'}
 -
 - [107, 'tuple 107']
-box.space.vinyl:insert{108, "tuple 108"}
+box.space.vinyl:insert{108, 'tuple 108'}
 -
 - [108, 'tuple 108']
-box.space.vinyl:insert{109, "tuple 109"}
+box.space.vinyl:insert{109, 'tuple 109'}
 -
 - [109, 'tuple 109']
 box.space.memtx:select{105}
@@ -1414,34 +1414,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{110, "tuple 110"}
+box.space.memtx:insert{110, 'tuple 110'}
 -
 - [110, 'tuple 110']
-box.space.memtx:insert{111, "tuple 111"}
+box.space.memtx:insert{111, 'tuple 111'}
 -
 - [111, 'tuple 111']
-box.space.memtx:insert{112, "tuple 112"}
+box.space.memtx:insert{112, 'tuple 112'}
 -
 - [112, 'tuple 112']
-box.space.memtx:insert{113, "tuple 113"}
+box.space.memtx:insert{113, 'tuple 113'}
 -
 - [113, 'tuple 113']
-box.space.memtx:insert{114, "tuple 114"}
+box.space.memtx:insert{114, 'tuple 114'}
 -
 - [114, 'tuple 114']
-box.space.vinyl:insert{110, "tuple 110"}
+box.space.vinyl:insert{110, 'tuple 110'}
 -
 - [110, 'tuple 110']
-box.space.vinyl:insert{111, "tuple 111"}
+box.space.vinyl:insert{111, 'tuple 111'}
 -
 - [111, 'tuple 111']
-box.space.vinyl:insert{112, "tuple 112"}
+box.space.vinyl:insert{112, 'tuple 112'}
 -
 - [112, 'tuple 112']
-box.space.vinyl:insert{113, "tuple 113"}
+box.space.vinyl:insert{113, 'tuple 113'}
 -
 - [113, 'tuple 113']
-box.space.vinyl:insert{114, "tuple 114"}
+box.space.vinyl:insert{114, 'tuple 114'}
 -
 - [114, 'tuple 114']
 box.space.memtx:select{110}
@@ -1474,34 +1474,34 @@ box.space.vinyl:select{113}
 box.space.vinyl:select{114}
 -
 - [114, 'tuple 114']
-box.space.memtx:insert{115, "tuple 115"}
+box.space.memtx:insert{115, 'tuple 115'}
 -
 - [115, 'tuple 115']
-box.space.memtx:insert{116, "tuple 116"}
+box.space.memtx:insert{116, 'tuple 116'}
 -
 - [116, 'tuple 116']
-box.space.memtx:insert{117, "tuple 117"}
+box.space.memtx:insert{117, 'tuple 117'}
 -
 - [117, 'tuple 117']
-box.space.memtx:insert{118, "tuple 118"}
+box.space.memtx:insert{118, 'tuple 118'}
 -
 - [118, 'tuple 118']
-box.space.memtx:insert{119, "tuple 119"}
+box.space.memtx:insert{119, 'tuple 119'}
 -
 - [119, 'tuple 119']
-box.space.vinyl:insert{115, "tuple 115"}
+box.space.vinyl:insert{115, 'tuple 115'}
 -
 - [115, 'tuple 115']
-box.space.vinyl:insert{116, "tuple 116"}
+box.space.vinyl:insert{116, 'tuple 116'}
 -
 - [116, 'tuple 116']
-box.space.vinyl:insert{117, "tuple 117"}
+box.space.vinyl:insert{117, 'tuple 117'}
 -
 - [117, 'tuple 117']
-box.space.vinyl:insert{118, "tuple 118"}
+box.space.vinyl:insert{118, 'tuple 118'}
 -
 - [118, 'tuple 118']
-box.space.vinyl:insert{119, "tuple 119"}
+box.space.vinyl:insert{119, 'tuple 119'}
 -
 - [119, 'tuple 119']
 box.space.memtx:select{115}
@@ -1541,34 +1541,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 6 iteration
-box.space.memtx:insert{120, "tuple 120"}
+box.space.memtx:insert{120, 'tuple 120'}
 -
 - [120, 'tuple 120']
-box.space.memtx:insert{121, "tuple 121"}
+box.space.memtx:insert{121, 'tuple 121'}
 -
 - [121, 'tuple 121']
-box.space.memtx:insert{122, "tuple 122"}
+box.space.memtx:insert{122, 'tuple 122'}
 -
 - [122, 'tuple 122']
-box.space.memtx:insert{123, "tuple 123"}
+box.space.memtx:insert{123, 'tuple 123'}
 -
 - [123, 'tuple 123']
-box.space.memtx:insert{124, "tuple 124"}
+box.space.memtx:insert{124, 'tuple 124'}
 -
 - [124, 'tuple 124']
-box.space.vinyl:insert{120, "tuple 120"}
+box.space.vinyl:insert{120, 'tuple 120'}
 -
 - [120, 'tuple 120']
-box.space.vinyl:insert{121, "tuple 121"}
+box.space.vinyl:insert{121, 'tuple 121'}
 -
 - [121, 'tuple 121']
-box.space.vinyl:insert{122, "tuple 122"}
+box.space.vinyl:insert{122, 'tuple 122'}
 -
 - [122, 'tuple 122']
-box.space.vinyl:insert{123, "tuple 123"}
+box.space.vinyl:insert{123, 'tuple 123'}
 -
 - [123, 'tuple 123']
-box.space.vinyl:insert{124, "tuple 124"}
+box.space.vinyl:insert{124, 'tuple 124'}
 -
 - [124, 'tuple 124']
 box.space.memtx:select{120}
@@ -1601,34 +1601,34 @@ box.space.vinyl:select{123}
 box.space.vinyl:select{124}
 -
 - [124, 'tuple 124']
-box.space.memtx:insert{125, "tuple 125"}
+box.space.memtx:insert{125, 'tuple 125'}
 -
 - [125, 'tuple 125']
-box.space.memtx:insert{126, "tuple 126"}
+box.space.memtx:insert{126, 'tuple 126'}
 -
 - [126, 'tuple 126']
-box.space.memtx:insert{127, "tuple 127"}
+box.space.memtx:insert{127, 'tuple 127'}
 -
 - [127, 'tuple 127']
-box.space.memtx:insert{128, "tuple 128"}
+box.space.memtx:insert{128, 'tuple 128'}
 -
 - [128, 'tuple 128']
-box.space.memtx:insert{129, "tuple 129"}
+box.space.memtx:insert{129, 'tuple 129'}
 -
 - [129, 'tuple 129']
-box.space.vinyl:insert{125, "tuple 125"}
+box.space.vinyl:insert{125, 'tuple 125'}
 -
 - [125, 'tuple 125']
-box.space.vinyl:insert{126, "tuple 126"}
+box.space.vinyl:insert{126, 'tuple 126'}
 -
 - [126, 'tuple 126']
-box.space.vinyl:insert{127, "tuple 127"}
+box.space.vinyl:insert{127, 'tuple 127'}
 -
 - [127, 'tuple 127']
-box.space.vinyl:insert{128, "tuple 128"}
+box.space.vinyl:insert{128, 'tuple 128'}
 -
 - [128, 'tuple 128']
-box.space.vinyl:insert{129, "tuple 129"}
+box.space.vinyl:insert{129, 'tuple 129'}
 -
 - [129, 'tuple 129']
 box.space.memtx:select{125}
@@ -1667,34 +1667,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{130, "tuple 130"}
+box.space.memtx:insert{130, 'tuple 130'}
 -
 - [130, 'tuple 130']
-box.space.memtx:insert{131, "tuple 131"}
+box.space.memtx:insert{131, 'tuple 131'}
 -
 - [131, 'tuple 131']
-box.space.memtx:insert{132, "tuple 132"}
+box.space.memtx:insert{132, 'tuple 132'}
 -
 - [132, 'tuple 132']
-box.space.memtx:insert{133, "tuple 133"}
+box.space.memtx:insert{133, 'tuple 133'}
 -
 - [133, 'tuple 133']
-box.space.memtx:insert{134, "tuple 134"}
+box.space.memtx:insert{134, 'tuple 134'}
 -
 - [134, 'tuple 134']
-box.space.vinyl:insert{130, "tuple 130"}
+box.space.vinyl:insert{130, 'tuple 130'}
 -
 - [130, 'tuple 130']
-box.space.vinyl:insert{131, "tuple 131"}
+box.space.vinyl:insert{131, 'tuple 131'}
 -
 - [131, 'tuple 131']
-box.space.vinyl:insert{132, "tuple 132"}
+box.space.vinyl:insert{132, 'tuple 132'}
 -
 - [132, 'tuple 132']
-box.space.vinyl:insert{133, "tuple 133"}
+box.space.vinyl:insert{133, 'tuple 133'}
 -
 - [133, 'tuple 133']
-box.space.vinyl:insert{134, "tuple 134"}
+box.space.vinyl:insert{134, 'tuple 134'}
 -
 - [134, 'tuple 134']
 box.space.memtx:select{130}
@@ -1727,34 +1727,34 @@ box.space.vinyl:select{133}
 box.space.vinyl:select{134}
 -
 - [134, 'tuple 134']
-box.space.memtx:insert{135, "tuple 135"}
+box.space.memtx:insert{135, 'tuple 135'}
 -
 - [135, 'tuple 135']
-box.space.memtx:insert{136, "tuple 136"}
+box.space.memtx:insert{136, 'tuple 136'}
 -
 - [136, 'tuple 136']
-box.space.memtx:insert{137, "tuple 137"}
+box.space.memtx:insert{137, 'tuple 137'}
 -
 - [137, 'tuple 137']
-box.space.memtx:insert{138, "tuple 138"}
+box.space.memtx:insert{138, 'tuple 138'}
 -
 - [138, 'tuple 138']
-box.space.memtx:insert{139, "tuple 139"}
+box.space.memtx:insert{139, 'tuple 139'}
 -
 - [139, 'tuple 139']
-box.space.vinyl:insert{135, "tuple 135"}
+box.space.vinyl:insert{135, 'tuple 135'}
 -
 - [135, 'tuple 135']
-box.space.vinyl:insert{136, "tuple 136"}
+box.space.vinyl:insert{136, 'tuple 136'}
 -
 - [136, 'tuple 136']
-box.space.vinyl:insert{137, "tuple 137"}
+box.space.vinyl:insert{137, 'tuple 137'}
 -
 - [137, 'tuple 137']
-box.space.vinyl:insert{138, "tuple 138"}
+box.space.vinyl:insert{138, 'tuple 138'}
 -
 - [138, 'tuple 138']
-box.space.vinyl:insert{139, "tuple 139"}
+box.space.vinyl:insert{139, 'tuple 139'}
 -
 - [139, 'tuple 139']
 box.space.memtx:select{135}
@@ -1794,34 +1794,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 7 iteration
-box.space.memtx:insert{140, "tuple 140"}
+box.space.memtx:insert{140, 'tuple 140'}
 -
 - [140, 'tuple 140']
-box.space.memtx:insert{141, "tuple 141"}
+box.space.memtx:insert{141, 'tuple 141'}
 -
 - [141, 'tuple 141']
-box.space.memtx:insert{142, "tuple 142"}
+box.space.memtx:insert{142, 'tuple 142'}
 -
 - [142, 'tuple 142']
-box.space.memtx:insert{143, "tuple 143"}
+box.space.memtx:insert{143, 'tuple 143'}
 -
 - [143, 'tuple 143']
-box.space.memtx:insert{144, "tuple 144"}
+box.space.memtx:insert{144, 'tuple 144'}
 -
 - [144, 'tuple 144']
-box.space.vinyl:insert{140, "tuple 140"}
+box.space.vinyl:insert{140, 'tuple 140'}
 -
 - [140, 'tuple 140']
-box.space.vinyl:insert{141, "tuple 141"}
+box.space.vinyl:insert{141, 'tuple 141'}
 -
 - [141, 'tuple 141']
-box.space.vinyl:insert{142, "tuple 142"}
+box.space.vinyl:insert{142, 'tuple 142'}
 -
 - [142, 'tuple 142']
-box.space.vinyl:insert{143, "tuple 143"}
+box.space.vinyl:insert{143, 'tuple 143'}
 -
 - [143, 'tuple 143']
-box.space.vinyl:insert{144, "tuple 144"}
+box.space.vinyl:insert{144, 'tuple 144'}
 -
 - [144, 'tuple 144']
 box.space.memtx:select{140}
@@ -1854,34 +1854,34 @@ box.space.vinyl:select{143}
 box.space.vinyl:select{144}
 -
 - [144, 'tuple 144']
-box.space.memtx:insert{145, "tuple 145"}
+box.space.memtx:insert{145, 'tuple 145'}
 -
 - [145, 'tuple 145']
-box.space.memtx:insert{146, "tuple 146"}
+box.space.memtx:insert{146, 'tuple 146'}
 -
 - [146, 'tuple 146']
-box.space.memtx:insert{147, "tuple 147"}
+box.space.memtx:insert{147, 'tuple 147'}
 -
 - [147, 'tuple 147']
-box.space.memtx:insert{148, "tuple 148"}
+box.space.memtx:insert{148, 'tuple 148'}
 -
 - [148, 'tuple 148']
-box.space.memtx:insert{149, "tuple 149"}
+box.space.memtx:insert{149, 'tuple 149'}
 -
 - [149, 'tuple 149']
-box.space.vinyl:insert{145, "tuple 145"}
+box.space.vinyl:insert{145, 'tuple 145'}
 -
 - [145, 'tuple 145']
-box.space.vinyl:insert{146, "tuple 146"}
+box.space.vinyl:insert{146, 'tuple 146'}
 -
 - [146, 'tuple 146']
-box.space.vinyl:insert{147, "tuple 147"}
+box.space.vinyl:insert{147, 'tuple 147'}
 -
 - [147, 'tuple 147']
-box.space.vinyl:insert{148, "tuple 148"}
+box.space.vinyl:insert{148, 'tuple 148'}
 -
 - [148, 'tuple 148']
-box.space.vinyl:insert{149, "tuple 149"}
+box.space.vinyl:insert{149, 'tuple 149'}
 -
 - [149, 'tuple 149']
 box.space.memtx:select{145}
@@ -1920,34 +1920,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{150, "tuple 150"}
+box.space.memtx:insert{150, 'tuple 150'}
 -
 - [150, 'tuple 150']
-box.space.memtx:insert{151, "tuple 151"}
+box.space.memtx:insert{151, 'tuple 151'}
 -
 - [151, 'tuple 151']
-box.space.memtx:insert{152, "tuple 152"}
+box.space.memtx:insert{152, 'tuple 152'}
 -
 - [152, 'tuple 152']
-box.space.memtx:insert{153, "tuple 153"}
+box.space.memtx:insert{153, 'tuple 153'}
 -
 - [153, 'tuple 153']
-box.space.memtx:insert{154, "tuple 154"}
+box.space.memtx:insert{154, 'tuple 154'}
 -
 - [154, 'tuple 154']
-box.space.vinyl:insert{150, "tuple 150"}
+box.space.vinyl:insert{150, 'tuple 150'}
 -
 - [150, 'tuple 150']
-box.space.vinyl:insert{151, "tuple 151"}
+box.space.vinyl:insert{151, 'tuple 151'}
 -
 - [151, 'tuple 151']
-box.space.vinyl:insert{152, "tuple 152"}
+box.space.vinyl:insert{152, 'tuple 152'}
 -
 - [152, 'tuple 152']
-box.space.vinyl:insert{153, "tuple 153"}
+box.space.vinyl:insert{153, 'tuple 153'}
 -
 - [153, 'tuple 153']
-box.space.vinyl:insert{154, "tuple 154"}
+box.space.vinyl:insert{154, 'tuple 154'}
 -
 - [154, 'tuple 154']
 box.space.memtx:select{150}
@@ -1980,34 +1980,34 @@ box.space.vinyl:select{153}
 box.space.vinyl:select{154}
 -
 - [154, 'tuple 154']
-box.space.memtx:insert{155, "tuple 155"}
+box.space.memtx:insert{155, 'tuple 155'}
 -
 - [155, 'tuple 155']
-box.space.memtx:insert{156, "tuple 156"}
+box.space.memtx:insert{156, 'tuple 156'}
 -
 - [156, 'tuple 156']
-box.space.memtx:insert{157, "tuple 157"}
+box.space.memtx:insert{157, 'tuple 157'}
 -
 - [157, 'tuple 157']
-box.space.memtx:insert{158, "tuple 158"}
+box.space.memtx:insert{158, 'tuple 158'}
 -
 - [158, 'tuple 158']
-box.space.memtx:insert{159, "tuple 159"}
+box.space.memtx:insert{159, 'tuple 159'}
 -
 - [159, 'tuple 159']
-box.space.vinyl:insert{155, "tuple 155"}
+box.space.vinyl:insert{155, 'tuple 155'}
 -
 - [155, 'tuple 155']
-box.space.vinyl:insert{156, "tuple 156"}
+box.space.vinyl:insert{156, 'tuple 156'}
 -
 - [156, 'tuple 156']
-box.space.vinyl:insert{157, "tuple 157"}
+box.space.vinyl:insert{157, 'tuple 157'}
 -
 - [157, 'tuple 157']
-box.space.vinyl:insert{158, "tuple 158"}
+box.space.vinyl:insert{158, 'tuple 158'}
 -
 - [158, 'tuple 158']
-box.space.vinyl:insert{159, "tuple 159"}
+box.space.vinyl:insert{159, 'tuple 159'}
 -
 - [159, 'tuple 159']
 box.space.memtx:select{155}
@@ -2047,34 +2047,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 8 iteration
-box.space.memtx:insert{160, "tuple 160"}
+box.space.memtx:insert{160, 'tuple 160'}
 -
 - [160, 'tuple 160']
-box.space.memtx:insert{161, "tuple 161"}
+box.space.memtx:insert{161, 'tuple 161'}
 -
 - [161, 'tuple 161']
-box.space.memtx:insert{162, "tuple 162"}
+box.space.memtx:insert{162, 'tuple 162'}
 -
 - [162, 'tuple 162']
-box.space.memtx:insert{163, "tuple 163"}
+box.space.memtx:insert{163, 'tuple 163'}
 -
 - [163, 'tuple 163']
-box.space.memtx:insert{164, "tuple 164"}
+box.space.memtx:insert{164, 'tuple 164'}
 -
 - [164, 'tuple 164']
-box.space.vinyl:insert{160, "tuple 160"}
+box.space.vinyl:insert{160, 'tuple 160'}
 -
 - [160, 'tuple 160']
-box.space.vinyl:insert{161, "tuple 161"}
+box.space.vinyl:insert{161, 'tuple 161'}
 -
 - [161, 'tuple 161']
-box.space.vinyl:insert{162, "tuple 162"}
+box.space.vinyl:insert{162, 'tuple 162'}
 -
 - [162, 'tuple 162']
-box.space.vinyl:insert{163, "tuple 163"}
+box.space.vinyl:insert{163, 'tuple 163'}
 -
 - [163, 'tuple 163']
-box.space.vinyl:insert{164, "tuple 164"}
+box.space.vinyl:insert{164, 'tuple 164'}
 -
 - [164, 'tuple 164']
 box.space.memtx:select{160}
@@ -2107,34 +2107,34 @@ box.space.vinyl:select{163}
 box.space.vinyl:select{164}
 -
 - [164, 'tuple 164']
-box.space.memtx:insert{165, "tuple 165"}
+box.space.memtx:insert{165, 'tuple 165'}
 -
 - [165, 'tuple 165']
-box.space.memtx:insert{166, "tuple 166"}
+box.space.memtx:insert{166, 'tuple 166'}
 -
 - [166, 'tuple 166']
-box.space.memtx:insert{167, "tuple 167"}
+box.space.memtx:insert{167, 'tuple 167'}
 -
 - [167, 'tuple 167']
-box.space.memtx:insert{168, "tuple 168"}
+box.space.memtx:insert{168, 'tuple 168'}
 -
 - [168, 'tuple 168']
-box.space.memtx:insert{169, "tuple 169"}
+box.space.memtx:insert{169, 'tuple 169'}
 -
 - [169, 'tuple 169']
-box.space.vinyl:insert{165, "tuple 165"}
+box.space.vinyl:insert{165, 'tuple 165'}
 -
 - [165, 'tuple 165']
-box.space.vinyl:insert{166, "tuple 166"}
+box.space.vinyl:insert{166, 'tuple 166'}
 -
 - [166, 'tuple 166']
-box.space.vinyl:insert{167, "tuple 167"}
+box.space.vinyl:insert{167, 'tuple 167'}
 -
 - [167, 'tuple 167']
-box.space.vinyl:insert{168, "tuple 168"}
+box.space.vinyl:insert{168, 'tuple 168'}
 -
 - [168, 'tuple 168']
-box.space.vinyl:insert{169, "tuple 169"}
+box.space.vinyl:insert{169, 'tuple 169'}
 -
 - [169, 'tuple 169']
 box.space.memtx:select{165}
@@ -2173,34 +2173,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{170, "tuple 170"}
+box.space.memtx:insert{170, 'tuple 170'}
 -
 - [170, 'tuple 170']
-box.space.memtx:insert{171, "tuple 171"}
+box.space.memtx:insert{171, 'tuple 171'}
 -
 - [171, 'tuple 171']
-box.space.memtx:insert{172, "tuple 172"}
+box.space.memtx:insert{172, 'tuple 172'}
 -
 - [172, 'tuple 172']
-box.space.memtx:insert{173, "tuple 173"}
+box.space.memtx:insert{173, 'tuple 173'}
 -
 - [173, 'tuple 173']
-box.space.memtx:insert{174, "tuple 174"}
+box.space.memtx:insert{174, 'tuple 174'}
 -
 - [174, 'tuple 174']
-box.space.vinyl:insert{170, "tuple 170"}
+box.space.vinyl:insert{170, 'tuple 170'}
 -
 - [170, 'tuple 170']
-box.space.vinyl:insert{171, "tuple 171"}
+box.space.vinyl:insert{171, 'tuple 171'}
 -
 - [171, 'tuple 171']
-box.space.vinyl:insert{172, "tuple 172"}
+box.space.vinyl:insert{172, 'tuple 172'}
 -
 - [172, 'tuple 172']
-box.space.vinyl:insert{173, "tuple 173"}
+box.space.vinyl:insert{173, 'tuple 173'}
 -
 - [173, 'tuple 173']
-box.space.vinyl:insert{174, "tuple 174"}
+box.space.vinyl:insert{174, 'tuple 174'}
 -
 - [174, 'tuple 174']
 box.space.memtx:select{170}
@@ -2233,34 +2233,34 @@ box.space.vinyl:select{173}
 box.space.vinyl:select{174}
 -
 - [174, 'tuple 174']
-box.space.memtx:insert{175, "tuple 175"}
+box.space.memtx:insert{175, 'tuple 175'}
 -
 - [175, 'tuple 175']
-box.space.memtx:insert{176, "tuple 176"}
+box.space.memtx:insert{176, 'tuple 176'}
 -
 - [176, 'tuple 176']
-box.space.memtx:insert{177, "tuple 177"}
+box.space.memtx:insert{177, 'tuple 177'}
 -
 - [177, 'tuple 177']
-box.space.memtx:insert{178, "tuple 178"}
+box.space.memtx:insert{178, 'tuple 178'}
 -
 - [178, 'tuple 178']
-box.space.memtx:insert{179, "tuple 179"}
+box.space.memtx:insert{179, 'tuple 179'}
 -
 - [179, 'tuple 179']
-box.space.vinyl:insert{175, "tuple 175"}
+box.space.vinyl:insert{175, 'tuple 175'}
 -
 - [175, 'tuple 175']
-box.space.vinyl:insert{176, "tuple 176"}
+box.space.vinyl:insert{176, 'tuple 176'}
 -
 - [176, 'tuple 176']
-box.space.vinyl:insert{177, "tuple 177"}
+box.space.vinyl:insert{177, 'tuple 177'}
 -
 - [177, 'tuple 177']
-box.space.vinyl:insert{178, "tuple 178"}
+box.space.vinyl:insert{178, 'tuple 178'}
 -
 - [178, 'tuple 178']
-box.space.vinyl:insert{179, "tuple 179"}
+box.space.vinyl:insert{179, 'tuple 179'}
 -
 - [179, 'tuple 179']
 box.space.memtx:select{175}
@@ -2300,34 +2300,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 9 iteration
-box.space.memtx:insert{180, "tuple 180"}
+box.space.memtx:insert{180, 'tuple 180'}
 -
 - [180, 'tuple 180']
-box.space.memtx:insert{181, "tuple 181"}
+box.space.memtx:insert{181, 'tuple 181'}
 -
 - [181, 'tuple 181']
-box.space.memtx:insert{182, "tuple 182"}
+box.space.memtx:insert{182, 'tuple 182'}
 -
 - [182, 'tuple 182']
-box.space.memtx:insert{183, "tuple 183"}
+box.space.memtx:insert{183, 'tuple 183'}
 -
 - [183, 'tuple 183']
-box.space.memtx:insert{184, "tuple 184"}
+box.space.memtx:insert{184, 'tuple 184'}
 -
 - [184, 'tuple 184']
-box.space.vinyl:insert{180, "tuple 180"}
+box.space.vinyl:insert{180, 'tuple 180'}
 -
 - [180, 'tuple 180']
-box.space.vinyl:insert{181, "tuple 181"}
+box.space.vinyl:insert{181, 'tuple 181'}
 -
 - [181, 'tuple 181']
-box.space.vinyl:insert{182, "tuple 182"}
+box.space.vinyl:insert{182, 'tuple 182'}
 -
 - [182, 'tuple 182']
-box.space.vinyl:insert{183, "tuple 183"}
+box.space.vinyl:insert{183, 'tuple 183'}
 -
 - [183, 'tuple 183']
-box.space.vinyl:insert{184, "tuple 184"}
+box.space.vinyl:insert{184, 'tuple 184'}
 -
 - [184, 'tuple 184']
 box.space.memtx:select{180}
@@ -2360,34 +2360,34 @@ box.space.vinyl:select{183}
 box.space.vinyl:select{184}
 -
 - [184, 'tuple 184']
-box.space.memtx:insert{185, "tuple 185"}
+box.space.memtx:insert{185, 'tuple 185'}
 -
 - [185, 'tuple 185']
-box.space.memtx:insert{186, "tuple 186"}
+box.space.memtx:insert{186, 'tuple 186'}
 -
 - [186, 'tuple 186']
-box.space.memtx:insert{187, "tuple 187"}
+box.space.memtx:insert{187, 'tuple 187'}
 -
 - [187, 'tuple 187']
-box.space.memtx:insert{188, "tuple 188"}
+box.space.memtx:insert{188, 'tuple 188'}
 -
 - [188, 'tuple 188']
-box.space.memtx:insert{189, "tuple 189"}
+box.space.memtx:insert{189, 'tuple 189'}
 -
 - [189, 'tuple 189']
-box.space.vinyl:insert{185, "tuple 185"}
+box.space.vinyl:insert{185, 'tuple 185'}
 -
 - [185, 'tuple 185']
-box.space.vinyl:insert{186, "tuple 186"}
+box.space.vinyl:insert{186, 'tuple 186'}
 -
 - [186, 'tuple 186']
-box.space.vinyl:insert{187, "tuple 187"}
+box.space.vinyl:insert{187, 'tuple 187'}
 -
 - [187, 'tuple 187']
-box.space.vinyl:insert{188, "tuple 188"}
+box.space.vinyl:insert{188, 'tuple 188'}
 -
 - [188, 'tuple 188']
-box.space.vinyl:insert{189, "tuple 189"}
+box.space.vinyl:insert{189, 'tuple 189'}
 -
 - [189, 'tuple 189']
 box.space.memtx:select{185}
@@ -2426,34 +2426,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{190, "tuple 190"}
+box.space.memtx:insert{190, 'tuple 190'}
 -
 - [190, 'tuple 190']
-box.space.memtx:insert{191, "tuple 191"}
+box.space.memtx:insert{191, 'tuple 191'}
 -
 - [191, 'tuple 191']
-box.space.memtx:insert{192, "tuple 192"}
+box.space.memtx:insert{192, 'tuple 192'}
 -
 - [192, 'tuple 192']
-box.space.memtx:insert{193, "tuple 193"}
+box.space.memtx:insert{193, 'tuple 193'}
 -
 - [193, 'tuple 193']
-box.space.memtx:insert{194, "tuple 194"}
+box.space.memtx:insert{194, 'tuple 194'}
 -
 - [194, 'tuple 194']
-box.space.vinyl:insert{190, "tuple 190"}
+box.space.vinyl:insert{190, 'tuple 190'}
 -
 - [190, 'tuple 190']
-box.space.vinyl:insert{191, "tuple 191"}
+box.space.vinyl:insert{191, 'tuple 191'}
 -
 - [191, 'tuple 191']
-box.space.vinyl:insert{192, "tuple 192"}
+box.space.vinyl:insert{192, 'tuple 192'}
 -
 - [192, 'tuple 192']
-box.space.vinyl:insert{193, "tuple 193"}
+box.space.vinyl:insert{193, 'tuple 193'}
 -
 - [193, 'tuple 193']
-box.space.vinyl:insert{194, "tuple 194"}
+box.space.vinyl:insert{194, 'tuple 194'}
 -
 - [194, 'tuple 194']
 box.space.memtx:select{190}
@@ -2486,34 +2486,34 @@ box.space.vinyl:select{193}
 box.space.vinyl:select{194}
 -
 - [194, 'tuple 194']
-box.space.memtx:insert{195, "tuple 195"}
+box.space.memtx:insert{195, 'tuple 195'}
 -
 - [195, 'tuple 195']
-box.space.memtx:insert{196, "tuple 196"}
+box.space.memtx:insert{196, 'tuple 196'}
 -
 - [196, 'tuple 196']
-box.space.memtx:insert{197, "tuple 197"}
+box.space.memtx:insert{197, 'tuple 197'}
 -
 - [197, 'tuple 197']
-box.space.memtx:insert{198, "tuple 198"}
+box.space.memtx:insert{198, 'tuple 198'}
 -
 - [198, 'tuple 198']
-box.space.memtx:insert{199, "tuple 199"}
+box.space.memtx:insert{199, 'tuple 199'}
 -
 - [199, 'tuple 199']
-box.space.vinyl:insert{195, "tuple 195"}
+box.space.vinyl:insert{195, 'tuple 195'}
 -
 - [195, 'tuple 195']
-box.space.vinyl:insert{196, "tuple 196"}
+box.space.vinyl:insert{196, 'tuple 196'}
 -
 - [196, 'tuple 196']
-box.space.vinyl:insert{197, "tuple 197"}
+box.space.vinyl:insert{197, 'tuple 197'}
 -
 - [197, 'tuple 197']
-box.space.vinyl:insert{198, "tuple 198"}
+box.space.vinyl:insert{198, 'tuple 198'}
 -
 - [198, 'tuple 198']
-box.space.vinyl:insert{199, "tuple 199"}
+box.space.vinyl:insert{199, 'tuple 199'}
 -
 - [199, 'tuple 199']
 box.space.memtx:select{195}
@@ -2553,34 +2553,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 10 iteration
-box.space.memtx:insert{200, "tuple 200"}
+box.space.memtx:insert{200, 'tuple 200'}
 -
 - [200, 'tuple 200']
-box.space.memtx:insert{201, "tuple 201"}
+box.space.memtx:insert{201, 'tuple 201'}
 -
 - [201, 'tuple 201']
-box.space.memtx:insert{202, "tuple 202"}
+box.space.memtx:insert{202, 'tuple 202'}
 -
 - [202, 'tuple 202']
-box.space.memtx:insert{203, "tuple 203"}
+box.space.memtx:insert{203, 'tuple 203'}
 -
 - [203, 'tuple 203']
-box.space.memtx:insert{204, "tuple 204"}
+box.space.memtx:insert{204, 'tuple 204'}
 -
 - [204, 'tuple 204']
-box.space.vinyl:insert{200, "tuple 200"}
+box.space.vinyl:insert{200, 'tuple 200'}
 -
 - [200, 'tuple 200']
-box.space.vinyl:insert{201, "tuple 201"}
+box.space.vinyl:insert{201, 'tuple 201'}
 -
 - [201, 'tuple 201']
-box.space.vinyl:insert{202, "tuple 202"}
+box.space.vinyl:insert{202, 'tuple 202'}
 -
 - [202, 'tuple 202']
-box.space.vinyl:insert{203, "tuple 203"}
+box.space.vinyl:insert{203, 'tuple 203'}
 -
 - [203, 'tuple 203']
-box.space.vinyl:insert{204, "tuple 204"}
+box.space.vinyl:insert{204, 'tuple 204'}
 -
 - [204, 'tuple 204']
 box.space.memtx:select{200}
@@ -2613,34 +2613,34 @@ box.space.vinyl:select{203}
 box.space.vinyl:select{204}
 -
 - [204, 'tuple 204']
-box.space.memtx:insert{205, "tuple 205"}
+box.space.memtx:insert{205, 'tuple 205'}
 -
 - [205, 'tuple 205']
-box.space.memtx:insert{206, "tuple 206"}
+box.space.memtx:insert{206, 'tuple 206'}
 -
 - [206, 'tuple 206']
-box.space.memtx:insert{207, "tuple 207"}
+box.space.memtx:insert{207, 'tuple 207'}
 -
 - [207, 'tuple 207']
-box.space.memtx:insert{208, "tuple 208"}
+box.space.memtx:insert{208, 'tuple 208'}
 -
 - [208, 'tuple 208']
-box.space.memtx:insert{209, "tuple 209"}
+box.space.memtx:insert{209, 'tuple 209'}
 -
 - [209, 'tuple 209']
-box.space.vinyl:insert{205, "tuple 205"}
+box.space.vinyl:insert{205, 'tuple 205'}
 -
 - [205, 'tuple 205']
-box.space.vinyl:insert{206, "tuple 206"}
+box.space.vinyl:insert{206, 'tuple 206'}
 -
 - [206, 'tuple 206']
-box.space.vinyl:insert{207, "tuple 207"}
+box.space.vinyl:insert{207, 'tuple 207'}
 -
 - [207, 'tuple 207']
-box.space.vinyl:insert{208, "tuple 208"}
+box.space.vinyl:insert{208, 'tuple 208'}
 -
 - [208, 'tuple 208']
-box.space.vinyl:insert{209, "tuple 209"}
+box.space.vinyl:insert{209, 'tuple 209'}
 -
 - [209, 'tuple 209']
 box.space.memtx:select{205}
@@ -2679,34 +2679,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{210, "tuple 210"}
+box.space.memtx:insert{210, 'tuple 210'}
 -
 - [210, 'tuple 210']
-box.space.memtx:insert{211, "tuple 211"}
+box.space.memtx:insert{211, 'tuple 211'}
 -
 - [211, 'tuple 211']
-box.space.memtx:insert{212, "tuple 212"}
+box.space.memtx:insert{212, 'tuple 212'}
 -
 - [212, 'tuple 212']
-box.space.memtx:insert{213, "tuple 213"}
+box.space.memtx:insert{213, 'tuple 213'}
 -
 - [213, 'tuple 213']
-box.space.memtx:insert{214, "tuple 214"}
+box.space.memtx:insert{214, 'tuple 214'}
 -
 - [214, 'tuple 214']
-box.space.vinyl:insert{210, "tuple 210"}
+box.space.vinyl:insert{210, 'tuple 210'}
 -
 - [210, 'tuple 210']
-box.space.vinyl:insert{211, "tuple 211"}
+box.space.vinyl:insert{211, 'tuple 211'}
 -
 - [211, 'tuple 211']
-box.space.vinyl:insert{212, "tuple 212"}
+box.space.vinyl:insert{212, 'tuple 212'}
 -
 - [212, 'tuple 212']
-box.space.vinyl:insert{213, "tuple 213"}
+box.space.vinyl:insert{213, 'tuple 213'}
 -
 - [213, 'tuple 213']
-box.space.vinyl:insert{214, "tuple 214"}
+box.space.vinyl:insert{214, 'tuple 214'}
 -
 - [214, 'tuple 214']
 box.space.memtx:select{210}
@@ -2739,34 +2739,34 @@ box.space.vinyl:select{213}
 box.space.vinyl:select{214}
 -
 - [214, 'tuple 214']
-box.space.memtx:insert{215, "tuple 215"}
+box.space.memtx:insert{215, 'tuple 215'}
 -
 - [215, 'tuple 215']
-box.space.memtx:insert{216, "tuple 216"}
+box.space.memtx:insert{216, 'tuple 216'}
 -
 - [216, 'tuple 216']
-box.space.memtx:insert{217, "tuple 217"}
+box.space.memtx:insert{217, 'tuple 217'}
 -
 - [217, 'tuple 217']
-box.space.memtx:insert{218, "tuple 218"}
+box.space.memtx:insert{218, 'tuple 218'}
 -
 - [218, 'tuple 218']
-box.space.memtx:insert{219, "tuple 219"}
+box.space.memtx:insert{219, 'tuple 219'}
 -
 - [219, 'tuple 219']
-box.space.vinyl:insert{215, "tuple 215"}
+box.space.vinyl:insert{215, 'tuple 215'}
 -
 - [215, 'tuple 215']
-box.space.vinyl:insert{216, "tuple 216"}
+box.space.vinyl:insert{216, 'tuple 216'}
 -
 - [216, 'tuple 216']
-box.space.vinyl:insert{217, "tuple 217"}
+box.space.vinyl:insert{217, 'tuple 217'}
 -
 - [217, 'tuple 217']
-box.space.vinyl:insert{218, "tuple 218"}
+box.space.vinyl:insert{218, 'tuple 218'}
 -
 - [218, 'tuple 218']
-box.space.vinyl:insert{219, "tuple 219"}
+box.space.vinyl:insert{219, 'tuple 219'}
 -
 - [219, 'tuple 219']
 box.space.memtx:select{215}
@@ -2806,34 +2806,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 11 iteration
-box.space.memtx:insert{220, "tuple 220"}
+box.space.memtx:insert{220, 'tuple 220'}
 -
 - [220, 'tuple 220']
-box.space.memtx:insert{221, "tuple 221"}
+box.space.memtx:insert{221, 'tuple 221'}
 -
 - [221, 'tuple 221']
-box.space.memtx:insert{222, "tuple 222"}
+box.space.memtx:insert{222, 'tuple 222'}
 -
 - [222, 'tuple 222']
-box.space.memtx:insert{223, "tuple 223"}
+box.space.memtx:insert{223, 'tuple 223'}
 -
 - [223, 'tuple 223']
-box.space.memtx:insert{224, "tuple 224"}
+box.space.memtx:insert{224, 'tuple 224'}
 -
 - [224, 'tuple 224']
-box.space.vinyl:insert{220, "tuple 220"}
+box.space.vinyl:insert{220, 'tuple 220'}
 -
 - [220, 'tuple 220']
-box.space.vinyl:insert{221, "tuple 221"}
+box.space.vinyl:insert{221, 'tuple 221'}
 -
 - [221, 'tuple 221']
-box.space.vinyl:insert{222, "tuple 222"}
+box.space.vinyl:insert{222, 'tuple 222'}
 -
 - [222, 'tuple 222']
-box.space.vinyl:insert{223, "tuple 223"}
+box.space.vinyl:insert{223, 'tuple 223'}
 -
 - [223, 'tuple 223']
-box.space.vinyl:insert{224, "tuple 224"}
+box.space.vinyl:insert{224, 'tuple 224'}
 -
 - [224, 'tuple 224']
 box.space.memtx:select{220}
@@ -2866,34 +2866,34 @@ box.space.vinyl:select{223}
 box.space.vinyl:select{224}
 -
 - [224, 'tuple 224']
-box.space.memtx:insert{225, "tuple 225"}
+box.space.memtx:insert{225, 'tuple 225'}
 -
 - [225, 'tuple 225']
-box.space.memtx:insert{226, "tuple 226"}
+box.space.memtx:insert{226, 'tuple 226'}
 -
 - [226, 'tuple 226']
-box.space.memtx:insert{227, "tuple 227"}
+box.space.memtx:insert{227, 'tuple 227'}
 -
 - [227, 'tuple 227']
-box.space.memtx:insert{228, "tuple 228"}
+box.space.memtx:insert{228, 'tuple 228'}
 -
 - [228, 'tuple 228']
-box.space.memtx:insert{229, "tuple 229"}
+box.space.memtx:insert{229, 'tuple 229'}
 -
 - [229, 'tuple 229']
-box.space.vinyl:insert{225, "tuple 225"}
+box.space.vinyl:insert{225, 'tuple 225'}
 -
 - [225, 'tuple 225']
-box.space.vinyl:insert{226, "tuple 226"}
+box.space.vinyl:insert{226, 'tuple 226'}
 -
 - [226, 'tuple 226']
-box.space.vinyl:insert{227, "tuple 227"}
+box.space.vinyl:insert{227, 'tuple 227'}
 -
 - [227, 'tuple 227']
-box.space.vinyl:insert{228, "tuple 228"}
+box.space.vinyl:insert{228, 'tuple 228'}
 -
 - [228, 'tuple 228']
-box.space.vinyl:insert{229, "tuple 229"}
+box.space.vinyl:insert{229, 'tuple 229'}
 -
 - [229, 'tuple 229']
 box.space.memtx:select{225}
@@ -2932,34 +2932,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{230, "tuple 230"}
+box.space.memtx:insert{230, 'tuple 230'}
 -
 - [230, 'tuple 230']
-box.space.memtx:insert{231, "tuple 231"}
+box.space.memtx:insert{231, 'tuple 231'}
 -
 - [231, 'tuple 231']
-box.space.memtx:insert{232, "tuple 232"}
+box.space.memtx:insert{232, 'tuple 232'}
 -
 - [232, 'tuple 232']
-box.space.memtx:insert{233, "tuple 233"}
+box.space.memtx:insert{233, 'tuple 233'}
 -
 - [233, 'tuple 233']
-box.space.memtx:insert{234, "tuple 234"}
+box.space.memtx:insert{234, 'tuple 234'}
 -
 - [234, 'tuple 234']
-box.space.vinyl:insert{230, "tuple 230"}
+box.space.vinyl:insert{230, 'tuple 230'}
 -
 - [230, 'tuple 230']
-box.space.vinyl:insert{231, "tuple 231"}
+box.space.vinyl:insert{231, 'tuple 231'}
 -
 - [231, 'tuple 231']
-box.space.vinyl:insert{232, "tuple 232"}
+box.space.vinyl:insert{232, 'tuple 232'}
 -
 - [232, 'tuple 232']
-box.space.vinyl:insert{233, "tuple 233"}
+box.space.vinyl:insert{233, 'tuple 233'}
 -
 - [233, 'tuple 233']
-box.space.vinyl:insert{234, "tuple 234"}
+box.space.vinyl:insert{234, 'tuple 234'}
 -
 - [234, 'tuple 234']
 box.space.memtx:select{230}
@@ -2992,34 +2992,34 @@ box.space.vinyl:select{233}
 box.space.vinyl:select{234}
 -
 - [234, 'tuple 234']
-box.space.memtx:insert{235, "tuple 235"}
+box.space.memtx:insert{235, 'tuple 235'}
 -
 - [235, 'tuple 235']
-box.space.memtx:insert{236, "tuple 236"}
+box.space.memtx:insert{236, 'tuple 236'}
 -
 - [236, 'tuple 236']
-box.space.memtx:insert{237, "tuple 237"}
+box.space.memtx:insert{237, 'tuple 237'}
 -
 - [237, 'tuple 237']
-box.space.memtx:insert{238, "tuple 238"}
+box.space.memtx:insert{238, 'tuple 238'}
 -
 - [238, 'tuple 238']
-box.space.memtx:insert{239, "tuple 239"}
+box.space.memtx:insert{239, 'tuple 239'}
 -
 - [239, 'tuple 239']
-box.space.vinyl:insert{235, "tuple 235"}
+box.space.vinyl:insert{235, 'tuple 235'}
 -
 - [235, 'tuple 235']
-box.space.vinyl:insert{236, "tuple 236"}
+box.space.vinyl:insert{236, 'tuple 236'}
 -
 - [236, 'tuple 236']
-box.space.vinyl:insert{237, "tuple 237"}
+box.space.vinyl:insert{237, 'tuple 237'}
 -
 - [237, 'tuple 237']
-box.space.vinyl:insert{238, "tuple 238"}
+box.space.vinyl:insert{238, 'tuple 238'}
 -
 - [238, 'tuple 238']
-box.space.vinyl:insert{239, "tuple 239"}
+box.space.vinyl:insert{239, 'tuple 239'}
 -
 - [239, 'tuple 239']
 box.space.memtx:select{235}
@@ -3059,34 +3059,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 12 iteration
-box.space.memtx:insert{240, "tuple 240"}
+box.space.memtx:insert{240, 'tuple 240'}
 -
 - [240, 'tuple 240']
-box.space.memtx:insert{241, "tuple 241"}
+box.space.memtx:insert{241, 'tuple 241'}
 -
 - [241, 'tuple 241']
-box.space.memtx:insert{242, "tuple 242"}
+box.space.memtx:insert{242, 'tuple 242'}
 -
 - [242, 'tuple 242']
-box.space.memtx:insert{243, "tuple 243"}
+box.space.memtx:insert{243, 'tuple 243'}
 -
 - [243, 'tuple 243']
-box.space.memtx:insert{244, "tuple 244"}
+box.space.memtx:insert{244, 'tuple 244'}
 -
 - [244, 'tuple 244']
-box.space.vinyl:insert{240, "tuple 240"}
+box.space.vinyl:insert{240, 'tuple 240'}
 -
 - [240, 'tuple 240']
-box.space.vinyl:insert{241, "tuple 241"}
+box.space.vinyl:insert{241, 'tuple 241'}
 -
 - [241, 'tuple 241']
-box.space.vinyl:insert{242, "tuple 242"}
+box.space.vinyl:insert{242, 'tuple 242'}
 -
 - [242, 'tuple 242']
-box.space.vinyl:insert{243, "tuple 243"}
+box.space.vinyl:insert{243, 'tuple 243'}
 -
 - [243, 'tuple 243']
-box.space.vinyl:insert{244, "tuple 244"}
+box.space.vinyl:insert{244, 'tuple 244'}
 -
 - [244, 'tuple 244']
 box.space.memtx:select{240}
@@ -3119,34 +3119,34 @@ box.space.vinyl:select{243}
 box.space.vinyl:select{244}
 -
 - [244, 'tuple 244']
-box.space.memtx:insert{245, "tuple 245"}
+box.space.memtx:insert{245, 'tuple 245'}
 -
 - [245, 'tuple 245']
-box.space.memtx:insert{246, "tuple 246"}
+box.space.memtx:insert{246, 'tuple 246'}
 -
 - [246, 'tuple 246']
-box.space.memtx:insert{247, "tuple 247"}
+box.space.memtx:insert{247, 'tuple 247'}
 -
 - [247, 'tuple 247']
-box.space.memtx:insert{248, "tuple 248"}
+box.space.memtx:insert{248, 'tuple 248'}
 -
 - [248, 'tuple 248']
-box.space.memtx:insert{249, "tuple 249"}
+box.space.memtx:insert{249, 'tuple 249'}
 -
 - [249, 'tuple 249']
-box.space.vinyl:insert{245, "tuple 245"}
+box.space.vinyl:insert{245, 'tuple 245'}
 -
 - [245, 'tuple 245']
-box.space.vinyl:insert{246, "tuple 246"}
+box.space.vinyl:insert{246, 'tuple 246'}
 -
 - [246, 'tuple 246']
-box.space.vinyl:insert{247, "tuple 247"}
+box.space.vinyl:insert{247, 'tuple 247'}
 -
 - [247, 'tuple 247']
-box.space.vinyl:insert{248, "tuple 248"}
+box.space.vinyl:insert{248, 'tuple 248'}
 -
 - [248, 'tuple 248']
-box.space.vinyl:insert{249, "tuple 249"}
+box.space.vinyl:insert{249, 'tuple 249'}
 -
 - [249, 'tuple 249']
 box.space.memtx:select{245}
@@ -3185,34 +3185,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{250, "tuple 250"}
+box.space.memtx:insert{250, 'tuple 250'}
 -
 - [250, 'tuple 250']
-box.space.memtx:insert{251, "tuple 251"}
+box.space.memtx:insert{251, 'tuple 251'}
 -
 - [251, 'tuple 251']
-box.space.memtx:insert{252, "tuple 252"}
+box.space.memtx:insert{252, 'tuple 252'}
 -
 - [252, 'tuple 252']
-box.space.memtx:insert{253, "tuple 253"}
+box.space.memtx:insert{253, 'tuple 253'}
 -
 - [253, 'tuple 253']
-box.space.memtx:insert{254, "tuple 254"}
+box.space.memtx:insert{254, 'tuple 254'}
 -
 - [254, 'tuple 254']
-box.space.vinyl:insert{250, "tuple 250"}
+box.space.vinyl:insert{250, 'tuple 250'}
 -
 - [250, 'tuple 250']
-box.space.vinyl:insert{251, "tuple 251"}
+box.space.vinyl:insert{251, 'tuple 251'}
 -
 - [251, 'tuple 251']
-box.space.vinyl:insert{252, "tuple 252"}
+box.space.vinyl:insert{252, 'tuple 252'}
 -
 - [252, 'tuple 252']
-box.space.vinyl:insert{253, "tuple 253"}
+box.space.vinyl:insert{253, 'tuple 253'}
 -
 - [253, 'tuple 253']
-box.space.vinyl:insert{254, "tuple 254"}
+box.space.vinyl:insert{254, 'tuple 254'}
 -
 - [254, 'tuple 254']
 box.space.memtx:select{250}
@@ -3245,34 +3245,34 @@ box.space.vinyl:select{253}
 box.space.vinyl:select{254}
 -
 - [254, 'tuple 254']
-box.space.memtx:insert{255, "tuple 255"}
+box.space.memtx:insert{255, 'tuple 255'}
 -
 - [255, 'tuple 255']
-box.space.memtx:insert{256, "tuple 256"}
+box.space.memtx:insert{256, 'tuple 256'}
 -
 - [256, 'tuple 256']
-box.space.memtx:insert{257, "tuple 257"}
+box.space.memtx:insert{257, 'tuple 257'}
 -
 - [257, 'tuple 257']
-box.space.memtx:insert{258, "tuple 258"}
+box.space.memtx:insert{258, 'tuple 258'}
 -
 - [258, 'tuple 258']
-box.space.memtx:insert{259, "tuple 259"}
+box.space.memtx:insert{259, 'tuple 259'}
 -
 - [259, 'tuple 259']
-box.space.vinyl:insert{255, "tuple 255"}
+box.space.vinyl:insert{255, 'tuple 255'}
 -
 - [255, 'tuple 255']
-box.space.vinyl:insert{256, "tuple 256"}
+box.space.vinyl:insert{256, 'tuple 256'}
 -
 - [256, 'tuple 256']
-box.space.vinyl:insert{257, "tuple 257"}
+box.space.vinyl:insert{257, 'tuple 257'}
 -
 - [257, 'tuple 257']
-box.space.vinyl:insert{258, "tuple 258"}
+box.space.vinyl:insert{258, 'tuple 258'}
 -
 - [258, 'tuple 258']
-box.space.vinyl:insert{259, "tuple 259"}
+box.space.vinyl:insert{259, 'tuple 259'}
 -
 - [259, 'tuple 259']
 box.space.memtx:select{255}
@@ -3312,34 +3312,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 13 iteration
-box.space.memtx:insert{260, "tuple 260"}
+box.space.memtx:insert{260, 'tuple 260'}
 -
 - [260, 'tuple 260']
-box.space.memtx:insert{261, "tuple 261"}
+box.space.memtx:insert{261, 'tuple 261'}
 -
 - [261, 'tuple 261']
-box.space.memtx:insert{262, "tuple 262"}
+box.space.memtx:insert{262, 'tuple 262'}
 -
 - [262, 'tuple 262']
-box.space.memtx:insert{263, "tuple 263"}
+box.space.memtx:insert{263, 'tuple 263'}
 -
 - [263, 'tuple 263']
-box.space.memtx:insert{264, "tuple 264"}
+box.space.memtx:insert{264, 'tuple 264'}
 -
 - [264, 'tuple 264']
-box.space.vinyl:insert{260, "tuple 260"}
+box.space.vinyl:insert{260, 'tuple 260'}
 -
 - [260, 'tuple 260']
-box.space.vinyl:insert{261, "tuple 261"}
+box.space.vinyl:insert{261, 'tuple 261'}
 -
 - [261, 'tuple 261']
-box.space.vinyl:insert{262, "tuple 262"}
+box.space.vinyl:insert{262, 'tuple 262'}
 -
 - [262, 'tuple 262']
-box.space.vinyl:insert{263, "tuple 263"}
+box.space.vinyl:insert{263, 'tuple 263'}
 -
 - [263, 'tuple 263']
-box.space.vinyl:insert{264, "tuple 264"}
+box.space.vinyl:insert{264, 'tuple 264'}
 -
 - [264, 'tuple 264']
 box.space.memtx:select{260}
@@ -3372,34 +3372,34 @@ box.space.vinyl:select{263}
 box.space.vinyl:select{264}
 -
 - [264, 'tuple 264']
-box.space.memtx:insert{265, "tuple 265"}
+box.space.memtx:insert{265, 'tuple 265'}
 -
 - [265, 'tuple 265']
-box.space.memtx:insert{266, "tuple 266"}
+box.space.memtx:insert{266, 'tuple 266'}
 -
 - [266, 'tuple 266']
-box.space.memtx:insert{267, "tuple 267"}
+box.space.memtx:insert{267, 'tuple 267'}
 -
 - [267, 'tuple 267']
-box.space.memtx:insert{268, "tuple 268"}
+box.space.memtx:insert{268, 'tuple 268'}
 -
 - [268, 'tuple 268']
-box.space.memtx:insert{269, "tuple 269"}
+box.space.memtx:insert{269, 'tuple 269'}
 -
 - [269, 'tuple 269']
-box.space.vinyl:insert{265, "tuple 265"}
+box.space.vinyl:insert{265, 'tuple 265'}
 -
 - [265, 'tuple 265']
-box.space.vinyl:insert{266, "tuple 266"}
+box.space.vinyl:insert{266, 'tuple 266'}
 -
 - [266, 'tuple 266']
-box.space.vinyl:insert{267, "tuple 267"}
+box.space.vinyl:insert{267, 'tuple 267'}
 -
 - [267, 'tuple 267']
-box.space.vinyl:insert{268, "tuple 268"}
+box.space.vinyl:insert{268, 'tuple 268'}
 -
 - [268, 'tuple 268']
-box.space.vinyl:insert{269, "tuple 269"}
+box.space.vinyl:insert{269, 'tuple 269'}
 -
 - [269, 'tuple 269']
 box.space.memtx:select{265}
@@ -3438,34 +3438,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{270, "tuple 270"}
+box.space.memtx:insert{270, 'tuple 270'}
 -
 - [270, 'tuple 270']
-box.space.memtx:insert{271, "tuple 271"}
+box.space.memtx:insert{271, 'tuple 271'}
 -
 - [271, 'tuple 271']
-box.space.memtx:insert{272, "tuple 272"}
+box.space.memtx:insert{272, 'tuple 272'}
 -
 - [272, 'tuple 272']
-box.space.memtx:insert{273, "tuple 273"}
+box.space.memtx:insert{273, 'tuple 273'}
 -
 - [273, 'tuple 273']
-box.space.memtx:insert{274, "tuple 274"}
+box.space.memtx:insert{274, 'tuple 274'}
 -
 - [274, 'tuple 274']
-box.space.vinyl:insert{270, "tuple 270"}
+box.space.vinyl:insert{270, 'tuple 270'}
 -
 - [270, 'tuple 270']
-box.space.vinyl:insert{271, "tuple 271"}
+box.space.vinyl:insert{271, 'tuple 271'}
 -
 - [271, 'tuple 271']
-box.space.vinyl:insert{272, "tuple 272"}
+box.space.vinyl:insert{272, 'tuple 272'}
 -
 - [272, 'tuple 272']
-box.space.vinyl:insert{273, "tuple 273"}
+box.space.vinyl:insert{273, 'tuple 273'}
 -
 - [273, 'tuple 273']
-box.space.vinyl:insert{274, "tuple 274"}
+box.space.vinyl:insert{274, 'tuple 274'}
 -
 - [274, 'tuple 274']
 box.space.memtx:select{270}
@@ -3498,34 +3498,34 @@ box.space.vinyl:select{273}
 box.space.vinyl:select{274}
 -
 - [274, 'tuple 274']
-box.space.memtx:insert{275, "tuple 275"}
+box.space.memtx:insert{275, 'tuple 275'}
 -
 - [275, 'tuple 275']
-box.space.memtx:insert{276, "tuple 276"}
+box.space.memtx:insert{276, 'tuple 276'}
 -
 - [276, 'tuple 276']
-box.space.memtx:insert{277, "tuple 277"}
+box.space.memtx:insert{277, 'tuple 277'}
 -
 - [277, 'tuple 277']
-box.space.memtx:insert{278, "tuple 278"}
+box.space.memtx:insert{278, 'tuple 278'}
 -
 - [278, 'tuple 278']
-box.space.memtx:insert{279, "tuple 279"}
+box.space.memtx:insert{279, 'tuple 279'}
 -
 - [279, 'tuple 279']
-box.space.vinyl:insert{275, "tuple 275"}
+box.space.vinyl:insert{275, 'tuple 275'}
 -
 - [275, 'tuple 275']
-box.space.vinyl:insert{276, "tuple 276"}
+box.space.vinyl:insert{276, 'tuple 276'}
 -
 - [276, 'tuple 276']
-box.space.vinyl:insert{277, "tuple 277"}
+box.space.vinyl:insert{277, 'tuple 277'}
 -
 - [277, 'tuple 277']
-box.space.vinyl:insert{278, "tuple 278"}
+box.space.vinyl:insert{278, 'tuple 278'}
 -
 - [278, 'tuple 278']
-box.space.vinyl:insert{279, "tuple 279"}
+box.space.vinyl:insert{279, 'tuple 279'}
 -
 - [279, 'tuple 279']
 box.space.memtx:select{275}
@@ -3565,34 +3565,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 14 iteration
-box.space.memtx:insert{280, "tuple 280"}
+box.space.memtx:insert{280, 'tuple 280'}
 -
 - [280, 'tuple 280']
-box.space.memtx:insert{281, "tuple 281"}
+box.space.memtx:insert{281, 'tuple 281'}
 -
 - [281, 'tuple 281']
-box.space.memtx:insert{282, "tuple 282"}
+box.space.memtx:insert{282, 'tuple 282'}
 -
 - [282, 'tuple 282']
-box.space.memtx:insert{283, "tuple 283"}
+box.space.memtx:insert{283, 'tuple 283'}
 -
 - [283, 'tuple 283']
-box.space.memtx:insert{284, "tuple 284"}
+box.space.memtx:insert{284, 'tuple 284'}
 -
 - [284, 'tuple 284']
-box.space.vinyl:insert{280, "tuple 280"}
+box.space.vinyl:insert{280, 'tuple 280'}
 -
 - [280, 'tuple 280']
-box.space.vinyl:insert{281, "tuple 281"}
+box.space.vinyl:insert{281, 'tuple 281'}
 -
 - [281, 'tuple 281']
-box.space.vinyl:insert{282, "tuple 282"}
+box.space.vinyl:insert{282, 'tuple 282'}
 -
 - [282, 'tuple 282']
-box.space.vinyl:insert{283, "tuple 283"}
+box.space.vinyl:insert{283, 'tuple 283'}
 -
 - [283, 'tuple 283']
-box.space.vinyl:insert{284, "tuple 284"}
+box.space.vinyl:insert{284, 'tuple 284'}
 -
 - [284, 'tuple 284']
 box.space.memtx:select{280}
@@ -3625,34 +3625,34 @@ box.space.vinyl:select{283}
 box.space.vinyl:select{284}
 -
 - [284, 'tuple 284']
-box.space.memtx:insert{285, "tuple 285"}
+box.space.memtx:insert{285, 'tuple 285'}
 -
 - [285, 'tuple 285']
-box.space.memtx:insert{286, "tuple 286"}
+box.space.memtx:insert{286, 'tuple 286'}
 -
 - [286, 'tuple 286']
-box.space.memtx:insert{287, "tuple 287"}
+box.space.memtx:insert{287, 'tuple 287'}
 -
 - [287, 'tuple 287']
-box.space.memtx:insert{288, "tuple 288"}
+box.space.memtx:insert{288, 'tuple 288'}
 -
 - [288, 'tuple 288']
-box.space.memtx:insert{289, "tuple 289"}
+box.space.memtx:insert{289, 'tuple 289'}
 -
 - [289, 'tuple 289']
-box.space.vinyl:insert{285, "tuple 285"}
+box.space.vinyl:insert{285, 'tuple 285'}
 -
 - [285, 'tuple 285']
-box.space.vinyl:insert{286, "tuple 286"}
+box.space.vinyl:insert{286, 'tuple 286'}
 -
 - [286, 'tuple 286']
-box.space.vinyl:insert{287, "tuple 287"}
+box.space.vinyl:insert{287, 'tuple 287'}
 -
 - [287, 'tuple 287']
-box.space.vinyl:insert{288, "tuple 288"}
+box.space.vinyl:insert{288, 'tuple 288'}
 -
 - [288, 'tuple 288']
-box.space.vinyl:insert{289, "tuple 289"}
+box.space.vinyl:insert{289, 'tuple 289'}
 -
 - [289, 'tuple 289']
 box.space.memtx:select{285}
@@ -3691,34 +3691,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{290, "tuple 290"}
+box.space.memtx:insert{290, 'tuple 290'}
 -
 - [290, 'tuple 290']
-box.space.memtx:insert{291, "tuple 291"}
+box.space.memtx:insert{291, 'tuple 291'}
 -
 - [291, 'tuple 291']
-box.space.memtx:insert{292, "tuple 292"}
+box.space.memtx:insert{292, 'tuple 292'}
 -
 - [292, 'tuple 292']
-box.space.memtx:insert{293, "tuple 293"}
+box.space.memtx:insert{293, 'tuple 293'}
 -
 - [293, 'tuple 293']
-box.space.memtx:insert{294, "tuple 294"}
+box.space.memtx:insert{294, 'tuple 294'}
 -
 - [294, 'tuple 294']
-box.space.vinyl:insert{290, "tuple 290"}
+box.space.vinyl:insert{290, 'tuple 290'}
 -
 - [290, 'tuple 290']
-box.space.vinyl:insert{291, "tuple 291"}
+box.space.vinyl:insert{291, 'tuple 291'}
 -
 - [291, 'tuple 291']
-box.space.vinyl:insert{292, "tuple 292"}
+box.space.vinyl:insert{292, 'tuple 292'}
 -
 - [292, 'tuple 292']
-box.space.vinyl:insert{293, "tuple 293"}
+box.space.vinyl:insert{293, 'tuple 293'}
 -
 - [293, 'tuple 293']
-box.space.vinyl:insert{294, "tuple 294"}
+box.space.vinyl:insert{294, 'tuple 294'}
 -
 - [294, 'tuple 294']
 box.space.memtx:select{290}
@@ -3751,34 +3751,34 @@ box.space.vinyl:select{293}
 box.space.vinyl:select{294}
 -
 - [294, 'tuple 294']
-box.space.memtx:insert{295, "tuple 295"}
+box.space.memtx:insert{295, 'tuple 295'}
 -
 - [295, 'tuple 295']
-box.space.memtx:insert{296, "tuple 296"}
+box.space.memtx:insert{296, 'tuple 296'}
 -
 - [296, 'tuple 296']
-box.space.memtx:insert{297, "tuple 297"}
+box.space.memtx:insert{297, 'tuple 297'}
 -
 - [297, 'tuple 297']
-box.space.memtx:insert{298, "tuple 298"}
+box.space.memtx:insert{298, 'tuple 298'}
 -
 - [298, 'tuple 298']
-box.space.memtx:insert{299, "tuple 299"}
+box.space.memtx:insert{299, 'tuple 299'}
 -
 - [299, 'tuple 299']
-box.space.vinyl:insert{295, "tuple 295"}
+box.space.vinyl:insert{295, 'tuple 295'}
 -
 - [295, 'tuple 295']
-box.space.vinyl:insert{296, "tuple 296"}
+box.space.vinyl:insert{296, 'tuple 296'}
 -
 - [296, 'tuple 296']
-box.space.vinyl:insert{297, "tuple 297"}
+box.space.vinyl:insert{297, 'tuple 297'}
 -
 - [297, 'tuple 297']
-box.space.vinyl:insert{298, "tuple 298"}
+box.space.vinyl:insert{298, 'tuple 298'}
 -
 - [298, 'tuple 298']
-box.space.vinyl:insert{299, "tuple 299"}
+box.space.vinyl:insert{299, 'tuple 299'}
 -
 - [299, 'tuple 299']
 box.space.memtx:select{295}
@@ -3818,34 +3818,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 15 iteration
-box.space.memtx:insert{300, "tuple 300"}
+box.space.memtx:insert{300, 'tuple 300'}
 -
 - [300, 'tuple 300']
-box.space.memtx:insert{301, "tuple 301"}
+box.space.memtx:insert{301, 'tuple 301'}
 -
 - [301, 'tuple 301']
-box.space.memtx:insert{302, "tuple 302"}
+box.space.memtx:insert{302, 'tuple 302'}
 -
 - [302, 'tuple 302']
-box.space.memtx:insert{303, "tuple 303"}
+box.space.memtx:insert{303, 'tuple 303'}
 -
 - [303, 'tuple 303']
-box.space.memtx:insert{304, "tuple 304"}
+box.space.memtx:insert{304, 'tuple 304'}
 -
 - [304, 'tuple 304']
-box.space.vinyl:insert{300, "tuple 300"}
+box.space.vinyl:insert{300, 'tuple 300'}
 -
 - [300, 'tuple 300']
-box.space.vinyl:insert{301, "tuple 301"}
+box.space.vinyl:insert{301, 'tuple 301'}
 -
 - [301, 'tuple 301']
-box.space.vinyl:insert{302, "tuple 302"}
+box.space.vinyl:insert{302, 'tuple 302'}
 -
 - [302, 'tuple 302']
-box.space.vinyl:insert{303, "tuple 303"}
+box.space.vinyl:insert{303, 'tuple 303'}
 -
 - [303, 'tuple 303']
-box.space.vinyl:insert{304, "tuple 304"}
+box.space.vinyl:insert{304, 'tuple 304'}
 -
 - [304, 'tuple 304']
 box.space.memtx:select{300}
@@ -3878,34 +3878,34 @@ box.space.vinyl:select{303}
 box.space.vinyl:select{304}
 -
 - [304, 'tuple 304']
-box.space.memtx:insert{305, "tuple 305"}
+box.space.memtx:insert{305, 'tuple 305'}
 -
 - [305, 'tuple 305']
-box.space.memtx:insert{306, "tuple 306"}
+box.space.memtx:insert{306, 'tuple 306'}
 -
 - [306, 'tuple 306']
-box.space.memtx:insert{307, "tuple 307"}
+box.space.memtx:insert{307, 'tuple 307'}
 -
 - [307, 'tuple 307']
-box.space.memtx:insert{308, "tuple 308"}
+box.space.memtx:insert{308, 'tuple 308'}
 -
 - [308, 'tuple 308']
-box.space.memtx:insert{309, "tuple 309"}
+box.space.memtx:insert{309, 'tuple 309'}
 -
 - [309, 'tuple 309']
-box.space.vinyl:insert{305, "tuple 305"}
+box.space.vinyl:insert{305, 'tuple 305'}
 -
 - [305, 'tuple 305']
-box.space.vinyl:insert{306, "tuple 306"}
+box.space.vinyl:insert{306, 'tuple 306'}
 -
 - [306, 'tuple 306']
-box.space.vinyl:insert{307, "tuple 307"}
+box.space.vinyl:insert{307, 'tuple 307'}
 -
 - [307, 'tuple 307']
-box.space.vinyl:insert{308, "tuple 308"}
+box.space.vinyl:insert{308, 'tuple 308'}
 -
 - [308, 'tuple 308']
-box.space.vinyl:insert{309, "tuple 309"}
+box.space.vinyl:insert{309, 'tuple 309'}
 -
 - [309, 'tuple 309']
 box.space.memtx:select{305}
@@ -3944,34 +3944,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{310, "tuple 310"}
+box.space.memtx:insert{310, 'tuple 310'}
 -
 - [310, 'tuple 310']
-box.space.memtx:insert{311, "tuple 311"}
+box.space.memtx:insert{311, 'tuple 311'}
 -
 - [311, 'tuple 311']
-box.space.memtx:insert{312, "tuple 312"}
+box.space.memtx:insert{312, 'tuple 312'}
 -
 - [312, 'tuple 312']
-box.space.memtx:insert{313, "tuple 313"}
+box.space.memtx:insert{313, 'tuple 313'}
 -
 - [313, 'tuple 313']
-box.space.memtx:insert{314, "tuple 314"}
+box.space.memtx:insert{314, 'tuple 314'}
 -
 - [314, 'tuple 314']
-box.space.vinyl:insert{310, "tuple 310"}
+box.space.vinyl:insert{310, 'tuple 310'}
 -
 - [310, 'tuple 310']
-box.space.vinyl:insert{311, "tuple 311"}
+box.space.vinyl:insert{311, 'tuple 311'}
 -
 - [311, 'tuple 311']
-box.space.vinyl:insert{312, "tuple 312"}
+box.space.vinyl:insert{312, 'tuple 312'}
 -
 - [312, 'tuple 312']
-box.space.vinyl:insert{313, "tuple 313"}
+box.space.vinyl:insert{313, 'tuple 313'}
 -
 - [313, 'tuple 313']
-box.space.vinyl:insert{314, "tuple 314"}
+box.space.vinyl:insert{314, 'tuple 314'}
 -
 - [314, 'tuple 314']
 box.space.memtx:select{310}
@@ -4004,34 +4004,34 @@ box.space.vinyl:select{313}
 box.space.vinyl:select{314}
 -
 - [314, 'tuple 314']
-box.space.memtx:insert{315, "tuple 315"}
+box.space.memtx:insert{315, 'tuple 315'}
 -
 - [315, 'tuple 315']
-box.space.memtx:insert{316, "tuple 316"}
+box.space.memtx:insert{316, 'tuple 316'}
 -
 - [316, 'tuple 316']
-box.space.memtx:insert{317, "tuple 317"}
+box.space.memtx:insert{317, 'tuple 317'}
 -
 - [317, 'tuple 317']
-box.space.memtx:insert{318, "tuple 318"}
+box.space.memtx:insert{318, 'tuple 318'}
 -
 - [318, 'tuple 318']
-box.space.memtx:insert{319, "tuple 319"}
+box.space.memtx:insert{319, 'tuple 319'}
 -
 - [319, 'tuple 319']
-box.space.vinyl:insert{315, "tuple 315"}
+box.space.vinyl:insert{315, 'tuple 315'}
 -
 - [315, 'tuple 315']
-box.space.vinyl:insert{316, "tuple 316"}
+box.space.vinyl:insert{316, 'tuple 316'}
 -
 - [316, 'tuple 316']
-box.space.vinyl:insert{317, "tuple 317"}
+box.space.vinyl:insert{317, 'tuple 317'}
 -
 - [317, 'tuple 317']
-box.space.vinyl:insert{318, "tuple 318"}
+box.space.vinyl:insert{318, 'tuple 318'}
 -
 - [318, 'tuple 318']
-box.space.vinyl:insert{319, "tuple 319"}
+box.space.vinyl:insert{319, 'tuple 319'}
 -
 - [319, 'tuple 319']
 box.space.memtx:select{315}
@@ -4071,34 +4071,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 16 iteration
-box.space.memtx:insert{320, "tuple 320"}
+box.space.memtx:insert{320, 'tuple 320'}
 -
 - [320, 'tuple 320']
-box.space.memtx:insert{321, "tuple 321"}
+box.space.memtx:insert{321, 'tuple 321'}
 -
 - [321, 'tuple 321']
-box.space.memtx:insert{322, "tuple 322"}
+box.space.memtx:insert{322, 'tuple 322'}
 -
 - [322, 'tuple 322']
-box.space.memtx:insert{323, "tuple 323"}
+box.space.memtx:insert{323, 'tuple 323'}
 -
 - [323, 'tuple 323']
-box.space.memtx:insert{324, "tuple 324"}
+box.space.memtx:insert{324, 'tuple 324'}
 -
 - [324, 'tuple 324']
-box.space.vinyl:insert{320, "tuple 320"}
+box.space.vinyl:insert{320, 'tuple 320'}
 -
 - [320, 'tuple 320']
-box.space.vinyl:insert{321, "tuple 321"}
+box.space.vinyl:insert{321, 'tuple 321'}
 -
 - [321, 'tuple 321']
-box.space.vinyl:insert{322, "tuple 322"}
+box.space.vinyl:insert{322, 'tuple 322'}
 -
 - [322, 'tuple 322']
-box.space.vinyl:insert{323, "tuple 323"}
+box.space.vinyl:insert{323, 'tuple 323'}
 -
 - [323, 'tuple 323']
-box.space.vinyl:insert{324, "tuple 324"}
+box.space.vinyl:insert{324, 'tuple 324'}
 -
 - [324, 'tuple 324']
 box.space.memtx:select{320}
@@ -4131,34 +4131,34 @@ box.space.vinyl:select{323}
 box.space.vinyl:select{324}
 -
 - [324, 'tuple 324']
-box.space.memtx:insert{325, "tuple 325"}
+box.space.memtx:insert{325, 'tuple 325'}
 -
 - [325, 'tuple 325']
-box.space.memtx:insert{326, "tuple 326"}
+box.space.memtx:insert{326, 'tuple 326'}
 -
 - [326, 'tuple 326']
-box.space.memtx:insert{327, "tuple 327"}
+box.space.memtx:insert{327, 'tuple 327'}
 -
 - [327, 'tuple 327']
-box.space.memtx:insert{328, "tuple 328"}
+box.space.memtx:insert{328, 'tuple 328'}
 -
 - [328, 'tuple 328']
-box.space.memtx:insert{329, "tuple 329"}
+box.space.memtx:insert{329, 'tuple 329'}
 -
 - [329, 'tuple 329']
-box.space.vinyl:insert{325, "tuple 325"}
+box.space.vinyl:insert{325, 'tuple 325'}
 -
 - [325, 'tuple 325']
-box.space.vinyl:insert{326, "tuple 326"}
+box.space.vinyl:insert{326, 'tuple 326'}
 -
 - [326, 'tuple 326']
-box.space.vinyl:insert{327, "tuple 327"}
+box.space.vinyl:insert{327, 'tuple 327'}
 -
 - [327, 'tuple 327']
-box.space.vinyl:insert{328, "tuple 328"}
+box.space.vinyl:insert{328, 'tuple 328'}
 -
 - [328, 'tuple 328']
-box.space.vinyl:insert{329, "tuple 329"}
+box.space.vinyl:insert{329, 'tuple 329'}
 -
 - [329, 'tuple 329']
 box.space.memtx:select{325}
@@ -4197,34 +4197,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{330, "tuple 330"}
+box.space.memtx:insert{330, 'tuple 330'}
 -
 - [330, 'tuple 330']
-box.space.memtx:insert{331, "tuple 331"}
+box.space.memtx:insert{331, 'tuple 331'}
 -
 - [331, 'tuple 331']
-box.space.memtx:insert{332, "tuple 332"}
+box.space.memtx:insert{332, 'tuple 332'}
 -
 - [332, 'tuple 332']
-box.space.memtx:insert{333, "tuple 333"}
+box.space.memtx:insert{333, 'tuple 333'}
 -
 - [333, 'tuple 333']
-box.space.memtx:insert{334, "tuple 334"}
+box.space.memtx:insert{334, 'tuple 334'}
 -
 - [334, 'tuple 334']
-box.space.vinyl:insert{330, "tuple 330"}
+box.space.vinyl:insert{330, 'tuple 330'}
 -
 - [330, 'tuple 330']
-box.space.vinyl:insert{331, "tuple 331"}
+box.space.vinyl:insert{331, 'tuple 331'}
 -
 - [331, 'tuple 331']
-box.space.vinyl:insert{332, "tuple 332"}
+box.space.vinyl:insert{332, 'tuple 332'}
 -
 - [332, 'tuple 332']
-box.space.vinyl:insert{333, "tuple 333"}
+box.space.vinyl:insert{333, 'tuple 333'}
 -
 - [333, 'tuple 333']
-box.space.vinyl:insert{334, "tuple 334"}
+box.space.vinyl:insert{334, 'tuple 334'}
 -
 - [334, 'tuple 334']
 box.space.memtx:select{330}
@@ -4257,34 +4257,34 @@ box.space.vinyl:select{333}
 box.space.vinyl:select{334}
 -
 - [334, 'tuple 334']
-box.space.memtx:insert{335, "tuple 335"}
+box.space.memtx:insert{335, 'tuple 335'}
 -
 - [335, 'tuple 335']
-box.space.memtx:insert{336, "tuple 336"}
+box.space.memtx:insert{336, 'tuple 336'}
 -
 - [336, 'tuple 336']
-box.space.memtx:insert{337, "tuple 337"}
+box.space.memtx:insert{337, 'tuple 337'}
 -
 - [337, 'tuple 337']
-box.space.memtx:insert{338, "tuple 338"}
+box.space.memtx:insert{338, 'tuple 338'}
 -
 - [338, 'tuple 338']
-box.space.memtx:insert{339, "tuple 339"}
+box.space.memtx:insert{339, 'tuple 339'}
 -
 - [339, 'tuple 339']
-box.space.vinyl:insert{335, "tuple 335"}
+box.space.vinyl:insert{335, 'tuple 335'}
 -
 - [335, 'tuple 335']
-box.space.vinyl:insert{336, "tuple 336"}
+box.space.vinyl:insert{336, 'tuple 336'}
 -
 - [336, 'tuple 336']
-box.space.vinyl:insert{337, "tuple 337"}
+box.space.vinyl:insert{337, 'tuple 337'}
 -
 - [337, 'tuple 337']
-box.space.vinyl:insert{338, "tuple 338"}
+box.space.vinyl:insert{338, 'tuple 338'}
 -
 - [338, 'tuple 338']
-box.space.vinyl:insert{339, "tuple 339"}
+box.space.vinyl:insert{339, 'tuple 339'}
 -
 - [339, 'tuple 339']
 box.space.memtx:select{335}
@@ -4324,34 +4324,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 17 iteration
-box.space.memtx:insert{340, "tuple 340"}
+box.space.memtx:insert{340, 'tuple 340'}
 -
 - [340, 'tuple 340']
-box.space.memtx:insert{341, "tuple 341"}
+box.space.memtx:insert{341, 'tuple 341'}
 -
 - [341, 'tuple 341']
-box.space.memtx:insert{342, "tuple 342"}
+box.space.memtx:insert{342, 'tuple 342'}
 -
 - [342, 'tuple 342']
-box.space.memtx:insert{343, "tuple 343"}
+box.space.memtx:insert{343, 'tuple 343'}
 -
 - [343, 'tuple 343']
-box.space.memtx:insert{344, "tuple 344"}
+box.space.memtx:insert{344, 'tuple 344'}
 -
 - [344, 'tuple 344']
-box.space.vinyl:insert{340, "tuple 340"}
+box.space.vinyl:insert{340, 'tuple 340'}
 -
 - [340, 'tuple 340']
-box.space.vinyl:insert{341, "tuple 341"}
+box.space.vinyl:insert{341, 'tuple 341'}
 -
 - [341, 'tuple 341']
-box.space.vinyl:insert{342, "tuple 342"}
+box.space.vinyl:insert{342, 'tuple 342'}
 -
 - [342, 'tuple 342']
-box.space.vinyl:insert{343, "tuple 343"}
+box.space.vinyl:insert{343, 'tuple 343'}
 -
 - [343, 'tuple 343']
-box.space.vinyl:insert{344, "tuple 344"}
+box.space.vinyl:insert{344, 'tuple 344'}
 -
 - [344, 'tuple 344']
 box.space.memtx:select{340}
@@ -4384,34 +4384,34 @@ box.space.vinyl:select{343}
 box.space.vinyl:select{344}
 -
 - [344, 'tuple 344']
-box.space.memtx:insert{345, "tuple 345"}
+box.space.memtx:insert{345, 'tuple 345'}
 -
 - [345, 'tuple 345']
-box.space.memtx:insert{346, "tuple 346"}
+box.space.memtx:insert{346, 'tuple 346'}
 -
 - [346, 'tuple 346']
-box.space.memtx:insert{347, "tuple 347"}
+box.space.memtx:insert{347, 'tuple 347'}
 -
 - [347, 'tuple 347']
-box.space.memtx:insert{348, "tuple 348"}
+box.space.memtx:insert{348, 'tuple 348'}
 -
 - [348, 'tuple 348']
-box.space.memtx:insert{349, "tuple 349"}
+box.space.memtx:insert{349, 'tuple 349'}
 -
 - [349, 'tuple 349']
-box.space.vinyl:insert{345, "tuple 345"}
+box.space.vinyl:insert{345, 'tuple 345'}
 -
 - [345, 'tuple 345']
-box.space.vinyl:insert{346, "tuple 346"}
+box.space.vinyl:insert{346, 'tuple 346'}
 -
 - [346, 'tuple 346']
-box.space.vinyl:insert{347, "tuple 347"}
+box.space.vinyl:insert{347, 'tuple 347'}
 -
 - [347, 'tuple 347']
-box.space.vinyl:insert{348, "tuple 348"}
+box.space.vinyl:insert{348, 'tuple 348'}
 -
 - [348, 'tuple 348']
-box.space.vinyl:insert{349, "tuple 349"}
+box.space.vinyl:insert{349, 'tuple 349'}
 -
 - [349, 'tuple 349']
 box.space.memtx:select{345}
@@ -4450,34 +4450,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{350, "tuple 350"}
+box.space.memtx:insert{350, 'tuple 350'}
 -
 - [350, 'tuple 350']
-box.space.memtx:insert{351, "tuple 351"}
+box.space.memtx:insert{351, 'tuple 351'}
 -
 - [351, 'tuple 351']
-box.space.memtx:insert{352, "tuple 352"}
+box.space.memtx:insert{352, 'tuple 352'}
 -
 - [352, 'tuple 352']
-box.space.memtx:insert{353, "tuple 353"}
+box.space.memtx:insert{353, 'tuple 353'}
 -
 - [353, 'tuple 353']
-box.space.memtx:insert{354, "tuple 354"}
+box.space.memtx:insert{354, 'tuple 354'}
 -
 - [354, 'tuple 354']
-box.space.vinyl:insert{350, "tuple 350"}
+box.space.vinyl:insert{350, 'tuple 350'}
 -
 - [350, 'tuple 350']
-box.space.vinyl:insert{351, "tuple 351"}
+box.space.vinyl:insert{351, 'tuple 351'}
 -
 - [351, 'tuple 351']
-box.space.vinyl:insert{352, "tuple 352"}
+box.space.vinyl:insert{352, 'tuple 352'}
 -
 - [352, 'tuple 352']
-box.space.vinyl:insert{353, "tuple 353"}
+box.space.vinyl:insert{353, 'tuple 353'}
 -
 - [353, 'tuple 353']
-box.space.vinyl:insert{354, "tuple 354"}
+box.space.vinyl:insert{354, 'tuple 354'}
 -
 - [354, 'tuple 354']
 box.space.memtx:select{350}
@@ -4510,34 +4510,34 @@ box.space.vinyl:select{353}
 box.space.vinyl:select{354}
 -
 - [354, 'tuple 354']
-box.space.memtx:insert{355, "tuple 355"}
+box.space.memtx:insert{355, 'tuple 355'}
 -
 - [355, 'tuple 355']
-box.space.memtx:insert{356, "tuple 356"}
+box.space.memtx:insert{356, 'tuple 356'}
 -
 - [356, 'tuple 356']
-box.space.memtx:insert{357, "tuple 357"}
+box.space.memtx:insert{357, 'tuple 357'}
 -
 - [357, 'tuple 357']
-box.space.memtx:insert{358, "tuple 358"}
+box.space.memtx:insert{358, 'tuple 358'}
 -
 - [358, 'tuple 358']
-box.space.memtx:insert{359, "tuple 359"}
+box.space.memtx:insert{359, 'tuple 359'}
 -
 - [359, 'tuple 359']
-box.space.vinyl:insert{355, "tuple 355"}
+box.space.vinyl:insert{355, 'tuple 355'}
 -
 - [355, 'tuple 355']
-box.space.vinyl:insert{356, "tuple 356"}
+box.space.vinyl:insert{356, 'tuple 356'}
 -
 - [356, 'tuple 356']
-box.space.vinyl:insert{357, "tuple 357"}
+box.space.vinyl:insert{357, 'tuple 357'}
 -
 - [357, 'tuple 357']
-box.space.vinyl:insert{358, "tuple 358"}
+box.space.vinyl:insert{358, 'tuple 358'}
 -
 - [358, 'tuple 358']
-box.space.vinyl:insert{359, "tuple 359"}
+box.space.vinyl:insert{359, 'tuple 359'}
 -
 - [359, 'tuple 359']
 box.space.memtx:select{355}
@@ -4577,34 +4577,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 18 iteration
-box.space.memtx:insert{360, "tuple 360"}
+box.space.memtx:insert{360, 'tuple 360'}
 -
 - [360, 'tuple 360']
-box.space.memtx:insert{361, "tuple 361"}
+box.space.memtx:insert{361, 'tuple 361'}
 -
 - [361, 'tuple 361']
-box.space.memtx:insert{362, "tuple 362"}
+box.space.memtx:insert{362, 'tuple 362'}
 -
 - [362, 'tuple 362']
-box.space.memtx:insert{363, "tuple 363"}
+box.space.memtx:insert{363, 'tuple 363'}
 -
 - [363, 'tuple 363']
-box.space.memtx:insert{364, "tuple 364"}
+box.space.memtx:insert{364, 'tuple 364'}
 -
 - [364, 'tuple 364']
-box.space.vinyl:insert{360, "tuple 360"}
+box.space.vinyl:insert{360, 'tuple 360'}
 -
 - [360, 'tuple 360']
-box.space.vinyl:insert{361, "tuple 361"}
+box.space.vinyl:insert{361, 'tuple 361'}
 -
 - [361, 'tuple 361']
-box.space.vinyl:insert{362, "tuple 362"}
+box.space.vinyl:insert{362, 'tuple 362'}
 -
 - [362, 'tuple 362']
-box.space.vinyl:insert{363, "tuple 363"}
+box.space.vinyl:insert{363, 'tuple 363'}
 -
 - [363, 'tuple 363']
-box.space.vinyl:insert{364, "tuple 364"}
+box.space.vinyl:insert{364, 'tuple 364'}
 -
 - [364, 'tuple 364']
 box.space.memtx:select{360}
@@ -4637,34 +4637,34 @@ box.space.vinyl:select{363}
 box.space.vinyl:select{364}
 -
 - [364, 'tuple 364']
-box.space.memtx:insert{365, "tuple 365"}
+box.space.memtx:insert{365, 'tuple 365'}
 -
 - [365, 'tuple 365']
-box.space.memtx:insert{366, "tuple 366"}
+box.space.memtx:insert{366, 'tuple 366'}
 -
 - [366, 'tuple 366']
-box.space.memtx:insert{367, "tuple 367"}
+box.space.memtx:insert{367, 'tuple 367'}
 -
 - [367, 'tuple 367']
-box.space.memtx:insert{368, "tuple 368"}
+box.space.memtx:insert{368, 'tuple 368'}
 -
 - [368, 'tuple 368']
-box.space.memtx:insert{369, "tuple 369"}
+box.space.memtx:insert{369, 'tuple 369'}
 -
 - [369, 'tuple 369']
-box.space.vinyl:insert{365, "tuple 365"}
+box.space.vinyl:insert{365, 'tuple 365'}
 -
 - [365, 'tuple 365']
-box.space.vinyl:insert{366, "tuple 366"}
+box.space.vinyl:insert{366, 'tuple 366'}
 -
 - [366, 'tuple 366']
-box.space.vinyl:insert{367, "tuple 367"}
+box.space.vinyl:insert{367, 'tuple 367'}
 -
 - [367, 'tuple 367']
-box.space.vinyl:insert{368, "tuple 368"}
+box.space.vinyl:insert{368, 'tuple 368'}
 -
 - [368, 'tuple 368']
-box.space.vinyl:insert{369, "tuple 369"}
+box.space.vinyl:insert{369, 'tuple 369'}
 -
 - [369, 'tuple 369']
 box.space.memtx:select{365}
@@ -4703,34 +4703,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{370, "tuple 370"}
+box.space.memtx:insert{370, 'tuple 370'}
 -
 - [370, 'tuple 370']
-box.space.memtx:insert{371, "tuple 371"}
+box.space.memtx:insert{371, 'tuple 371'}
 -
 - [371, 'tuple 371']
-box.space.memtx:insert{372, "tuple 372"}
+box.space.memtx:insert{372, 'tuple 372'}
 -
 - [372, 'tuple 372']
-box.space.memtx:insert{373, "tuple 373"}
+box.space.memtx:insert{373, 'tuple 373'}
 -
 - [373, 'tuple 373']
-box.space.memtx:insert{374, "tuple 374"}
+box.space.memtx:insert{374, 'tuple 374'}
 -
 - [374, 'tuple 374']
-box.space.vinyl:insert{370, "tuple 370"}
+box.space.vinyl:insert{370, 'tuple 370'}
 -
 - [370, 'tuple 370']
-box.space.vinyl:insert{371, "tuple 371"}
+box.space.vinyl:insert{371, 'tuple 371'}
 -
 - [371, 'tuple 371']
-box.space.vinyl:insert{372, "tuple 372"}
+box.space.vinyl:insert{372, 'tuple 372'}
 -
 - [372, 'tuple 372']
-box.space.vinyl:insert{373, "tuple 373"}
+box.space.vinyl:insert{373, 'tuple 373'}
 -
 - [373, 'tuple 373']
-box.space.vinyl:insert{374, "tuple 374"}
+box.space.vinyl:insert{374, 'tuple 374'}
 -
 - [374, 'tuple 374']
 box.space.memtx:select{370}
@@ -4763,34 +4763,34 @@ box.space.vinyl:select{373}
 box.space.vinyl:select{374}
 -
 - [374, 'tuple 374']
-box.space.memtx:insert{375, "tuple 375"}
+box.space.memtx:insert{375, 'tuple 375'}
 -
 - [375, 'tuple 375']
-box.space.memtx:insert{376, "tuple 376"}
+box.space.memtx:insert{376, 'tuple 376'}
 -
 - [376, 'tuple 376']
-box.space.memtx:insert{377, "tuple 377"}
+box.space.memtx:insert{377, 'tuple 377'}
 -
 - [377, 'tuple 377']
-box.space.memtx:insert{378, "tuple 378"}
+box.space.memtx:insert{378, 'tuple 378'}
 -
 - [378, 'tuple 378']
-box.space.memtx:insert{379, "tuple 379"}
+box.space.memtx:insert{379, 'tuple 379'}
 -
 - [379, 'tuple 379']
-box.space.vinyl:insert{375, "tuple 375"}
+box.space.vinyl:insert{375, 'tuple 375'}
 -
 - [375, 'tuple 375']
-box.space.vinyl:insert{376, "tuple 376"}
+box.space.vinyl:insert{376, 'tuple 376'}
 -
 - [376, 'tuple 376']
-box.space.vinyl:insert{377, "tuple 377"}
+box.space.vinyl:insert{377, 'tuple 377'}
 -
 - [377, 'tuple 377']
-box.space.vinyl:insert{378, "tuple 378"}
+box.space.vinyl:insert{378, 'tuple 378'}
 -
 - [378, 'tuple 378']
-box.space.vinyl:insert{379, "tuple 379"}
+box.space.vinyl:insert{379, 'tuple 379'}
 -
 - [379, 'tuple 379']
 box.space.memtx:select{375}
@@ -4830,34 +4830,34 @@ box.cfg{replication=''}
 ...
 switch replica to replica
 test 19 iteration
-box.space.memtx:insert{380, "tuple 380"}
+box.space.memtx:insert{380, 'tuple 380'}
 -
 - [380, 'tuple 380']
-box.space.memtx:insert{381, "tuple 381"}
+box.space.memtx:insert{381, 'tuple 381'}
 -
 - [381, 'tuple 381']
-box.space.memtx:insert{382, "tuple 382"}
+box.space.memtx:insert{382, 'tuple 382'}
 -
 - [382, 'tuple 382']
-box.space.memtx:insert{383, "tuple 383"}
+box.space.memtx:insert{383, 'tuple 383'}
 -
 - [383, 'tuple 383']
-box.space.memtx:insert{384, "tuple 384"}
+box.space.memtx:insert{384, 'tuple 384'}
 -
 - [384, 'tuple 384']
-box.space.vinyl:insert{380, "tuple 380"}
+box.space.vinyl:insert{380, 'tuple 380'}
 -
 - [380, 'tuple 380']
-box.space.vinyl:insert{381, "tuple 381"}
+box.space.vinyl:insert{381, 'tuple 381'}
 -
 - [381, 'tuple 381']
-box.space.vinyl:insert{382, "tuple 382"}
+box.space.vinyl:insert{382, 'tuple 382'}
 -
 - [382, 'tuple 382']
-box.space.vinyl:insert{383, "tuple 383"}
+box.space.vinyl:insert{383, 'tuple 383'}
 -
 - [383, 'tuple 383']
-box.space.vinyl:insert{384, "tuple 384"}
+box.space.vinyl:insert{384, 'tuple 384'}
 -
 - [384, 'tuple 384']
 box.space.memtx:select{380}
@@ -4890,34 +4890,34 @@ box.space.vinyl:select{383}
 box.space.vinyl:select{384}
 -
 - [384, 'tuple 384']
-box.space.memtx:insert{385, "tuple 385"}
+box.space.memtx:insert{385, 'tuple 385'}
 -
 - [385, 'tuple 385']
-box.space.memtx:insert{386, "tuple 386"}
+box.space.memtx:insert{386, 'tuple 386'}
 -
 - [386, 'tuple 386']
-box.space.memtx:insert{387, "tuple 387"}
+box.space.memtx:insert{387, 'tuple 387'}
 -
 - [387, 'tuple 387']
-box.space.memtx:insert{388, "tuple 388"}
+box.space.memtx:insert{388, 'tuple 388'}
 -
 - [388, 'tuple 388']
-box.space.memtx:insert{389, "tuple 389"}
+box.space.memtx:insert{389, 'tuple 389'}
 -
 - [389, 'tuple 389']
-box.space.vinyl:insert{385, "tuple 385"}
+box.space.vinyl:insert{385, 'tuple 385'}
 -
 - [385, 'tuple 385']
-box.space.vinyl:insert{386, "tuple 386"}
+box.space.vinyl:insert{386, 'tuple 386'}
 -
 - [386, 'tuple 386']
-box.space.vinyl:insert{387, "tuple 387"}
+box.space.vinyl:insert{387, 'tuple 387'}
 -
 - [387, 'tuple 387']
-box.space.vinyl:insert{388, "tuple 388"}
+box.space.vinyl:insert{388, 'tuple 388'}
 -
 - [388, 'tuple 388']
-box.space.vinyl:insert{389, "tuple 389"}
+box.space.vinyl:insert{389, 'tuple 389'}
 -
 - [389, 'tuple 389']
 box.space.memtx:select{385}
@@ -4956,34 +4956,34 @@ box.cfg{replication=''}
 ---
 ...
 switch master to replica
-box.space.memtx:insert{390, "tuple 390"}
+box.space.memtx:insert{390, 'tuple 390'}
 -
 - [390, 'tuple 390']
-box.space.memtx:insert{391, "tuple 391"}
+box.space.memtx:insert{391, 'tuple 391'}
 -
 - [391, 'tuple 391']
-box.space.memtx:insert{392, "tuple 392"}
+box.space.memtx:insert{392, 'tuple 392'}
 -
 - [392, 'tuple 392']
-box.space.memtx:insert{393, "tuple 393"}
+box.space.memtx:insert{393, 'tuple 393'}
 -
 - [393, 'tuple 393']
-box.space.memtx:insert{394, "tuple 394"}
+box.space.memtx:insert{394, 'tuple 394'}
 -
 - [394, 'tuple 394']
-box.space.vinyl:insert{390, "tuple 390"}
+box.space.vinyl:insert{390, 'tuple 390'}
 -
 - [390, 'tuple 390']
-box.space.vinyl:insert{391, "tuple 391"}
+box.space.vinyl:insert{391, 'tuple 391'}
 -
 - [391, 'tuple 391']
-box.space.vinyl:insert{392, "tuple 392"}
+box.space.vinyl:insert{392, 'tuple 392'}
 -
 - [392, 'tuple 392']
-box.space.vinyl:insert{393, "tuple 393"}
+box.space.vinyl:insert{393, 'tuple 393'}
 -
 - [393, 'tuple 393']
-box.space.vinyl:insert{394, "tuple 394"}
+box.space.vinyl:insert{394, 'tuple 394'}
 -
 - [394, 'tuple 394']
 box.space.memtx:select{390}
@@ -5016,34 +5016,34 @@ box.space.vinyl:select{393}
 box.space.vinyl:select{394}
 -
 - [394, 'tuple 394']
-box.space.memtx:insert{395, "tuple 395"}
+box.space.memtx:insert{395, 'tuple 395'}
 -
 - [395, 'tuple 395']
-box.space.memtx:insert{396, "tuple 396"}
+box.space.memtx:insert{396, 'tuple 396'}
 -
 - [396, 'tuple 396']
-box.space.memtx:insert{397, "tuple 397"}
+box.space.memtx:insert{397, 'tuple 397'}
 -
 - [397, 'tuple 397']
-box.space.memtx:insert{398, "tuple 398"}
+box.space.memtx:insert{398, 'tuple 398'}
 -
 - [398, 'tuple 398']
-box.space.memtx:insert{399, "tuple 399"}
+box.space.memtx:insert{399, 'tuple 399'}
 -
 - [399, 'tuple 399']
-box.space.vinyl:insert{395, "tuple 395"}
+box.space.vinyl:insert{395, 'tuple 395'}
 -
 - [395, 'tuple 395']
-box.space.vinyl:insert{396, "tuple 396"}
+box.space.vinyl:insert{396, 'tuple 396'}
 -
 - [396, 'tuple 396']
-box.space.vinyl:insert{397, "tuple 397"}
+box.space.vinyl:insert{397, 'tuple 397'}
 -
 - [397, 'tuple 397']
-box.space.vinyl:insert{398, "tuple 398"}
+box.space.vinyl:insert{398, 'tuple 398'}
 -
 - [398, 'tuple 398']
-box.space.vinyl:insert{399, "tuple 399"}
+box.space.vinyl:insert{399, 'tuple 399'}
 -
 - [399, 'tuple 399']
 box.space.memtx:select{395}
diff --git a/test/replication-py/swap.test.py b/test/replication-py/swap.test.py
index 98eeeea6d..c5718cffd 100644
--- a/test/replication-py/swap.test.py
+++ b/test/replication-py/swap.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import os
 import tarantool
 from lib.tarantool_server import TarantoolServer
@@ -7,26 +9,26 @@ import yaml
 REPEAT = 20
 ID_BEGIN = 0
 ID_STEP = 5
-LOGIN = 'test'
-PASSWORD = 'pass123456'
+LOGIN = "test"
+PASSWORD = "pass123456"
 
-engines = ['memtx', 'vinyl']
+engines = ["memtx", "vinyl"]
 
 def insert_tuples(_server, begin, end, msg = "tuple"):
     for engine in engines:
         for i in range(begin, end):
-            print 'box.space.%s:insert{%d, "%s %d"}' % (engine, i, msg, i)
-            print '-'
+            print("box.space.{}:insert{{{}, '{} {}'}}".format(engine, i, msg, i))
+            print("-")
             space = _server.iproto.py_con.space(engine)
-            print space.insert((i, '%s %d' % (msg, i)))
+            print(space.insert((i, "{} {}".format(msg, i))))
 
 def select_tuples(_server, begin, end):
     for engine in engines:
         for i in range(begin, end):
-            print 'box.space.%s:select{%d}' % (engine, i)
-            print '-'
+            print("box.space.{}:select{{{}}}".format(engine, i))
+            print("-")
             space = _server.iproto.py_con.space(engine)
-            print space.select(i)
+            print(space.select(i))
 
 # master server
 master = server
@@ -34,11 +36,11 @@ master = server
 master.stop()
 master.cleanup()
 master.deploy()
-master.admin("box.schema.user.create('%s', { password = '%s'})" % (LOGIN, PASSWORD))
-master.admin("box.schema.user.grant('%s', 'read,write,execute', 'universe')" % LOGIN)
+master.admin("box.schema.user.create('{}', {{ password = '{}'}})".format(LOGIN, PASSWORD))
+master.admin("box.schema.user.grant('{}', 'read,write,execute', 'universe')".format(LOGIN))
 master.iproto.py_con.authenticate(LOGIN, PASSWORD)
-master.uri = '%s:%s@%s' % (LOGIN, PASSWORD, master.iproto.uri)
-os.putenv('MASTER', master.uri)
+master.uri = "{}:{}@{}".format(LOGIN, PASSWORD, master.iproto.uri)
+os.putenv("MASTER", master.uri)
 
 # replica server
 replica = TarantoolServer()
@@ -46,27 +48,27 @@ replica.script = "replication-py/replica.lua"
 replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
 replica.deploy()
 replica.admin("while box.info.id == 0 do require('fiber').sleep(0.01) end")
-replica.uri = '%s:%s@%s' % (LOGIN, PASSWORD, replica.iproto.uri)
+replica.uri = "{}:{}@{}".format(LOGIN, PASSWORD, replica.iproto.uri)
 replica.admin("while box.space['_priv']:len() < 1 do require('fiber').sleep(0.01) end")
 replica.iproto.py_con.authenticate(LOGIN, PASSWORD)
 
 for engine in engines:
-    master.admin("s = box.schema.space.create('%s', { engine = '%s'})" % (engine, engine))
+    master.admin("s = box.schema.space.create('{}', {{ engine = '{}'}})".format(engine, engine))
     master.admin("index = s:create_index('primary', {type = 'tree'})")
 
 ### gh-343: replica.cc must not add login and password to proc title
 #status = replica.get_param("status")
-#host_port = "%s:%s" % master.iproto.uri
-#m = re.search(r'replica/(.*)/.*', status)
+#host_port = "{}:{}".format(master.iproto.uri)
+#m = re.search(r"replica/(.*)/.*", status)
 #if not m or m.group(1) != host_port:
-#    print 'invalid box.info.status', status, 'expected host:port', host_port
+#    print("invalid box.info.status", status, "expected host:port", host_port)
 
-master_id = master.get_param('id')
-replica_id = replica.get_param('id')
+master_id = master.get_param("id")
+replica_id = replica.get_param("id")
 
 id = ID_BEGIN
 for i in range(REPEAT):
-    print "test %d iteration" % i
+    print("test {} iteration".format(i))
 
     # insert to master
     insert_tuples(master, id, id + ID_STEP)
@@ -82,7 +84,7 @@ for i in range(REPEAT):
     select_tuples(replica, id, id + ID_STEP)
     id += ID_STEP
 
-    print "swap servers"
+    print("swap servers")
     # reconfigure replica to master
     replica.rpl_master = None
     print("switch replica to master")
@@ -90,7 +92,7 @@ for i in range(REPEAT):
     # reconfigure master to replica
     master.rpl_master = replica
     print("switch master to replica")
-    master.admin("box.cfg{replication='%s'}" % replica.uri, silent=True)
+    master.admin("box.cfg{{replication='{}'}}".format(replica.uri), silent=True)
 
     # insert to replica
     insert_tuples(replica, id, id + ID_STEP)
@@ -106,7 +108,7 @@ for i in range(REPEAT):
     select_tuples(master, id, id + ID_STEP)
     id += ID_STEP
 
-    print "rollback servers configuration"
+    print("rollback servers configuration")
     # reconfigure replica to master
     master.rpl_master = None
     print("switch master to master")
@@ -114,7 +116,7 @@ for i in range(REPEAT):
     # reconfigure master to replica
     replica.rpl_master = master
     print("switch replica to replica")
-    replica.admin("box.cfg{replication='%s'}" % master.uri, silent=True)
+    replica.admin("box.cfg{{replication='{}'}}".format(master.uri), silent=True)
 
 
 # Cleanup.
diff --git a/test/xlog-py/big_lsn.test.py b/test/xlog-py/big_lsn.test.py
index c6a31d971..edc1e5620 100644
--- a/test/xlog-py/big_lsn.test.py
+++ b/test/xlog-py/big_lsn.test.py
@@ -19,8 +19,8 @@ old_wal = os.path.join(wal_dir, "%020d.xlog" % old_lsn)
 new_wal = os.path.join(wal_dir, "%020d.xlog" % new_lsn)
 with open(old_wal, "r+") as f:
     s = f.read()
-    s = s.replace("VClock: {1: %d}" % old_lsn,
-                  "VClock: {1: %d}" % new_lsn)
+    s = s.replace("VClock: {{1: {}}}".format(old_lsn),
+                  "VClock: {{1: {}}}".format(new_lsn))
     f.seek(0)
     f.write(s)
 os.rename(old_wal, new_wal)
diff --git a/test/xlog-py/dup_key.test.py b/test/xlog-py/dup_key.test.py
index 7609c9555..b1442c520 100644
--- a/test/xlog-py/dup_key.test.py
+++ b/test/xlog-py/dup_key.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import os
 import yaml
 
@@ -26,7 +28,7 @@ server.stop()
 
 # Save wal#1
 if os.access(wal, os.F_OK):
-    print ".xlog exists"
+    print(".xlog exists")
     os.rename(wal, wal_old)
 
 # Write wal#2
@@ -37,18 +39,17 @@ server.stop()
 
 # Restore wal#1
 if not os.access(wal, os.F_OK):
-    print ".xlog does not exist"
+    print(".xlog does not exist")
     os.rename(wal_old, wal)
 
 server.start()
-line = 'Duplicate key'
-print "check log line for '%s'" % line
-print
+line = "Duplicate key"
+print("check log line for '{}'".format(line))
+print("")
 if server.logfile_pos.seek_once(line) >= 0:
-    print "'%s' exists in server log" % line
-print
+    print("'{}' exists in server log".format(line))
+print("")
 
 server.admin("box.space.test:get{1}")
 server.admin("box.space.test:get{2}")
 server.admin("box.space.test:len()")
-
diff --git a/test/xlog-py/empty.test.py b/test/xlog-py/empty.test.py
index d6f89e0fb..8b19bc3d7 100644
--- a/test/xlog-py/empty.test.py
+++ b/test/xlog-py/empty.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import os
 import yaml
 from os.path import abspath
@@ -20,7 +22,7 @@ f.close()
 server.start()
 server.stop()
 if os.access(filename, os.F_OK):
-    print ".xlog exists"
+    print(".xlog exists")
 # the server has started but is crippled since it
 # can't override an existing file
 server.start()
diff --git a/test/xlog-py/lsn_gap.test.py b/test/xlog-py/lsn_gap.test.py
index 7a503ff07..8da6166a2 100644
--- a/test/xlog-py/lsn_gap.test.py
+++ b/test/xlog-py/lsn_gap.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import os
 import yaml
 #
@@ -28,11 +30,11 @@ os.unlink(wal)
 
 server.start()
 line="ignoring a gap in LSN"
-print "check log line for '%s'" % line
-print
+print("check log line for '{}'".format(line))
+print("")
 if server.logfile_pos.seek_once(line) >= 0:
-    print "'%s' exists in server log" % line
-print
+    print("'{}' exists in server log".format(line))
+print("")
 
 # missing tuple from removed xlog
 server.admin("box.space.test:select{}")
diff --git a/test/xlog-py/misc.test.py b/test/xlog-py/misc.test.py
index e39ae1495..3fcda9504 100644
--- a/test/xlog-py/misc.test.py
+++ b/test/xlog-py/misc.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import os
 import yaml
 
@@ -11,9 +13,9 @@ server.stop()
 
 data_path = os.path.join(server.vardir, server.name)
 
-print """
-# xlog file must exist after inserts.
-"""
+print("")
+print("# xlog file must exist after inserts.")
+print("")
 filename = str(lsn).zfill(20) + ".xlog"
 wal = os.path.join(data_path, filename)
 
@@ -21,16 +23,16 @@ server.start()
 
 server.admin("space = box.schema.space.create('tweedledum')")
 if os.access(wal, os.F_OK):
-  print ".xlog exists"
+  print(".xlog exists")
 
 server.admin("index = space:create_index('primary', { type = 'hash' })")
 
 server.stop()
 lsn += 2
 
-print """
-# a new xlog must be opened after regular termination.
-"""
+print("")
+print("# a new xlog must be opened after regular termination.")
+print("")
 filename = str(lsn).zfill(20) + ".xlog"
 server.start()
 
@@ -39,18 +41,17 @@ wal = os.path.join(data_path, filename)
 server.admin("box.space.tweedledum:insert{3, 'third tuple'}")
 
 if os.access(wal, os.F_OK):
-  print "a new .xlog exists"
+  print("a new .xlog exists")
 
 server.stop()
 
 if os.access(wal, os.F_OK):
-  print ".xlog stays around after sutdown"
+  print(".xlog stays around after shutdown")
 lsn += 1
 
-print """
-# An xlog file with one record during recovery.
-"""
-
+print("")
+print("# An xlog file with one record during recovery.")
+print("")
 server.start()
 filename = str(lsn).zfill(20) + ".xlog"
 wal = os.path.join(data_path, filename)
@@ -63,7 +64,7 @@ if pid > 0:
 server.stop()
 
 if os.access(wal, os.F_OK):
-    print ".xlog exists after kill -9"
+    print(".xlog exists after kill -9")
     # Remove last byte from xlog
     f = open(wal, "a")
     size = f.tell()
@@ -73,7 +74,7 @@ if os.access(wal, os.F_OK):
 server.start()
 
 if os.access(wal, os.F_OK):
-  print "corrupt .xlog exists after start"
+  print("corrupt .xlog exists after start")
 server.stop()
 lsn += 1
 
@@ -98,4 +99,4 @@ for f in os.listdir(data_path):
 server.start()
 lsn = int(yaml.safe_load(admin("box.info.lsn", silent=True))[0])
 if lsn == orig_lsn:
-    print ".snap.inprogress is ignored"
+    print(".snap.inprogress is ignored")
diff --git a/test/xlog-py/missing.test.py b/test/xlog-py/missing.test.py
index df35dc6d7..2fff0df6c 100644
--- a/test/xlog-py/missing.test.py
+++ b/test/xlog-py/missing.test.py
@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import yaml
 import os 
 #
@@ -34,11 +36,11 @@ os.unlink(wal)
 # this may lead to infinite recursion at start
 server.start()
 line="ignoring a gap in LSN"
-print "check log line for '%s'" % line
-print
+print("check log line for '{}'".format(line))
+print("")
 if server.logfile_pos.seek_once(line) >= 0:
-    print "'%s' exists in server log" % line
-print
+    print("'{}' exists in server log".format(line))
+print("")
 
 # missing tuples from removed xlog
 server.admin("box.space.test:select{}")
-- 
2.25.1

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Tarantool-patches] [PATCH 2/6] test: remove dead code in Python tests end extra newline
  2020-12-07  7:46 [Tarantool-patches] [PATCH 0/6] Support Python 3 in tests and PEPify source code sergeyb
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 1/6] test: support Python 3 and make quotes use consistent sergeyb
@ 2020-12-07  7:46 ` sergeyb
  2020-12-09 20:20   ` Leonid Vasiliev
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 3/6] test: remove empty print() functions sergeyb
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 14+ messages in thread
From: sergeyb @ 2020-12-07  7:46 UTC (permalink / raw)
  To: tarantool-patches, lvasiliev; +Cc: alexander.turenko

From: Sergey Bronnikov <sergeyb@tarantool.org>

---
 test/replication-py/init_storage.test.py | 6 +++---
 test/replication-py/swap.test.py         | 9 +--------
 test/xlog-py/dup_key.test.py             | 5 -----
 test/xlog-py/lsn_gap.test.py             | 1 -
 4 files changed, 4 insertions(+), 17 deletions(-)

diff --git a/test/replication-py/init_storage.test.py b/test/replication-py/init_storage.test.py
index 30ba75405..04279b69e 100644
--- a/test/replication-py/init_storage.test.py
+++ b/test/replication-py/init_storage.test.py
@@ -20,7 +20,7 @@ master.admin("for k = 1, 9 do space:insert{k, k*k} end")
 
 replica = TarantoolServer(server.ini)
 replica.script = "replication-py/replica.lua"
-replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
+replica.vardir = server.vardir
 replica.rpl_master = master
 replica.deploy()
 replica.admin("box.space.test:select()")
@@ -41,7 +41,7 @@ lsn = master.get_lsn(master_id)
 
 replica = TarantoolServer(server.ini)
 replica.script = "replication-py/replica.lua"
-replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
+replica.vardir = server.vardir
 replica.rpl_master = master
 replica.deploy()
 
@@ -60,7 +60,7 @@ print("-------------------------------------------------------------")
 server.stop()
 replica = TarantoolServer(server.ini)
 replica.script = "replication-py/replica.lua"
-replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
+replica.vardir = server.vardir
 replica.rpl_master = master
 replica.deploy(wait=False)
 
diff --git a/test/replication-py/swap.test.py b/test/replication-py/swap.test.py
index c5718cffd..d2117775a 100644
--- a/test/replication-py/swap.test.py
+++ b/test/replication-py/swap.test.py
@@ -45,7 +45,7 @@ os.putenv("MASTER", master.uri)
 # replica server
 replica = TarantoolServer()
 replica.script = "replication-py/replica.lua"
-replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
+replica.vardir = server.vardir
 replica.deploy()
 replica.admin("while box.info.id == 0 do require('fiber').sleep(0.01) end")
 replica.uri = "{}:{}@{}".format(LOGIN, PASSWORD, replica.iproto.uri)
@@ -56,13 +56,6 @@ for engine in engines:
     master.admin("s = box.schema.space.create('{}', {{ engine = '{}'}})".format(engine, engine))
     master.admin("index = s:create_index('primary', {type = 'tree'})")
 
-### gh-343: replica.cc must not add login and password to proc title
-#status = replica.get_param("status")
-#host_port = "{}:{}".format(master.iproto.uri)
-#m = re.search(r"replica/(.*)/.*", status)
-#if not m or m.group(1) != host_port:
-#    print("invalid box.info.status", status, "expected host:port", host_port)
-
 master_id = master.get_param("id")
 replica_id = replica.get_param("id")
 
diff --git a/test/xlog-py/dup_key.test.py b/test/xlog-py/dup_key.test.py
index b1442c520..a40133ef2 100644
--- a/test/xlog-py/dup_key.test.py
+++ b/test/xlog-py/dup_key.test.py
@@ -3,11 +3,6 @@ from __future__ import print_function
 import os
 import yaml
 
-#print """
-#A test case for https://bugs.launchpad.net/tarantool/+bug/1052018
-#panic_on_wal_error doesn't work for duplicate key errors
-#"""
-
 server.stop()
 server.deploy()
 
diff --git a/test/xlog-py/lsn_gap.test.py b/test/xlog-py/lsn_gap.test.py
index 8da6166a2..b80b97146 100644
--- a/test/xlog-py/lsn_gap.test.py
+++ b/test/xlog-py/lsn_gap.test.py
@@ -38,4 +38,3 @@ print("")
 
 # missing tuple from removed xlog
 server.admin("box.space.test:select{}")
-
-- 
2.25.1

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Tarantool-patches] [PATCH 3/6] test: remove empty print() functions
  2020-12-07  7:46 [Tarantool-patches] [PATCH 0/6] Support Python 3 in tests and PEPify source code sergeyb
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 1/6] test: support Python 3 and make quotes use consistent sergeyb
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 2/6] test: remove dead code in Python tests end extra newline sergeyb
@ 2020-12-07  7:46 ` sergeyb
  2020-12-09 20:27   ` Leonid Vasiliev
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 4/6] add initial flake8 config sergeyb
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 14+ messages in thread
From: sergeyb @ 2020-12-07  7:46 UTC (permalink / raw)
  To: tarantool-patches, lvasiliev; +Cc: alexander.turenko

From: Sergey Bronnikov <sergeyb@tarantool.org>

Python tests are based on a reference output: on every run output produced by a
test compared to reference output and test become passed when both output are
equal. Perhaps empty print()'s were added as a delimeter for testscases in a
produced output, so the main purpose of these empty print() functions is a
reader's convenience. The problem with empty print's is that code become ugly.
---
 test/box-py/call.result           | 4 ----
 test/box-py/call.test.py          | 4 ----
 test/replication-py/multi.result  | 6 ------
 test/replication-py/multi.test.py | 6 ------
 test/xlog-py/dup_key.result       | 2 --
 test/xlog-py/dup_key.test.py      | 2 --
 test/xlog-py/lsn_gap.result       | 2 --
 test/xlog-py/lsn_gap.test.py      | 2 --
 test/xlog-py/misc.result          | 6 ------
 test/xlog-py/misc.test.py         | 6 ------
 test/xlog-py/missing.result       | 2 --
 test/xlog-py/missing.test.py      | 2 --
 12 files changed, 44 deletions(-)

diff --git a/test/box-py/call.result b/test/box-py/call.result
index e6b7b8dc9..dc3da3c82 100644
--- a/test/box-py/call.result
+++ b/test/box-py/call.result
@@ -55,11 +55,9 @@ call  box.error (33333, 'Hey!')
         "reason": "Unknown error"
     }
 }
-
 # A test case for Bug#103491
 # server CALL processing bug with name path longer than two
 # https://bugs.launchpad.net/tarantool/+bug/1034912
-
 f = function() return 'OK' end
 ---
 ...
@@ -81,11 +79,9 @@ call  test.f ()
 - 'OK'
 call  test.test.f ()
 - 'OK'
-
 # Test for Bug #955226
 # Lua Numbers are passed back wrongly as strings
 #
-
 function foo() return 1, 2, '1', '2' end
 ---
 ...
diff --git a/test/box-py/call.test.py b/test/box-py/call.test.py
index 75ced1dff..519334c8b 100644
--- a/test/box-py/call.test.py
+++ b/test/box-py/call.test.py
@@ -23,11 +23,9 @@ call("f1")
 # IPROTO required!
 call("box.error", 33333, "Hey!")
 
-print("")
 print("# A test case for Bug#103491")
 print("# server CALL processing bug with name path longer than two")
 print("# https://bugs.launchpad.net/tarantool/+bug/1034912")
-print("")
 admin("f = function() return 'OK' end")
 admin("test = {}")
 admin("test.f = f")
@@ -37,11 +35,9 @@ call("f")
 call("test.f")
 call("test.test.f")
 
-print("")
 print("# Test for Bug #955226")
 print("# Lua Numbers are passed back wrongly as strings")
 print("#")
-print("")
 admin("function foo() return 1, 2, '1', '2' end")
 call("foo")
 
diff --git a/test/replication-py/multi.result b/test/replication-py/multi.result
index f90ab22a0..f1ec286ad 100644
--- a/test/replication-py/multi.result
+++ b/test/replication-py/multi.result
@@ -37,27 +37,21 @@ _ = box.space.test:create_index('primary')
 server 1 is ok
 server 2 is ok
 server 3 is ok
-
 Insert records
 inserted 60 records
-
 Synchronize
 server 1 done
 server 2 done
 server 3 done
 done
-
 Check data
 server 1 is ok
 server 2 is ok
 server 3 is ok
 Done
-
-
 ----------------------------------------------------------------------
 Cleanup
 ----------------------------------------------------------------------
 server 1 done
 server 2 done
 server 3 done
-
diff --git a/test/replication-py/multi.test.py b/test/replication-py/multi.test.py
index a346fd560..c7d415258 100644
--- a/test/replication-py/multi.test.py
+++ b/test/replication-py/multi.test.py
@@ -72,14 +72,12 @@ master_lsn = master.get_lsn(master.id)
 for server in cluster:
     server.wait_lsn(master.id, master_lsn)
     print("server {} is ok".format(server.id))
-print("")
 
 print("Insert records")
 for i in range(ROW_N):
     server = cluster[i % REPLICA_N]
     server.admin("box.space.test:insert{{{}, {}}}".format(i, server.id), silent = True)
 print("inserted {} records".format(ROW_N))
-print("")
 
 print("Synchronize")
 for server1 in cluster:
@@ -87,16 +85,13 @@ for server1 in cluster:
         server1.wait_lsn(server2.id, server2.get_lsn(server2.id))
     print("server {} done".format(server1.id))
 print("done")
-print("")
 
 print("Check data")
 for server in cluster:
     cnt = yaml.safe_load(server.admin("box.space.test:len()", silent = True))[0]
     print("server {} is {}".format(server.id, cnt == ROW_N and "ok" or "not ok"))
 print("Done")
-print("")
 
-print("")
 print("----------------------------------------------------------------------")
 print("Cleanup")
 print("----------------------------------------------------------------------")
@@ -104,7 +99,6 @@ print("----------------------------------------------------------------------")
 for server in cluster:
     server.stop()
     print("server {} done".format(server.id))
-print("")
 
 master.cleanup()
 master.deploy()
diff --git a/test/xlog-py/dup_key.result b/test/xlog-py/dup_key.result
index f387e8e89..ce3ffbc55 100644
--- a/test/xlog-py/dup_key.result
+++ b/test/xlog-py/dup_key.result
@@ -27,9 +27,7 @@ box.space.test:insert{2, 'fourth tuple'}
 ...
 .xlog does not exist
 check log line for 'Duplicate key'
-
 'Duplicate key' exists in server log
-
 box.space.test:get{1}
 ---
 - [1, 'first tuple']
diff --git a/test/xlog-py/dup_key.test.py b/test/xlog-py/dup_key.test.py
index a40133ef2..534221150 100644
--- a/test/xlog-py/dup_key.test.py
+++ b/test/xlog-py/dup_key.test.py
@@ -40,10 +40,8 @@ if not os.access(wal, os.F_OK):
 server.start()
 line = "Duplicate key"
 print("check log line for '{}'".format(line))
-print("")
 if server.logfile_pos.seek_once(line) >= 0:
     print("'{}' exists in server log".format(line))
-print("")
 
 server.admin("box.space.test:get{1}")
 server.admin("box.space.test:get{2}")
diff --git a/test/xlog-py/lsn_gap.result b/test/xlog-py/lsn_gap.result
index 685fc1efa..8633d76a4 100644
--- a/test/xlog-py/lsn_gap.result
+++ b/test/xlog-py/lsn_gap.result
@@ -21,9 +21,7 @@ box.space.test:insert{4, 'fourth tuple'}
 - [4, 'fourth tuple']
 ...
 check log line for 'ignoring a gap in LSN'
-
 'ignoring a gap in LSN' exists in server log
-
 box.space.test:select{}
 ---
 - - [1, 'first tuple']
diff --git a/test/xlog-py/lsn_gap.test.py b/test/xlog-py/lsn_gap.test.py
index b80b97146..2d814c42c 100644
--- a/test/xlog-py/lsn_gap.test.py
+++ b/test/xlog-py/lsn_gap.test.py
@@ -31,10 +31,8 @@ os.unlink(wal)
 server.start()
 line="ignoring a gap in LSN"
 print("check log line for '{}'".format(line))
-print("")
 if server.logfile_pos.seek_once(line) >= 0:
     print("'{}' exists in server log".format(line))
-print("")
 
 # missing tuple from removed xlog
 server.admin("box.space.test:select{}")
diff --git a/test/xlog-py/misc.result b/test/xlog-py/misc.result
index 6c85814b1..8b4a6740c 100644
--- a/test/xlog-py/misc.result
+++ b/test/xlog-py/misc.result
@@ -1,6 +1,4 @@
-
 # xlog file must exist after inserts.
-
 space = box.schema.space.create('tweedledum')
 ---
 ...
@@ -8,16 +6,12 @@ space = box.schema.space.create('tweedledum')
 index = space:create_index('primary', { type = 'hash' })
 ---
 ...
-
 # a new xlog must be opened after regular termination.
-
 box.space.tweedledum:insert{3, 'third tuple'}
 ---
 - [3, 'third tuple']
 ...
-
 # An xlog file with one record during recovery.
-
 box.space.tweedledum:insert{4, 'fourth tuple'}
 ---
 - [4, 'fourth tuple']
diff --git a/test/xlog-py/misc.test.py b/test/xlog-py/misc.test.py
index 3fcda9504..678031afa 100644
--- a/test/xlog-py/misc.test.py
+++ b/test/xlog-py/misc.test.py
@@ -13,9 +13,7 @@ server.stop()
 
 data_path = os.path.join(server.vardir, server.name)
 
-print("")
 print("# xlog file must exist after inserts.")
-print("")
 filename = str(lsn).zfill(20) + ".xlog"
 wal = os.path.join(data_path, filename)
 
@@ -30,9 +28,7 @@ server.admin("index = space:create_index('primary', { type = 'hash' })")
 server.stop()
 lsn += 2
 
-print("")
 print("# a new xlog must be opened after regular termination.")
-print("")
 filename = str(lsn).zfill(20) + ".xlog"
 server.start()
 
@@ -49,9 +45,7 @@ if os.access(wal, os.F_OK):
   print(".xlog stays around after shutdown")
 lsn += 1
 
-print("")
 print("# An xlog file with one record during recovery.")
-print("")
 server.start()
 filename = str(lsn).zfill(20) + ".xlog"
 wal = os.path.join(data_path, filename)
diff --git a/test/xlog-py/missing.result b/test/xlog-py/missing.result
index c52f75c68..826f57296 100644
--- a/test/xlog-py/missing.result
+++ b/test/xlog-py/missing.result
@@ -29,9 +29,7 @@ box.space.test:delete{3}
 - [3, 'third tuple']
 ...
 check log line for 'ignoring a gap in LSN'
-
 'ignoring a gap in LSN' exists in server log
-
 box.space.test:select{}
 ---
 - []
diff --git a/test/xlog-py/missing.test.py b/test/xlog-py/missing.test.py
index 2fff0df6c..13b3ddd8f 100644
--- a/test/xlog-py/missing.test.py
+++ b/test/xlog-py/missing.test.py
@@ -37,10 +37,8 @@ os.unlink(wal)
 server.start()
 line="ignoring a gap in LSN"
 print("check log line for '{}'".format(line))
-print("")
 if server.logfile_pos.seek_once(line) >= 0:
     print("'{}' exists in server log".format(line))
-print("")
 
 # missing tuples from removed xlog
 server.admin("box.space.test:select{}")
-- 
2.25.1

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Tarantool-patches] [PATCH 4/6] add initial flake8 config
  2020-12-07  7:46 [Tarantool-patches] [PATCH 0/6] Support Python 3 in tests and PEPify source code sergeyb
                   ` (2 preceding siblings ...)
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 3/6] test: remove empty print() functions sergeyb
@ 2020-12-07  7:46 ` sergeyb
  2020-12-09 20:57   ` Leonid Vasiliev
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 5/6] cmake: add integration with flake8 sergeyb
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 6/6] ci: enable flake8 sergeyb
  5 siblings, 1 reply; 14+ messages in thread
From: sergeyb @ 2020-12-07  7:46 UTC (permalink / raw)
  To: tarantool-patches, lvasiliev; +Cc: alexander.turenko

From: Sergey Bronnikov <sergeyb@tarantool.org>

flake8 configuration file supress warnings, that can be fixed later.
Supressed warnings can be splitted for three categories and for each of them
separate issue exists:

- Fix warnings Exx: #5599
- Fix warnings Fxx: #5598
- Fix warnings Wxx: #5597
---
 .flake8 | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)
 create mode 100644 .flake8

diff --git a/.flake8 b/.flake8
new file mode 100644
index 000000000..249970226
--- /dev/null
+++ b/.flake8
@@ -0,0 +1,66 @@
+[flake8]
+inline-quotes = "
+statistics = True
+select = Q0
+exclude = test/test-run.py
+ignore =
+    # E111: indentation is not a multiple of four
+    E111,
+    # E123: closing bracket does not match indentation of opening bracket's line
+    E123,
+    # E126: continuation line over-indented for hanging indent
+    E126,
+    # E128: continuation line under-indented for visual indent
+    E128,
+    # E201: whitespace after '('
+    E201,
+    # E202: whitespace before ')'
+    E202,
+    # E203: whitespace before ':'
+    E203,
+    # E225: missing whitespace around operator
+    E225,
+    # E226: missing whitespace around arithmetic operator
+    E226,
+    # E231: missing whitespace after ',', ';' or ':'
+    E231,
+    # E241: multiple spaces after ','
+    E241,
+    # E251: unexpected spaces around keyword / parameter equals
+    E251,
+    # E261: at least two spaces before inline comment
+    E261,
+    # E265: block comment should start with '#'
+    E265,
+    # E266: too many leading '#' for block comment
+    E266,
+    # E302: expected 2 blank lines, found 0
+    E302,
+    # E305: expected 2 blank lines after end of function or class
+    E305,
+    # E402: module level import not at top of file
+    E402,
+    # E501: line too long (82 > 79 characters)
+    E501,
+    # E502: the backslash is redundant between brackets
+    E502,
+    # E703: statement ends with a semicolon
+    E703,
+    # E722: do not use bare except, specify exception instead
+    E722,
+    # F401: module imported but unused
+    F401,
+    # F403: 'from module import *' used; unable to detect undefined names
+    F403,
+    # F405: name may be undefined, or defined from star imports: module
+    F405,
+    # F821: undefined name name
+    F821,
+    # F841: local variable name is assigned to but never used
+    F841,
+    # W291: trailing whitespace
+    W291,
+    # W391: blank line at end of file
+    W391,
+    # W605: invalid escape sequence 'x'
+    W605
-- 
2.25.1

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Tarantool-patches] [PATCH 5/6] cmake: add integration with flake8
  2020-12-07  7:46 [Tarantool-patches] [PATCH 0/6] Support Python 3 in tests and PEPify source code sergeyb
                   ` (3 preceding siblings ...)
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 4/6] add initial flake8 config sergeyb
@ 2020-12-07  7:46 ` sergeyb
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 6/6] ci: enable flake8 sergeyb
  5 siblings, 0 replies; 14+ messages in thread
From: sergeyb @ 2020-12-07  7:46 UTC (permalink / raw)
  To: tarantool-patches, lvasiliev; +Cc: alexander.turenko

From: Sergey Bronnikov <sergeyb@tarantool.org>

introduced two new targets:
- separate target to run flake8
- separate target to run all static analyzers
  (currently luacheck and flake8)
---
 CMakeLists.txt | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fa6818f8e..8dae93e6e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,6 +26,7 @@ find_program(GIT git)
 find_program(LD ld)
 find_program(CTAGS ctags)
 find_program(LUACHECK luacheck ENV PATH)
+find_program(FLAKE8 flake8 ENV PATH)
 
 # Define PACKAGE macro in tarantool/config.h
 set(PACKAGE "Tarantool" CACHE STRING "Package name.")
@@ -164,6 +165,23 @@ add_custom_command(TARGET luacheck
     COMMENT "Perform static analysis of Lua code"
 )
 
+#
+# Enable 'make flake8' target.
+#
+
+add_custom_target(flake8)
+add_custom_command(TARGET flake8
+    COMMAND ${FLAKE8} --config "${PROJECT_SOURCE_DIR}/.flake8" "${PROJECT_SOURCE_DIR}/test"
+    COMMENT "Perform static analysis of Python code"
+)
+
+#
+# Enable 'make check' target.
+#
+
+add_custom_target(check)
+add_dependencies(check luacheck flake8)
+
 if (WITH_JEPSEN)
     ExternalProject_Add(
         jepsen-tests
-- 
2.25.1

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Tarantool-patches] [PATCH 6/6] ci: enable flake8
  2020-12-07  7:46 [Tarantool-patches] [PATCH 0/6] Support Python 3 in tests and PEPify source code sergeyb
                   ` (4 preceding siblings ...)
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 5/6] cmake: add integration with flake8 sergeyb
@ 2020-12-07  7:46 ` sergeyb
  5 siblings, 0 replies; 14+ messages in thread
From: sergeyb @ 2020-12-07  7:46 UTC (permalink / raw)
  To: tarantool-patches, lvasiliev; +Cc: alexander.turenko

From: Sergey Bronnikov <sergeyb@tarantool.org>

The main reason to enable continuous Python static analysis
is checking consistency in using quotes fixed in commit
9f4aca80dafbc8fb0ef8fb306927e78eef7fb3ef
('test: support Python 3 and make quotes use consistent')
---
 .gitlab-ci.yml |  8 ++++++++
 .travis.mk     | 12 ++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 668fc830d..646a6244a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -192,6 +192,14 @@ luacheck:
   script:
     - ${GITLAB_MAKE} test_debian_docker_luacheck
 
+flake8:
+  <<: *docker_test_definition
+  stage: static_analysis
+  tags:
+    - deploy_test
+  script:
+    - ${GITLAB_MAKE} test_debian_docker_flake8
+
 # Tests
 
 out_of_source:
diff --git a/.travis.mk b/.travis.mk
index 238e31cda..b767e80cd 100644
--- a/.travis.mk
+++ b/.travis.mk
@@ -114,6 +114,7 @@ $(BIN_DIR)/terraform:
 # Release
 
 configure_debian:
+	PATH="${PATH}:/root/.local/bin"
 	cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON ${CMAKE_EXTRA_PARAMS}
 
 build_debian: configure_debian
@@ -209,6 +210,17 @@ test_debian_install_luacheck:
 test_debian_luacheck: test_debian_install_luacheck configure_debian
 	make luacheck
 
+test_debian_docker_flake8:
+	docker run -w ${OOS_SRC_PATH} -v ${PWD}:${OOS_SRC_PATH} --privileged \
+		--cap-add=sys_nice --network=host -i ${DOCKER_IMAGE_TARANTOOL} \
+		make -f .travis.mk test_debian_flake8
+
+test_debian_install_flake8:
+	pip install flake8 flake8-quotes
+
+test_debian_flake8: test_debian_install_flake8 configure_debian
+	make flake8
+
 # Out-Of-Source build
 
 build_oos:
-- 
2.25.1

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Tarantool-patches] [PATCH 1/6] test: support Python 3 and make quotes use consistent
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 1/6] test: support Python 3 and make quotes use consistent sergeyb
@ 2020-12-09 15:58   ` Leonid Vasiliev
  2020-12-10 13:23     ` Sergey Bronnikov
  0 siblings, 1 reply; 14+ messages in thread
From: Leonid Vasiliev @ 2020-12-09 15:58 UTC (permalink / raw)
  To: sergeyb, tarantool-patches; +Cc: alexander.turenko

Hi! Thank you for the patch!
I regret the moment when I suggested at the same time reformat the code
in accordance with the PEP8) (Many changes).
But for tests, in my opinion it is normal. This is easy to check and
can't introduce degradation.
In addition, I think LGTM alone will be enough for such changes.
And please remove the change in quotes for "tuple" in swap.test.py, it 
adds too many changes.

So, see some comments below:

On 07.12.2020 10:46, sergeyb@tarantool.org wrote:
> From: Sergey Bronnikov <sergeyb@tarantool.org>
> 
> - convert print statement to function. In a Python 3 'print' becomes a
> function, see [1]. Patch makes 'print' in a regression tests compatible with
> Python 3.
> - according to PEP8, mixing using double quotes and quotes in a project looks
> inconsistent (one must be selected). Patch makes using quotes with strings
> consistent.
> - convert iteritems() to list

1) Looks like this can be moved to a separate commit.

> - print multiline strings with multiple print()
> - use "format()" instead of "%" everywhere
> 
> 1. https://docs.python.org/3/whatsnew/3.0.html#print-is-a-function
> 
> Closes #5538
> ---
>   test/app-tap/httpd.py                    |   42 +-
>   test/box-py/args.test.py                 |   14 +-
>   test/box-py/bad_trigger.result           |    2 -
>   test/box-py/bad_trigger.test.py          |   20 +-
>   test/box-py/bootstrap.result             |    2 +-
>   test/box-py/bootstrap.test.py            |   16 +-
>   test/box-py/call.result                  |   12 +-
>   test/box-py/call.test.py                 |   92 +-
>   test/box-py/iproto.result                |   10 +-
>   test/box-py/iproto.test.py               |  218 ++-
>   test/box-py/print.result                 |    6 +-
>   test/box-py/print.test.py                |   24 +-
>   test/box-py/snapshot.result              |    4 +-
>   test/box-py/snapshot.test.py             |   33 +-
>   test/long_run-py/finalizers.result       |    2 +-
>   test/long_run-py/finalizers.test.py      |    8 +-
>   test/replication-py/cluster.result       |    6 +-
>   test/replication-py/cluster.test.py      |  217 +--
>   test/replication-py/conflict.test.py     |   54 +-
>   test/replication-py/init_storage.test.py |   48 +-
>   test/replication-py/multi.test.py        |   78 +-
>   test/replication-py/swap.result          | 1600 +++++++++++-----------
>   test/replication-py/swap.test.py         |   52 +-
>   test/xlog-py/big_lsn.test.py             |    4 +-
>   test/xlog-py/dup_key.test.py             |   17 +-
>   test/xlog-py/empty.test.py               |    4 +-
>   test/xlog-py/lsn_gap.test.py             |   10 +-
>   test/xlog-py/misc.test.py                |   33 +-
>   test/xlog-py/missing.test.py             |   10 +-
>   29 files changed, 1324 insertions(+), 1314 deletions(-)
> 
> diff --git a/test/app-tap/httpd.py b/test/app-tap/httpd.py
> index b4662bc1f..b57ef1e39 100755
> --- a/test/app-tap/httpd.py
> +++ b/test/app-tap/httpd.py
> @@ -6,35 +6,35 @@ from gevent import spawn, sleep, socket
>   
>   def absent():
>       code = "500 Server Error"
> -    headers = [('Content-Type', 'application/json')]
> +    headers = [("Content-Type", "application/json")]
>       body = ["No such method"]
>       return code, body, headers
>   
>   def hello():
>       code = "200 OK"
>       body = ["hello world"]
> -    headers = [('Content-Type', 'application/json')]
> +    headers = [("Content-Type", "application/json")]
>       return code, body, headers
>   
>   def hello1():
>       code = "200 OK"
>       body = [b"abc"]
> -    headers = [('Content-Type', 'application/json')]
> +    headers = [("Content-Type", "application/json")]
>       return code, body, headers
>   
>   def headers():
>       code = "200 OK"
>       body = [b"cookies"]
> -    headers = [('Content-Type', 'application/json'),
> -               ('Content-Type', 'application/yaml'),
> -               ('Set-Cookie', 'likes=cheese; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly'),
> -               ('Set-Cookie', 'bad@name=no;'),
> -               ('Set-Cookie', 'badcookie'),
> -               ('Set-Cookie', 'good_name=yes;'),
> -               ('Set-Cookie', 'age = 17; NOSuchOption; EmptyOption=Value;Secure'),
> -               ('my_header', 'value1'),
> -               ('my_header', 'value2'),
> -               ('very_very_very_long_headers_name1', 'true'),
> +    headers = [("Content-Type", "application/json"),
> +               ("Content-Type", "application/yaml"),
> +               ("Set-Cookie", "likes=cheese; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly"),
> +               ("Set-Cookie", "bad@name=no;"),
> +               ("Set-Cookie", "badcookie"),
> +               ("Set-Cookie", "good_name=yes;"),
> +               ("Set-Cookie", "age = 17; NOSuchOption; EmptyOption=Value;Secure"),
> +               ("my_header", "value1"),
> +               ("my_header", "value2"),
> +               ("very_very_very_long_headers_name1", "true"),
>                  ]
>       return code, body, headers
>   
> @@ -42,13 +42,13 @@ def long_query():
>       sleep(0.005)
>       code = "200 OK"
>       body = [b"abc"]
> -    headers = [('Content-Type', 'application/json')]
> +    headers = [("Content-Type", "application/json")]
>       return code, body, headers
>   
>   def redirect():
>       code = "302 Found"
>       body = ["redirecting"]
> -    headers = [('Location', '/')]
> +    headers = [("Location", "/")]
>       return code, body, headers
>   
>   paths = {
> @@ -63,7 +63,7 @@ paths = {
>   def read_handle(env, response):
>       code = "404 Not Found"
>       headers = []
> -    body = ['Not Found']
> +    body = ["Not Found"]
>       if env["PATH_INFO"] in paths:
>           code, body, headers = paths[env["PATH_INFO"]]()
>       for key,value in env.iteritems():
> @@ -74,7 +74,7 @@ def read_handle(env, response):
>   
>   def post_handle(env, response):
>       code = "200 OK"
> -    body = [env['wsgi.input'].read()]
> +    body = [env["wsgi.input"].read()]
>       headers = []
>       for key,value in env.iteritems():
>           if "HTTP_" in key:
> @@ -83,7 +83,7 @@ def post_handle(env, response):
>       return body
>   
>   def other_handle(env, response, method, code):
> -    headers = [('Content-Type', 'text/plain'), ("method", method)]
> +    headers = [("Content-Type", "text/plain"), ("method", method)]
>       body = [method]
>       for key,value in env.iteritems():
>           if "HTTP_" in key:
> @@ -119,15 +119,15 @@ def heartbeat():
>           sys.exit(1)
>   
>   def usage():
> -    sys.stderr.write("Usage: %s { --inet HOST:PORT | --unix PATH }\n" %
> -                     sys.argv[0])
> +    message = "Usage: {} {{ --inet HOST:PORT | --unix PATH }}\n".format(sys.argv[0])
> +    sys.stderr.write(message)
>       sys.exit(1)
>   
>   if len(sys.argv) != 3:
>       usage()
>   
>   if sys.argv[1] == "--inet":
> -    host, port = sys.argv[2].split(':')
> +    host, port = sys.argv[2].split(":")
>       sock_family = socket.AF_INET
>       sock_addr = (host, int(port))
>   elif sys.argv[1] == "--unix":
> diff --git a/test/box-py/args.test.py b/test/box-py/args.test.py
> index c0fac9038..f1b840a85 100644
> --- a/test/box-py/args.test.py
> +++ b/test/box-py/args.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   import sys
>   import os
>   import re
> @@ -5,7 +7,7 @@ import re
>   # Disabled on OpenBSD due to fail #XXXX.
>   import platform
>   
> -if platform.system() == 'OpenBSD':
> +if platform.system() == "OpenBSD":
>       self.skip = 1
>   
>   # mask BFD warnings: https://bugs.launchpad.net/tarantool/+bug/1018356
> @@ -13,9 +15,9 @@ sys.stdout.push_filter("unable to read unknown load command 0x2\d+", "")
>   server.test_option("--help")
>   server.test_option("-h")
>   # Replace with the same value for case when builddir inside source dir
> -sys.stdout.push_filter(re.escape(os.getenv("BUILDDIR")+'/src/tarantool'), "tarantool")
> +sys.stdout.push_filter(re.escape(os.getenv("BUILDDIR")+"/src/tarantool"), "tarantool")
>   sys.stdout.push_filter(re.escape(os.getenv("BUILDDIR")), "${SOURCEDIR}")
> -sys.stdout.push_filter(re.escape(os.getenv("SOURCEDIR")+'/src/tarantool'), "tarantool")
> +sys.stdout.push_filter(re.escape(os.getenv("SOURCEDIR")+"/src/tarantool"), "tarantool")
>   sys.stdout.push_filter(re.escape(os.getenv("SOURCEDIR")), "${SOURCEDIR}")
>   sys.stdout.push_filter("invalid option.*", "invalid option")
>   sys.stdout.push_filter("unrecognized option.*", "unrecognized option")
> @@ -44,11 +46,11 @@ server.test_option(script + " --help 1 2 3")
>   server.test_option("-V " + script + " 1 2 3")
>   
>   # gh-3966: os.exit() hangs if called by a command from the argument list.
> -server.test_option("-e \"print(1) os.exit() print(2)\"")
> -server.test_option("-e \"print(1)\" -e \"os.exit()\" -e \"print(1)\" -e \"os.exit()\" -e \"print(1)\"")
> +server.test_option("-e 'print(1) os.exit() print(2)'")
> +server.test_option("-e 'print(1)' -e 'os.exit()' -e 'print(1)' -e 'os.exit()' -e 'print(1)'")
>   
>   server.test_option("-e \"print('Hello')\" " + script + " 1 2 3")
> -server.test_option("-e \"a = 10\" " + \
> +server.test_option("-e 'a = 10' " + \
>                      "-e print(a) " + \
>                      script + \
>                      " 1 2 3 --help")
> diff --git a/test/box-py/bad_trigger.result b/test/box-py/bad_trigger.result
> index 5d064b764..42cd9a7e8 100644
> --- a/test/box-py/bad_trigger.result
> +++ b/test/box-py/bad_trigger.result
> @@ -1,8 +1,6 @@
> -
>    #
>    # if on_connect() trigger raises an exception, the connection is dropped
>    #
> -
>   nosuchfunction = nil
>   ---
>   ...
> diff --git a/test/box-py/bad_trigger.test.py b/test/box-py/bad_trigger.test.py
> index 7d200b921..789fe8045 100644
> --- a/test/box-py/bad_trigger.test.py
> +++ b/test/box-py/bad_trigger.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   from lib.box_connection import BoxConnection
>   from lib.tarantool_connection import TarantoolConnection
>   from tarantool import NetworkError
> @@ -6,11 +8,9 @@ from tarantool.const import IPROTO_GREETING_SIZE, IPROTO_CODE, IPROTO_ERROR, \
>   import socket
>   import msgpack
>   
> -print """
> - #
> - # if on_connect() trigger raises an exception, the connection is dropped
> - #
> - """
> +print(" #")
> +print(" # if on_connect() trigger raises an exception, the connection is dropped")
> +print(" #")
>   
>   # silence possible error of strict mode
>   server.admin("nosuchfunction = nil")
> @@ -24,12 +24,12 @@ conn.connect()
>   s = conn.socket
>   
>   # Read greeting
> -print 'greeting: ', len(s.recv(IPROTO_GREETING_SIZE)) == IPROTO_GREETING_SIZE
> +print("greeting:  {}".format(len(s.recv(IPROTO_GREETING_SIZE)) == IPROTO_GREETING_SIZE))
>   
>   # Read error packet
>   IPROTO_FIXHEADER_SIZE = 5
>   fixheader = s.recv(IPROTO_FIXHEADER_SIZE)
> -print 'fixheader: ', len(fixheader) == IPROTO_FIXHEADER_SIZE
> +print("fixheader:  {}".format(len(fixheader) == IPROTO_FIXHEADER_SIZE))
>   unpacker.feed(fixheader)
>   packet_len = unpacker.unpack()
>   packet = s.recv(packet_len)
> @@ -38,9 +38,9 @@ unpacker.feed(packet)
>   # Parse packet
>   header = unpacker.unpack()
>   body = unpacker.unpack()
> -print 'error code', (header[IPROTO_CODE] & (REQUEST_TYPE_ERROR - 1))
> -print 'error message: ', body[IPROTO_ERROR]
> -print 'eof:', len(s.recv(1024)) == 0
> +print("error code {}".format((header[IPROTO_CODE] & (REQUEST_TYPE_ERROR - 1))))
> +print("error message:  {}".format(body[IPROTO_ERROR]))
> +print("eof: {}".format(len(s.recv(1024)) == 0))
>   s.close()
>   
>   server.admin("box.session.on_connect(nil, f1)")
> diff --git a/test/box-py/bootstrap.result b/test/box-py/bootstrap.result
> index 0876e77a6..865302698 100644
> --- a/test/box-py/bootstrap.result
> +++ b/test/box-py/bootstrap.result
> @@ -165,7 +165,7 @@ box.space._user:select{}
>     - [3, 1, 'replication', 'role', {}]
>     - [31, 1, 'super', 'role', {}]
>   ...
> -for _, v in box.space._func:pairs{} do r = {} table.insert(r, v:update({{"=", 18, ""}, {"=", 19, ""}})) return r end
> +for _, v in box.space._func:pairs{} do r = {} table.insert(r, v:update({{'=', 18, ''}, {'=', 19, ''}})) return r end
>   ---
>   - - [1, 1, 'box.schema.user.info', 1, 'LUA', '', 'function', [], 'any', 'none', 'none',
>       false, false, true, ['LUA'], {}, '', '', '']
> diff --git a/test/box-py/bootstrap.test.py b/test/box-py/bootstrap.test.py
> index 63c13e8a4..f7c846bf1 100644
> --- a/test/box-py/bootstrap.test.py
> +++ b/test/box-py/bootstrap.test.py
> @@ -1,11 +1,11 @@
> -server.admin('box.internal.bootstrap()')
> -server.admin('box.space._schema:select{}')
> -server.admin('box.space._cluster:select{}')
> -server.admin('box.space._space:select{}')
> -server.admin('box.space._index:select{}')
> -server.admin('box.space._user:select{}')
> -server.admin('for _, v in box.space._func:pairs{} do r = {} table.insert(r, v:update({{"=", 18, ""}, {"=", 19, ""}})) return r end')
> -server.admin('box.space._priv:select{}')
> +server.admin("box.internal.bootstrap()")
> +server.admin("box.space._schema:select{}")
> +server.admin("box.space._cluster:select{}")
> +server.admin("box.space._space:select{}")
> +server.admin("box.space._index:select{}")
> +server.admin("box.space._user:select{}")
> +server.admin("for _, v in box.space._func:pairs{} do r = {} table.insert(r, v:update({{'=', 18, ''}, {'=', 19, ''}})) return r end")
> +server.admin("box.space._priv:select{}")
>   
>   # Cleanup
>   server.stop()
> diff --git a/test/box-py/call.result b/test/box-py/call.result
> index d340ed6fa..e6b7b8dc9 100644
> --- a/test/box-py/call.result
> +++ b/test/box-py/call.result
> @@ -536,10 +536,10 @@ function f(...) return ... end
>   call f({'k2': 'v2', 'k1': 'v1'})
>   ---
>   - {'k2': 'v2', 'k1': 'v1'}
> -eval (return space:auto_increment({"transaction"}))()
> +eval (return space:auto_increment({'transaction'}))()
>   ---
>   - [1, 'transaction']
> -function f(...) return space:auto_increment({"transaction"}) end
> +function f(...) return space:auto_increment({'transaction'}) end
>   ---
>   ...
>   call f()
> @@ -554,11 +554,11 @@ function f(...) return space:select{} end
>   call f()
>   ---
>   - [[1, 'transaction'], [2, 'transaction']]
> -eval (return box.begin(), space:auto_increment({"failed"}), box.rollback())()
> +eval (return box.begin(), space:auto_increment({'failed'}), box.rollback())()
>   ---
>   - None
>   - [3, 'failed']
> -function f(...) return box.begin(), space:auto_increment({"failed"}), box.rollback() end
> +function f(...) return box.begin(), space:auto_increment({'failed'}), box.rollback() end
>   ---
>   ...
>   call f()
> @@ -574,10 +574,10 @@ function f(...) return space:select{} end
>   call f()
>   ---
>   - [[1, 'transaction'], [2, 'transaction']]
> -eval (return require("fiber").sleep(0))()
> +eval (return require('fiber').sleep(0))()
>   ---
>   
> -function f(...) return require("fiber").sleep(0) end
> +function f(...) return require('fiber').sleep(0) end
>   ---
>   ...
>   call f()
> diff --git a/test/box-py/call.test.py b/test/box-py/call.test.py
> index 974ba0cac..75ced1dff 100644
> --- a/test/box-py/call.test.py
> +++ b/test/box-py/call.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   import os
>   import sys
>   
> @@ -6,9 +8,9 @@ def call(name, *args):
>   
>   admin("box.schema.user.create('test', { password = 'test' })")
>   admin("box.schema.user.grant('test', 'execute,read,write', 'universe')")
> -iproto.authenticate('test', 'test')
> +iproto.authenticate("test", "test")
>   # workaround for gh-770 centos 6 float representation
> -admin('exp_notation = 1e123')
> +admin("exp_notation = 1e123")
>   admin("function f1() return 'testing', 1, false, -1, 1.123, math.abs(exp_notation - 1e123) < 0.1, nil end")
>   admin("f1()")
>   call("f1")
> @@ -19,13 +21,13 @@ call("f1")
>   
>   # A test case for https://github.com/tarantool/tarantool/issues/44
>   # IPROTO required!
> -call("box.error", 33333, 'Hey!')
> +call("box.error", 33333, "Hey!")
>   
> -print """
> -# A test case for Bug#103491
> -# server CALL processing bug with name path longer than two
> -# https://bugs.launchpad.net/tarantool/+bug/1034912
> -"""
> +print("")
> +print("# A test case for Bug#103491")
> +print("# server CALL processing bug with name path longer than two")
> +print("# https://bugs.launchpad.net/tarantool/+bug/1034912")
> +print("")
>   admin("f = function() return 'OK' end")
>   admin("test = {}")
>   admin("test.f = f")
> @@ -35,11 +37,11 @@ call("f")
>   call("test.f")
>   call("test.test.f")
>   
> -print """
> -# Test for Bug #955226
> -# Lua Numbers are passed back wrongly as strings
> -#
> -"""
> +print("")
> +print("# Test for Bug #955226")
> +print("# Lua Numbers are passed back wrongly as strings")
> +print("#")
> +print("")
>   admin("function foo() return 1, 2, '1', '2' end")
>   call("foo")
>   
> @@ -48,8 +50,8 @@ call("foo")
>   #
>   admin("function f1(...) return {...} end")
>   admin("function f2(...) return f1({...}) end")
> -call("f1", 'test_', 'test_')
> -call("f2", 'test_', 'test_')
> +call("f1", "test_", "test_")
> +call("f2", "test_", "test_")
>   call("f1")
>   call("f2")
>   #
> @@ -72,8 +74,8 @@ call("f3")
>   admin("function f3() return { { test={1,2,3} }, { test2={1,2,3} } } end")
>   call("f3")
>   
> -call("f1", 'jason')
> -call("f1", 'jason', 1, 'test', 2, 'stewart')
> +call("f1", "jason")
> +call("f1", "jason", 1, "test", 2, "stewart")
>   
>   admin("space = box.schema.space.create('tweedledum')")
>   admin("index = space:create_index('primary', { type = 'hash' })")
> @@ -81,30 +83,30 @@ admin("index = space:create_index('primary', { type = 'hash' })")
>   admin("function myreplace(...) return space:replace{...} end")
>   admin("function myinsert(...) return space:insert{...} end")
>   
> -call("myinsert", 1, 'test box delete')
> +call("myinsert", 1, "test box delete")
>   call("space:delete", 1)
> -call("myinsert", 1, 'test box delete')
> +call("myinsert", 1, "test box delete")
>   call("space:delete", 1)
>   call("space:delete", 1)
> -call("myinsert", 2, 'test box delete')
> +call("myinsert", 2, "test box delete")
>   call("space:delete", 1)
>   call("space:delete", 2)
>   call("space:delete", 2)
>   admin("space:delete{2}")
>   
> -call("myinsert", 2, 'test box delete')
> +call("myinsert", 2, "test box delete")
>   call("space:get", 2)
>   admin("space:delete{2}")
>   call("space:get", 2)
> -call("myinsert", 2, 'test box.select()')
> +call("myinsert", 2, "test box.select()")
>   call("space:get", 2)
>   call("space:select", 2)
>   admin("space:get{2}")
>   admin("space:select{2}")
>   admin("space:get{1}")
>   admin("space:select{1}")
> -call("myreplace", 2, 'hello', 'world')
> -call("myreplace", 2, 'goodbye', 'universe')
> +call("myreplace", 2, "hello", "world")
> +call("myreplace", 2, "goodbye", "universe")
>   call("space:get", 2)
>   call("space:select", 2)
>   admin("space:get{2}")
> @@ -114,9 +116,9 @@ call("space:get", 2)
>   call("space:select", 2)
>   call("space:delete", 2)
>   call("space:delete", 2)
> -call("myinsert", 3, 'old', 2)
> +call("myinsert", 3, "old", 2)
>   # test that insert produces a duplicate key error
> -call("myinsert", 3, 'old', 2)
> +call("myinsert", 3, "old", 2)
>   admin("space:update({3}, {{'=', 1, 4}, {'=', 2, 'new'}})")
>   admin("space:insert(space:get{3}:update{{'=', 1, 4}, {'=', 2, 'new'}}) space:delete{3}")
>   call("space:get", 4)
> @@ -136,19 +138,19 @@ admin("index = space:create_index('primary', { type = 'tree' })")
>   
>   
>   def lua_eval(name, *args):
> -    print 'eval (%s)(%s)' % (name, ','.join([ str(arg) for arg in args]))
> -    print '---'
> -    print iproto.py_con.eval(name, args)
> +    print("eval ({})({})".format(name, ",".join([ str(arg) for arg in args])))
> +    print("---")
> +    print(iproto.py_con.eval(name, args))
>   
>   def lua_call(name, *args):
> -    print 'call %s(%s)' % (name, ','.join([ str(arg) for arg in args]))
> -    print '---'
> -    print iproto.py_con.call(name, args)
> +    print("call {}({})".format(name, ",".join([ str(arg) for arg in args])))
> +    print("---")
> +    print(iproto.py_con.call(name, args))
>   
>   def test(expr, *args):
> -    lua_eval('return ' + expr, *args)
> -    admin('function f(...) return ' + expr + ' end')
> -    lua_call('f', *args)
> +    lua_eval("return " + expr, *args)
> +    admin("function f(...) return " + expr + " end")
> +    lua_call("f", *args)
>   
>   # Return values
>   test("1")
> @@ -172,18 +174,18 @@ test("{t}")
>   test("{t, t, t}")
>   test("error('exception')")
>   test("box.error(0)")
> -test('...')
> -test('...', 1, 2, 3)
> -test('...',  None, None, None)
> -test('...', { 'k1': 'v1', 'k2': 'v2'})
> +test("...")
> +test("...", 1, 2, 3)
> +test("...",  None, None, None)
> +test("...", { "k1": "v1", "k2": "v2"})
>   # Transactions
> -test('space:auto_increment({"transaction"})')
> -test('space:select{}')
> -test('box.begin(), space:auto_increment({"failed"}), box.rollback()')
> -test('space:select{}')
> -test('require("fiber").sleep(0)')
> +test("space:auto_increment({'transaction'})")
> +test("space:select{}")
> +test("box.begin(), space:auto_increment({'failed'}), box.rollback()")
> +test("space:select{}")
> +test("require('fiber').sleep(0)")
>   # Other
> -lua_eval('!invalid expression')
> +lua_eval("!invalid expression")
>   
>   admin("space:drop()")
>   admin("box.schema.user.drop('test')")
> diff --git a/test/box-py/iproto.result b/test/box-py/iproto.result
> index 04e2e220c..0f2766871 100644
> --- a/test/box-py/iproto.result
> +++ b/test/box-py/iproto.result
> @@ -1,21 +1,15 @@
>   box.schema.user.grant('guest', 'read,write,execute', 'universe')
>   ---
>   ...
> -
>   #
>   # iproto packages test
>   #
> -
> -
>   # Test bug #899343 (server assertion failure on incorrect packet)
> -
>   # send the package with invalid length
>   12
>   # check that is server alive
>   True
> -
> -#  Test gh-206 "Segfault if sending IPROTO package without `KEY` field"
> -
> +#  Test gh-206 'Segfault if sending IPROTO package without `KEY` field'
>   IPROTO_SELECT
>   query {'IPROTO_CODE': 1} {'IPROTO_SPACE_ID': 280}
>   True
> @@ -165,10 +159,8 @@ space:drop()
>   box.schema.user.revoke('guest', 'read,write,execute', 'universe')
>   ---
>   ...
> -
>   # Test bugs gh-272, gh-1654 if the packet was incorrect, respond with
>   # an error code and do not close connection
> -
>   sync=0, Invalid MsgPack - packet header
>   sync=1234, Missing mandatory field 'space id' in request
>   sync=5678, Read access to space '_user' is denied for user 'guest'
> diff --git a/test/box-py/iproto.test.py b/test/box-py/iproto.test.py
> index cdd1a71c5..5eccd40d3 100644
> --- a/test/box-py/iproto.test.py
> +++ b/test/box-py/iproto.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   import os
>   import sys
>   import struct
> @@ -11,46 +13,42 @@ from lib.tarantool_connection import TarantoolConnection
>   
>   admin("box.schema.user.grant('guest', 'read,write,execute', 'universe')")
>   
> -print """
> -#
> -# iproto packages test
> -#
> -"""
> +print("#")
> +print("# iproto packages test")
> +print("#")
>   
> -# opeing new connection to tarantool/box
> +# opening new connection to tarantool/box
>   conn = TarantoolConnection(server.iproto.host, server.iproto.port)
>   conn.connect()
>   s = conn.socket
>   
> -print """
> -# Test bug #899343 (server assertion failure on incorrect packet)
> -"""
> -print "# send the package with invalid length"
> -invalid_request = struct.pack('<LLL', 1, 4294967290, 1)
> -print s.send(invalid_request)
> -print "# check that is server alive"
> -print iproto.py_con.ping() > 0
> +print("# Test bug #899343 (server assertion failure on incorrect packet)")
> +print("# send the package with invalid length")
> +invalid_request = struct.pack("<LLL", 1, 4294967290, 1)
> +print(s.send(invalid_request))
> +print("# check that is server alive")
> +print(iproto.py_con.ping() > 0)
>   
>   # closing connection
>   s.close()
>   
>   key_names = {}
> -for (k,v) in globals().items():
> -    if type(k) == str and k.startswith('IPROTO_') and type(v) == int:
> +for (k,v) in list(globals().items()):

2) Why do you need a "list"?(here and below)
You don't change the dictionary during iteration.
If I'm right, please check over such changes.


> +    if type(k) == str and k.startswith("IPROTO_") and type(v) == int:
>           key_names[v] = k
>   
>   def repr_dict(todump):
>       d = {}
> -    for (k, v) in todump.items():
> +    for (k, v) in list(todump.items()):
>           k_name = key_names.get(k, k)
>           d[k_name] = v
>       return repr(d)
>   
>   def test(header, body):
>       # Connect and authenticate
> -    c = Connection('localhost', server.iproto.port)
> +    c = Connection("localhost", server.iproto.port)
>       c.connect()
> -    print 'query', repr_dict(header), repr_dict(body)
> +    print("query", repr_dict(header), repr_dict(body))
>       header = msgpack.dumps(header)
>       body = msgpack.dumps(body)
>       query = msgpack.dumps(len(header) + len(body)) + header + body
> @@ -59,36 +57,34 @@ def test(header, body):
>       try:
>           s.send(query)
>       except OSError as e:
> -        print '   => ', 'Failed to send request'
> +        print("   => ", "Failed to send request")
>       c.close()
> -    print iproto.py_con.ping() > 0
> +    print(iproto.py_con.ping() > 0)
>   
> -print """
> -#  Test gh-206 "Segfault if sending IPROTO package without `KEY` field"
> -"""
> +print("#  Test gh-206 'Segfault if sending IPROTO package without `KEY` field'")
>   
> -print "IPROTO_SELECT"
> +print("IPROTO_SELECT")
>   test({ IPROTO_CODE : REQUEST_TYPE_SELECT }, { IPROTO_SPACE_ID: 280 })
> -print "\n"
> +print("\n")
>   
> -print "IPROTO_DELETE"
> +print("IPROTO_DELETE")
>   test({ IPROTO_CODE : REQUEST_TYPE_DELETE }, { IPROTO_SPACE_ID: 280 })
> -print "\n"
> +print("\n")
>   
> -print "IPROTO_UPDATE"
> +print("IPROTO_UPDATE")
>   test({ IPROTO_CODE : REQUEST_TYPE_UPDATE }, { IPROTO_SPACE_ID: 280 })
>   test({ IPROTO_CODE : REQUEST_TYPE_UPDATE },
>        { IPROTO_SPACE_ID: 280, IPROTO_KEY: (1, )})
> -print "\n"
> +print("\n")
>   
> -print "IPROTO_REPLACE"
> +print("IPROTO_REPLACE")
>   test({ IPROTO_CODE : REQUEST_TYPE_REPLACE }, { IPROTO_SPACE_ID: 280 })
> -print "\n"
> +print("\n")
>   
> -print "IPROTO_CALL"
> +print("IPROTO_CALL")
>   test({ IPROTO_CODE : REQUEST_TYPE_CALL }, {})
> -test({ IPROTO_CODE : REQUEST_TYPE_CALL }, { IPROTO_KEY: ('procname', )})
> -print "\n"
> +test({ IPROTO_CODE : REQUEST_TYPE_CALL }, { IPROTO_KEY: ("procname", )})
> +print("\n")
>   
>   # gh-434 Tarantool crashes on multiple iproto requests with WAL enabled
>   admin("box.cfg.wal_mode")
> @@ -96,7 +92,7 @@ admin("space = box.schema.space.create('test', { id = 567 })")
>   admin("index = space:create_index('primary', { type = 'hash' })")
>   admin("box.schema.user.grant('guest', 'read,write,execute', 'space', 'test')")
>   
> -c = Connection('localhost', server.iproto.port)
> +c = Connection("localhost", server.iproto.port)
>   c.connect()
>   request1 = RequestInsert(c, 567, [1, "baobab"])
>   request2 = RequestInsert(c, 567, [2, "obbaba"])
> @@ -104,11 +100,11 @@ s = c._socket
>   try:
>       s.send(bytes(request1) + bytes(request2))
>   except OSError as e:
> -    print '   => ', 'Failed to send request'
> +    print("   => ", "Failed to send request")
>   response1 = Response(c, c._read_response())
>   response2 = Response(c, c._read_response())
> -print response1.__str__()
> -print response2.__str__()
> +print(response1.__str__())
> +print(response2.__str__())
>   
>   request1 = RequestInsert(c, 567, [3, "occama"])
>   request2 = RequestSelect(c, 567, 0, [1], 0, 1, 0)
> @@ -116,11 +112,11 @@ s = c._socket
>   try:
>       s.send(bytes(request1) + bytes(request2))
>   except OSError as e:
> -    print '   => ', 'Failed to send request'
> +    print("   => ", "Failed to send request")
>   response1 = Response(c, c._read_response())
>   response2 = Response(c, c._read_response())
> -print response1.__str__()
> -print response2.__str__()
> +print(response1.__str__())
> +print(response2.__str__())
>   
>   request1 = RequestSelect(c, 567, 0, [2], 0, 1, 0)
>   request2 = RequestInsert(c, 567, [4, "ockham"])
> @@ -128,11 +124,11 @@ s = c._socket
>   try:
>       s.send(bytes(request1) + bytes(request2))
>   except OSError as e:
> -    print '   => ', 'Failed to send request'
> +    print("   => ", "Failed to send request")
>   response1 = Response(c, c._read_response())
>   response2 = Response(c, c._read_response())
> -print response1.__str__()
> -print response2.__str__()
> +print(response1.__str__())
> +print(response2.__str__())
>   
>   request1 = RequestSelect(c, 567, 0, [1], 0, 1, 0)
>   request2 = RequestSelect(c, 567, 0, [2], 0, 1, 0)
> @@ -140,11 +136,11 @@ s = c._socket
>   try:
>       s.send(bytes(request1) + bytes(request2))
>   except OSError as e:
> -    print '   => ', 'Failed to send request'
> +    print("   => ", "Failed to send request")
>   response1 = Response(c, c._read_response())
>   response2 = Response(c, c._read_response())
> -print response1.__str__()
> -print response2.__str__()
> +print(response1.__str__())
> +print(response2.__str__())
>   
>   c.close()
>   
> @@ -176,7 +172,7 @@ class RawSelect(Request):
>           self._body = request_body
>   
>   c = iproto.py_con
> -space = c.space('test')
> +space = c.space("test")
>   space_id = space.space_no
>   
>   TESTS = [
> @@ -192,34 +188,34 @@ TESTS = [
>   for test in TESTS:
>       it = iter(test)
>       size = next(it)
> -    print 'STR', size
> -    print '--'
> +    print("STR", size)
> +    print("--")
>       for fmt in it:
> -        print '0x' + fmt.encode('hex'), '=>',
> -        field = '*' * size
> +        print("0x" + fmt.encode("hex"), "=>", end=" ")
> +        field = "*" * size
>           c._send_request(RawInsert(c, space_id, "\x91" + fmt + field))
>           tuple = space.select(field)[0]
> -        print len(tuple[0])== size and 'ok' or 'fail',
> +        print(len(tuple[0])== size and "ok" or "fail", end=" ")
>           it2 = iter(test)
>           next(it2)
>           for fmt2 in it2:
>               tuple = c._send_request(RawSelect(c, space_id,
>                   "\x91" + fmt2 + field))[0]
> -            print len(tuple[0]) == size and 'ok' or 'fail',
> +            print(len(tuple[0]) == size and "ok" or "fail", end=" ")
>           tuple = space.delete(field)[0]
> -        print len(tuple[0]) == size and 'ok' or 'fail',
> -        print
> -    print
> +        print(len(tuple[0]) == size and "ok" or "fail", end="")
> +        print()
> +    print()
>   
>   
> -print 'Test of schema_id in iproto.'
> -c = Connection('localhost', server.iproto.port)
> +print("Test of schema_id in iproto.")
> +c = Connection("localhost", server.iproto.port)
>   c.connect()
>   s = c._socket
>   
>   def receive_response():
> -    resp_len = ''
> -    resp_headerbody = ''
> +    resp_len = ""
> +    resp_headerbody = ""
>       resp_header = {}
>       resp_body = {}
>       try:
> @@ -235,10 +231,10 @@ def receive_response():
>           resp_header = unpacker.unpack()
>           resp_body = unpacker.unpack()
>       except OSError as e:
> -        print '   => ', 'Failed to recv response'
> +        print("   => ", "Failed to recv response")
>       res = {}
> -    res['header'] = resp_header
> -    res['body'] = resp_body
> +    res["header"] = resp_header
> +    res["body"] = resp_body
>       return res
>   
>   def test_request(req_header, req_body):
> @@ -249,7 +245,7 @@ def test_request(req_header, req_body):
>       try:
>           s.send(query)
>       except OSError as e:
> -        print '   => ', 'Failed to send request'
> +        print("   => ", "Failed to send request")
>       return receive_response()
>   
>   header = { IPROTO_CODE : REQUEST_TYPE_SELECT}
> @@ -260,62 +256,62 @@ body = { IPROTO_SPACE_ID: space_id,
>       IPROTO_OFFSET: 0,
>       IPROTO_LIMIT: 1 }
>   resp = test_request(header, body)
> -print 'Normal connect done w/o errors:', resp['header'][0] == 0
> -print 'Got schema_id:', resp['header'][5] > 0
> -schema_id = resp['header'][5]
> +print("Normal connect done w/o errors:", resp["header"][0] == 0)
> +print("Got schema_id:", resp["header"][5] > 0)
> +schema_id = resp["header"][5]
>   
>   header = { IPROTO_CODE : REQUEST_TYPE_SELECT, 5 : 0 }
>   resp = test_request(header, body)
> -print 'Zero-schema_id connect done w/o errors:', resp['header'][0] == 0
> -print 'Same schema_id:', resp['header'][5] == schema_id
> +print("Zero-schema_id connect done w/o errors:", resp["header"][0] == 0)
> +print("Same schema_id:", resp["header"][5] == schema_id)
>   
>   header = { IPROTO_CODE : REQUEST_TYPE_SELECT, 5 : schema_id }
>   resp = test_request(header, body)
> -print 'Normal connect done w/o errors:', resp['header'][0] == 0
> -print 'Same schema_id:', resp['header'][5] == schema_id
> +print("Normal connect done w/o errors:", resp["header"][0] == 0)
> +print("Same schema_id:", resp["header"][5] == schema_id)
>   
>   header = { IPROTO_CODE : REQUEST_TYPE_SELECT, 5 : schema_id + 1 }
>   resp = test_request(header, body)
> -print 'Wrong schema_id leads to error:', resp['header'][0] != 0
> -print 'Same schema_id:', resp['header'][5] == schema_id
> +print("Wrong schema_id leads to error:", resp["header"][0] != 0)
> +print("Same schema_id:", resp["header"][5] == schema_id)
>   
>   admin("space2 = box.schema.create_space('test2')")
>   
>   header = { IPROTO_CODE : REQUEST_TYPE_SELECT, 5 : schema_id }
>   resp = test_request(header, body)
> -print 'Schema changed -> error:', resp['header'][0] != 0
> -print 'Got another schema_id:', resp['header'][5] != schema_id
> +print("Schema changed -> error:", resp["header"][0] != 0)
> +print("Got another schema_id:", resp["header"][5] != schema_id)
>   
>   #
>   # gh-2334 Lost SYNC in JOIN response.
>   #
> -uuid = '0d5bd431-7f3e-4695-a5c2-82de0a9cbc95'
> +uuid = "0d5bd431-7f3e-4695-a5c2-82de0a9cbc95"
>   header = { IPROTO_CODE: REQUEST_TYPE_JOIN, IPROTO_SYNC: 2334 }
>   body = { IPROTO_SERVER_UUID: uuid }
>   resp = test_request(header, body)
> -if resp['header'][IPROTO_SYNC] == 2334:
> +if resp["header"][IPROTO_SYNC] == 2334:
>       i = 1
>       while i < 3:
>           resp = receive_response()
> -        if resp['header'][IPROTO_SYNC] != 2334:
> -            print 'Bad sync on response with number ', i
> +        if resp["header"][IPROTO_SYNC] != 2334:
> +            print("Bad sync on response with number ", i)
>               break
> -        if resp['header'][IPROTO_CODE] == REQUEST_TYPE_OK:
> +        if resp["header"][IPROTO_CODE] == REQUEST_TYPE_OK:
>               i += 1
>       else:
> -        print 'Sync ok'
> +        print("Sync ok")
>   else:
> -    print 'Bad first sync'
> +    print("Bad first sync")
>   
>   #
>   # Try incorrect JOIN. SYNC must be also returned.
>   #
> -body[IPROTO_SERVER_UUID] = 'unknown'
> +body[IPROTO_SERVER_UUID] = "unknown"
>   resp = test_request(header, body)
> -if resp['header'][IPROTO_SYNC] == 2334:
> -    print('Sync on error is ok')
> +if resp["header"][IPROTO_SYNC] == 2334:
> +    print("Sync on error is ok")
>   else:
> -    print('Sync on error is not ok')
> +    print("Sync on error is not ok")
>   
>   c.close()
>   
> @@ -332,8 +328,8 @@ admin("space:insert({1})")
>   admin("space:insert({2, 'Music'})")
>   admin("space:insert({3, 'Length', 93})")
>   
> -iproto.py_con.space('gh1280').select([])
> -iproto.py_con.space('gh1280').select(list())
> +iproto.py_con.space("gh1280").select([])
> +iproto.py_con.space("gh1280").select(list())
>   
>   
>   admin("space:drop()")
> @@ -344,26 +340,24 @@ admin("box.schema.user.revoke('guest', 'read,write,execute', 'universe')")
>   # gh-272 if the packet was incorrect, respond with an error code
>   # gh-1654 do not close connnection on invalid request
>   #
> -print """
> -# Test bugs gh-272, gh-1654 if the packet was incorrect, respond with
> -# an error code and do not close connection
> -"""
> +print("# Test bugs gh-272, gh-1654 if the packet was incorrect, respond with")
> +print("# an error code and do not close connection")
>   
> -c = Connection('localhost', server.iproto.port)
> +c = Connection("localhost", server.iproto.port)
>   c.connect()
>   s = c._socket
>   header = { "hello": "world"}
>   body = { "bug": 272 }
>   resp = test_request(header, body)
> -print 'sync=%d, %s' % (resp['header'][IPROTO_SYNC], resp['body'].get(IPROTO_ERROR))
> +print("sync={}, {}".format(resp["header"][IPROTO_SYNC], resp["body"].get(IPROTO_ERROR)))
>   header = { IPROTO_CODE : REQUEST_TYPE_SELECT }
>   header[IPROTO_SYNC] = 1234
>   resp = test_request(header, body)
> -print 'sync=%d, %s' % (resp['header'][IPROTO_SYNC], resp['body'].get(IPROTO_ERROR))
> +print("sync={}, {}".format(resp["header"][IPROTO_SYNC], resp["body"].get(IPROTO_ERROR)))
>   header[IPROTO_SYNC] = 5678
>   body = { IPROTO_SPACE_ID: 304, IPROTO_KEY: [], IPROTO_LIMIT: 1 }
>   resp = test_request(header, body)
> -print 'sync=%d, %s' % (resp['header'][IPROTO_SYNC], resp['body'].get(IPROTO_ERROR))
> +print("sync={}, {}".format(resp["header"][IPROTO_SYNC], resp["body"].get(IPROTO_ERROR)))
>   c.close()
>   
>   
> @@ -371,7 +365,7 @@ admin("space = box.schema.space.create('test_index_base', { id = 568 })")
>   admin("index = space:create_index('primary', { type = 'hash' })")
>   admin("box.schema.user.grant('guest', 'read,write,execute', 'space', 'test_index_base')")
>   
> -c = Connection('localhost', server.iproto.port)
> +c = Connection("localhost", server.iproto.port)
>   c.connect()
>   s = c._socket
>   
> @@ -379,32 +373,32 @@ request = RequestInsert(c, 568, [1, 0, 0, 0])
>   try:
>       s.send(bytes(request))
>   except OSError as e:
> -    print '   => ', 'Failed to send request'
> +    print("   => ", "Failed to send request")
>   response = Response(c, c._read_response())
> -print response.__str__()
> +print(response.__str__())
>   
> -request = RequestUpdate(c, 568, 0, [1], [['+', 2, 1], ['-', 3, 1]])
> +request = RequestUpdate(c, 568, 0, [1], [["+", 2, 1], ["-", 3, 1]])
>   try:
>       s.send(bytes(request))
>   except OSError as e:
> -    print '   => ', 'Failed to send request'
> +    print("   => ", "Failed to send request")
>   response = Response(c, c._read_response())
> -print response.__str__()
> +print(response.__str__())
>   
> -request = RequestUpsert(c, 568, 0, [1, 0, 0, 0], [['+', 2, 1], ['-', 3, 1]])
> +request = RequestUpsert(c, 568, 0, [1, 0, 0, 0], [["+", 2, 1], ["-", 3, 1]])
>   try:
>       s.send(bytes(request))
>   except OSError as e:
> -    print '   => ', 'Failed to send request'
> +    print("   => ", "Failed to send request")
>   response = Response(c, c._read_response())
>   
>   request = RequestSelect(c, 568, 0, [1], 0, 1, 0)
>   try:
>       s.send(bytes(request))
>   except OSError as e:
> -    print '   => ', 'Failed to send request'
> +    print("   => ", "Failed to send request")
>   response = Response(c, c._read_response())
> -print response.__str__()
> +print(response.__str__())
>   
>   c.close()
>   
> @@ -414,15 +408,15 @@ c.close()
>   admin("function kek() return 'kek' end")
>   admin("box.schema.user.grant('guest', 'read,write,execute', 'universe')")
>   
> -c = Connection('localhost', server.iproto.port)
> +c = Connection("localhost", server.iproto.port)
>   c.connect()
>   s = c._socket
>   
>   header = { IPROTO_CODE: REQUEST_TYPE_CALL, IPROTO_SYNC: 100 }
> -body = { IPROTO_FUNCTION_NAME: 'kek' }
> +body = { IPROTO_FUNCTION_NAME: "kek" }
>   resp = test_request(header, body)
> -print "Sync: ", resp['header'][IPROTO_SYNC]
> -print "Retcode: ", resp['body'][IPROTO_DATA]
> +print("Sync: ", resp["header"][IPROTO_SYNC])
> +print("Retcode: ", resp["body"][IPROTO_DATA])
>   
>   c.close()
>   
> diff --git a/test/box-py/print.result b/test/box-py/print.result
> index b2d58d7de..7a3282d79 100644
> --- a/test/box-py/print.result
> +++ b/test/box-py/print.result
> @@ -1,4 +1,4 @@
> -print("Hello, world")
> +print('Hello, world')
>   ---
>   ...
>   io = require('io')
> @@ -17,9 +17,9 @@ require('fiber').sleep(0.01)
>   ...
>   Check log line (Hello):
>   ---
> -- "logfile contains "Hello""
> +- 'logfile contains 'Hello''
>   ...
>   Check log line (Ehllo):
>   ---
> -- "logfile contains "Ehllo""
> +- 'logfile contains 'Ehllo''
>   ...
> diff --git a/test/box-py/print.test.py b/test/box-py/print.test.py
> index 5083bdf42..37f07cab8 100644
> --- a/test/box-py/print.test.py
> +++ b/test/box-py/print.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   import tarantool
>   
>   import sys
> @@ -6,7 +8,7 @@ import re
>   
>   log = server.get_log()
>   
> -admin('print("Hello, world")')
> +admin("print('Hello, world')")
>   admin("io = require('io')")
>   
>   admin("""local f = require('fiber').create(
> @@ -18,17 +20,17 @@ admin("""local f = require('fiber').create(
>   admin("require('fiber').sleep(0.01)")
>   
>   print("Check log line (Hello):")
> -print('---')
> -if log.seek_once('Hello') >= 0:
> -    print('- "logfile contains "Hello""')
> +print("---")
> +if log.seek_once("Hello") >= 0:
> +    print("- 'logfile contains \'Hello\''")

3) \ - not necessary. (here and below)

>   else:
> -    print('- "logfile does not contain "Hello""')
> -print('...')
> +    print("- 'logfile does not contain \'Hello\''")
> +print("...")
>   
>   print("Check log line (Ehllo):")
> -print('---')
> -if log.seek_once('Ehllo') >= 0:
> -    print('- "logfile contains "Ehllo""')
> +print("---")
> +if log.seek_once("Ehllo") >= 0:
> +    print("- 'logfile contains \'Ehllo\''")
>   else:
> -    print('- "logfile does not contain "Ehllo""')
> -print('...')
> +    print("- 'logfile does not contain \'Ehllo\''")
> +print("...")
> diff --git a/test/box-py/snapshot.result b/test/box-py/snapshot.result
> index fbaab912f..dfd1a00a2 100644
> --- a/test/box-py/snapshot.result
> +++ b/test/box-py/snapshot.result
> @@ -10,7 +10,6 @@ index = space:create_index('primary', { type = 'hash' })
>   # file that already exists. Verify also that any other
>   # error that happens when saving snapshot is propagated
>   # to the caller.
> -
>   space:insert{1, 'first tuple'}
>   ---
>   - [1, 'first tuple']
> @@ -44,9 +43,8 @@ space:delete{2}
>   ...
>   #
>   # A test case for http://bugs.launchpad.net/bugs/727174
> -# "tarantool_box crashes when saving snapshot on SIGUSR1"
> +# 'tarantool_box crashes when saving snapshot on SIGUSR1'
>   #
> -
>   # Increment the lsn number, to make sure there is no such snapshot yet
>   #
>   space:insert{1, 'Test tuple'}
> diff --git a/test/box-py/snapshot.test.py b/test/box-py/snapshot.test.py
> index 2bfb8f621..91ff0c5dd 100644
> --- a/test/box-py/snapshot.test.py
> +++ b/test/box-py/snapshot.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   import os
>   import sys
>   import yaml
> @@ -9,13 +11,13 @@ sys.stdout.push_filter(server.vardir, "<dir>")
>   admin("space = box.schema.space.create('tweedledum')")
>   admin("index = space:create_index('primary', { type = 'hash' })")
>   
> -print """#
> -# A test case for: http://bugs.launchpad.net/bugs/686411
> -# Check that 'box.snapshot()' does not overwrite a snapshot
> -# file that already exists. Verify also that any other
> -# error that happens when saving snapshot is propagated
> -# to the caller.
> -"""
> +print("#")
> +print("# A test case for: http://bugs.launchpad.net/bugs/686411")
> +print("# Check that 'box.snapshot()' does not overwrite a snapshot")
> +print("# file that already exists. Verify also that any other")
> +print("# error that happens when saving snapshot is propagated")
> +print("# to the caller.")
> +
>   admin("space:insert{1, 'first tuple'}")
>   admin("box.snapshot()")
>   #
> @@ -38,14 +40,13 @@ os.rmdir(snapshot)
>   admin("space:delete{1}")
>   admin("space:delete{2}")
>   
> -print """#
> -# A test case for http://bugs.launchpad.net/bugs/727174
> -# "tarantool_box crashes when saving snapshot on SIGUSR1"
> -#"""
> +print("#")
> +print("# A test case for http://bugs.launchpad.net/bugs/727174")
> +print("# 'tarantool_box crashes when saving snapshot on SIGUSR1'")
> +print("#")
>   
> -print """
> -# Increment the lsn number, to make sure there is no such snapshot yet
> -#"""
> +print("# Increment the lsn number, to make sure there is no such snapshot yet")
> +print("#")
>   
>   admin("space:insert{1, 'Test tuple'}")
>   
> @@ -65,9 +66,9 @@ while not os.access(snapshot, os.F_OK) and iteration < MAX_ITERATIONS:
>     iteration = iteration + 1
>   
>   if iteration == 0 or iteration >= MAX_ITERATIONS:
> -  print "Snapshot is missing."
> +  print("Snapshot is missing.")
>   else:
> -  print "Snapshot exists."
> +  print("Snapshot exists.")
>   
>   admin("space:drop()")
>   
> diff --git a/test/long_run-py/finalizers.result b/test/long_run-py/finalizers.result
> index 29313694c..2d2866b35 100644
> --- a/test/long_run-py/finalizers.result
> +++ b/test/long_run-py/finalizers.result
> @@ -1 +1 @@
> -Expected error: <class 'lib.tarantool_server.TarantoolStartError'>
> +('Expected error:', <class 'lib.tarantool_server.TarantoolStartError'>)
> diff --git a/test/long_run-py/finalizers.test.py b/test/long_run-py/finalizers.test.py
> index 96118e607..07bceb6b9 100644
> --- a/test/long_run-py/finalizers.test.py
> +++ b/test/long_run-py/finalizers.test.py
> @@ -5,12 +5,12 @@ import yaml
>   from lib.tarantool_server import TarantoolServer
>   
>   server = TarantoolServer(server.ini)
> -server.script = 'long_run-py/lua/finalizers.lua'
> -server.vardir = os.path.join(server.vardir, 'finalizers')
> +server.script = "long_run-py/lua/finalizers.lua"
> +server.vardir = os.path.join(server.vardir, "finalizers")
>   server.crash_expected = True
>   try:
>       server.deploy()
>   except:
> -    print "Expected error:", sys.exc_info()[0]
> +    print("Expected error:", sys.exc_info()[0])
>   else:
> -    print "Error! exception did not occur"
> +    print("Error! exception did not occur")
> diff --git a/test/replication-py/cluster.result b/test/replication-py/cluster.result
> index f68a6af7c..9bc8a7393 100644
> --- a/test/replication-py/cluster.result
> +++ b/test/replication-py/cluster.result
> @@ -93,7 +93,7 @@ box.info.vclock[2] == nil
>   -------------------------------------------------------------
>   Modify data to bump LSN and check box.info
>   -------------------------------------------------------------
> -box.space._schema:insert{"test", 48}
> +box.space._schema:insert{'test', 48}
>   ---
>   - ['test', 48]
>   ...
> @@ -114,7 +114,7 @@ box.cfg{ replication_source = '<replication_source>' }
>   -------------------------------------------------------------
>   Disconnect replica from master
>   -------------------------------------------------------------
> -box.cfg { replication_source = "" }
> +box.cfg { replication_source = '' }
>   ---
>   ...
>   -------------------------------------------------------------
> @@ -131,7 +131,7 @@ box.info.vclock[2] == 1
>   -------------------------------------------------------------
>   Modify data to bump LSN on replica
>   -------------------------------------------------------------
> -box.space._schema:insert{"tost", 49}
> +box.space._schema:insert{'tost', 49}
>   ---
>   - ['tost', 49]
>   ...
> diff --git a/test/replication-py/cluster.test.py b/test/replication-py/cluster.test.py
> index 088ca9c34..c770a9bc9 100644
> --- a/test/replication-py/cluster.test.py
> +++ b/test/replication-py/cluster.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   import os
>   import sys
>   import re
> @@ -7,19 +9,19 @@ import glob
>   from lib.tarantool_server import TarantoolServer
>   
>   ## Get cluster uuid
> -cluster_uuid = ''
> +cluster_uuid = ""
>   try:
>       cluster_uuid = yaml.safe_load(server.admin("box.space._schema:get('cluster')",
>           silent = True))[0][1]
> -    uuid.UUID('{' + cluster_uuid + '}')
> -    print 'ok - cluster uuid'
> +    uuid.UUID("{" + cluster_uuid + "}")
> +    print("ok - cluster uuid")
>   except Exception as e:
> -    print 'not ok - invalid cluster uuid', e
> +    print("not ok - invalid cluster uuid", e)
>   
>   server.iproto.reconnect() # re-connect with new permissions
> -print '-------------------------------------------------------------'
> -print ' gh-696: Check global READ permissions for replication'
> -print '-------------------------------------------------------------'
> +print("-------------------------------------------------------------")
> +print(" gh-696: Check global READ permissions for replication")
> +print("-------------------------------------------------------------")
>   
>   
>   # Generate replica cluster UUID
> @@ -27,56 +29,59 @@ replica_uuid = str(uuid.uuid4())
>   
>   ## Universal read permission is required to perform JOIN/SUBSCRIBE
>   rows = list(server.iproto.py_con.join(replica_uuid))
> -print len(rows) == 1 and rows[0].return_message.find('Read access') >= 0 and \
> -    'ok' or 'not ok', '-', 'join without read permissions on universe'
> +status = len(rows) == 1 and rows[0].return_message.find("Read access") >= 0 and \
> +        "ok" or "not ok"
> +print("{} - join without read permissions on universe".format(status))
>   rows = list(server.iproto.py_con.subscribe(cluster_uuid, replica_uuid))
> -print len(rows) == 1 and rows[0].return_message.find('Read access') >= 0 and \
> -    'ok' or 'not ok', '-', 'subscribe without read permissions on universe'
> +status = len(rows) == 1 and rows[0].return_message.find("Read access") >= 0 and \
> +        "ok" or "not ok"
> +print("{} - subscribe without read permissions on universe".format(status))
>   ## Write permission to space `_cluster` is required to perform JOIN
>   server.admin("box.schema.user.grant('guest', 'read', 'universe')")
>   server.iproto.reconnect() # re-connect with new permissions
>   rows = list(server.iproto.py_con.join(replica_uuid))
> -print len(rows) == 1 and rows[0].return_message.find('Write access') >= 0 and \
> -    'ok' or 'not ok', '-', 'join without write permissions to _cluster'
> +status = len(rows) == 1 and rows[0].return_message.find("Write access") >= 0 and \
> +        "ok" or "not ok"
> +print("{} - join without write permissions to _cluster".format(status))
>   
>   def check_join(msg):
>       ok = True
>       for resp in server.iproto.py_con.join(replica_uuid):
>           if resp._return_code != 0:
> -            print 'not ok', '-', msg, resp.return_message
> +            print("not ok - {} {}".format(msg, resp.return_message))
>               ok = False
>   
>       server.iproto.reconnect() # the only way to stop JOIN
>       if not ok:
>           return
> -    tuples = server.iproto.py_con.space('_cluster').select(replica_uuid, index = 1)
> +    tuples = server.iproto.py_con.space("_cluster").select(replica_uuid, index = 1)
>       if len(tuples) == 0:
> -        print 'not ok', '-', msg, 'missing entry in _cluster'
> +        print("not ok - {} missing entry in _cluster".format(msg))
>           return
>       server_id = tuples[0][0]
> -    print 'ok', '-', msg
> +    print("ok - {}".format(msg))
>       return server_id
>   
>   ## JOIN with permissions
>   server.admin("box.schema.user.grant('guest', 'write', 'space', '_cluster')")
>   server.iproto.reconnect() # re-connect with new permissions
> -server_id = check_join('join with granted permissions')
> -server.iproto.py_con.space('_cluster').delete(server_id)
> +server_id = check_join("join with granted permissions")
> +server.iproto.py_con.space("_cluster").delete(server_id)
>   
>   # JOIN with granted role
>   server.admin("box.schema.user.revoke('guest', 'read', 'universe')")
>   server.admin("box.schema.user.revoke('guest', 'write', 'space', '_cluster')")
>   server.admin("box.schema.user.grant('guest', 'replication')")
>   server.iproto.reconnect() # re-connect with new permissions
> -server_id = check_join('join with granted role')
> -server.iproto.py_con.space('_cluster').delete(server_id)
> +server_id = check_join("join with granted role")
> +server.iproto.py_con.space("_cluster").delete(server_id)
>   
> -print '-------------------------------------------------------------'
> -print 'gh-434: Assertion if replace _cluster tuple for local server'
> -print '-------------------------------------------------------------'
> +print("-------------------------------------------------------------")
> +print("gh-434: Assertion if replace _cluster tuple for local server")
> +print("-------------------------------------------------------------")
>   
> -master_uuid = server.get_param('uuid')
> -sys.stdout.push_filter(master_uuid, '<master uuid>')
> +master_uuid = server.get_param("uuid")
> +sys.stdout.push_filter(master_uuid, "<master uuid>")
>   
>   # Invalid UUID
>   server.admin("box.space._cluster:replace{1, require('uuid').NULL:str()}")
> @@ -87,19 +92,19 @@ server.admin("box.space._cluster:replace{1, require('uuid').str()}")
>   # Update of tail is OK
>   server.admin("box.space._cluster:update(1, {{'=', 3, 'test'}})")
>   
> -print '-------------------------------------------------------------'
> -print 'gh-1140: Assertion if replace _cluster tuple for remote server'
> -print '-------------------------------------------------------------'
> +print("-------------------------------------------------------------")
> +print("gh-1140: Assertion if replace _cluster tuple for remote server")
> +print("-------------------------------------------------------------")
>   
>   # Test that insert is OK
> -new_uuid = '0d5bd431-7f3e-4695-a5c2-82de0a9cbc95'
> +new_uuid = "0d5bd431-7f3e-4695-a5c2-82de0a9cbc95"
>   server.admin("box.space._cluster:insert{{5, '{0}'}}".format(new_uuid))
>   server.admin("box.info.vclock[5] == nil")
>   
>   # Replace with the same UUID is OK
>   server.admin("box.space._cluster:replace{{5, '{0}'}}".format(new_uuid))
>   # Replace with a new UUID is not OK
> -new_uuid = 'a48a19a3-26c0-4f8c-a5b5-77377bab389b'
> +new_uuid = "a48a19a3-26c0-4f8c-a5b5-77377bab389b"
>   server.admin("box.space._cluster:replace{{5, '{0}'}}".format(new_uuid))
>   # Update of tail is OK
>   server.admin("box.space._cluster:update(5, {{'=', 3, 'test'}})")
> @@ -112,83 +117,83 @@ server.admin("box.info.vclock[5] == nil")
>   server.stop()
>   server.deploy()
>   
> -print '-------------------------------------------------------------'
> -print 'Start a new replica and check box.info on the start'
> -print '-------------------------------------------------------------'
> +print("-------------------------------------------------------------")
> +print("Start a new replica and check box.info on the start")
> +print("-------------------------------------------------------------")
>   # master server
>   master = server
> -master_id = master.get_param('id')
> +master_id = master.get_param("id")
>   
>   master.admin("box.schema.user.grant('guest', 'replication')")
>   
>   replica = TarantoolServer(server.ini)
> -replica.script = 'replication-py/replica.lua'
> +replica.script = "replication-py/replica.lua"
>   replica.vardir = server.vardir
>   replica.rpl_master = master
>   replica.deploy()
> -replica_id = replica.get_param('id')
> -replica_uuid = replica.get_param('uuid')
> -sys.stdout.push_filter(replica_uuid, '<replica uuid>')
> -
> -replica.admin('box.info.id == %d' % replica_id)
> -replica.admin('not box.info.ro')
> -replica.admin('box.info.lsn == 0')
> -replica.admin('box.info.vclock[%d] == nil' % replica_id)
> -
> -print '-------------------------------------------------------------'
> -print 'Modify data to bump LSN and check box.info'
> -print '-------------------------------------------------------------'
> -replica.admin('box.space._schema:insert{"test", 48}')
> -replica.admin('box.info.lsn == 1')
> -replica.admin('box.info.vclock[%d] == 1' % replica_id)
> -
> -print '-------------------------------------------------------------'
> -print 'Connect master to replica'
> -print '-------------------------------------------------------------'
> -replication_source = yaml.safe_load(replica.admin('box.cfg.listen', silent = True))[0]
> -sys.stdout.push_filter(replication_source, '<replication_source>')
> -master.admin("box.cfg{ replication_source = '%s' }" % replication_source)
> +replica_id = replica.get_param("id")
> +replica_uuid = replica.get_param("uuid")
> +sys.stdout.push_filter(replica_uuid, "<replica uuid>")
> +
> +replica.admin("box.info.id == {}".format(replica_id))
> +replica.admin("not box.info.ro")
> +replica.admin("box.info.lsn == 0")
> +replica.admin("box.info.vclock[{}] == nil".format(replica_id))
> +
> +print("-------------------------------------------------------------")
> +print("Modify data to bump LSN and check box.info")
> +print("-------------------------------------------------------------")
> +replica.admin("box.space._schema:insert{'test', 48}")
> +replica.admin("box.info.lsn == 1")
> +replica.admin("box.info.vclock[{}] == 1".format(replica_id))
> +
> +print("-------------------------------------------------------------")
> +print("Connect master to replica")
> +print("-------------------------------------------------------------")
> +replication_source = yaml.safe_load(replica.admin("box.cfg.listen", silent = True))[0]
> +sys.stdout.push_filter(replication_source, "<replication_source>")
> +master.admin("box.cfg{{ replication_source = '{}' }}".format(replication_source))
>   master.wait_lsn(replica_id, replica.get_lsn(replica_id))
>   
> -print '-------------------------------------------------------------'
> -print 'Disconnect replica from master'
> -print '-------------------------------------------------------------'
> -replica.admin('box.cfg { replication_source = "" }')
> +print("-------------------------------------------------------------")
> +print("Disconnect replica from master")
> +print("-------------------------------------------------------------")
> +replica.admin("box.cfg { replication_source = '' }")
>   
> -print '-------------------------------------------------------------'
> -print 'Unregister replica'
> -print '-------------------------------------------------------------'
> +print("-------------------------------------------------------------")
> +print("Unregister replica")
> +print("-------------------------------------------------------------")
>   
> -master.admin('box.space._cluster:delete{%d} ~= nil' % replica_id)
> +master.admin("box.space._cluster:delete{{{}}} ~= nil".format(replica_id))
>   
>   # gh-1219: LSN must not be removed from vclock on unregister
> -master.admin('box.info.vclock[%d] == 1' % replica_id)
> +master.admin("box.info.vclock[{}] == 1".format(replica_id))
>   
> -print '-------------------------------------------------------------'
> -print 'Modify data to bump LSN on replica'
> -print '-------------------------------------------------------------'
> -replica.admin('box.space._schema:insert{"tost", 49}')
> -replica.admin('box.info.lsn == 2')
> -replica.admin('box.info.vclock[%d] == 2' % replica_id)
> +print("-------------------------------------------------------------")
> +print("Modify data to bump LSN on replica")
> +print("-------------------------------------------------------------")
> +replica.admin("box.space._schema:insert{'tost', 49}")
> +replica.admin("box.info.lsn == 2")
> +replica.admin("box.info.vclock[{}] == 2".format(replica_id))
>   
> -print '-------------------------------------------------------------'
> -print 'Master must not crash then receives orphan rows from replica'
> -print '-------------------------------------------------------------'
> +print("-------------------------------------------------------------")
> +print("Master must not crash then receives orphan rows from replica")
> +print("-------------------------------------------------------------")
>   
> -replication_source = yaml.safe_load(replica.admin('box.cfg.listen', silent = True))[0]
> -sys.stdout.push_filter(replication_source, '<replication>')
> -master.admin("box.cfg{ replication = '%s' }" % replication_source)
> +replication_source = yaml.safe_load(replica.admin("box.cfg.listen", silent = True))[0]
> +sys.stdout.push_filter(replication_source, "<replication>")
> +master.admin("box.cfg{{ replication = '{}' }}".format(replication_source))
>   
>   master.wait_lsn(replica_id, replica.get_lsn(replica_id))
> -master.admin('box.info.vclock[%d] == 2' % replica_id)
> +master.admin("box.info.vclock[{}] == 2".format(replica_id))
>   
>   master.admin("box.cfg{ replication = '' }")
>   replica.stop()
>   replica.cleanup()
>   
> -print '-------------------------------------------------------------'
> -print 'Start a new replica and check that server_id, LSN is re-used'
> -print '-------------------------------------------------------------'
> +print("-------------------------------------------------------------")
> +print("Start a new replica and check that server_id, LSN is re-used")
> +print("-------------------------------------------------------------")
>   
>   #
>   # gh-1219: Proper removal of servers with non-zero LSN from _cluster
> @@ -196,36 +201,36 @@ print '-------------------------------------------------------------'
>   # Snapshot is required. Otherwise a relay will skip records made by previous
>   # replica with the re-used id.
>   master.admin("box.snapshot()")
> -master.admin('box.info.vclock[%d] == 2' % replica_id)
> +master.admin("box.info.vclock[{}] == 2".format(replica_id))
>   
>   replica = TarantoolServer(server.ini)
> -replica.script = 'replication-py/replica.lua'
> +replica.script = "replication-py/replica.lua"
>   replica.vardir = server.vardir
>   replica.rpl_master = master
>   replica.deploy()
>   replica.wait_lsn(master_id, master.get_lsn(master_id))
>   # Check that replica_id was re-used
> -replica.admin('box.info.id == %d' % replica_id)
> -replica.admin('not box.info.ro')
> +replica.admin("box.info.id == {}".format(replica_id))
> +replica.admin("not box.info.ro")
>   # All records were succesfully recovered.
>   # Replica should have the same vclock as master.
> -master.admin('box.info.vclock[%d] == 2' % replica_id)
> -replica.admin('box.info.vclock[%d] == 2' % replica_id)
> +master.admin("box.info.vclock[{}] == 2".format(replica_id))
> +replica.admin("box.info.vclock[{}] == 2".format(replica_id))
>   
>   replica.stop()
>   replica.cleanup()
> -master.admin('box.space._cluster:delete{%d} ~= nil' % replica_id)
> +master.admin("box.space._cluster:delete{{{}}} ~= nil".format(replica_id))
>   
> -print '-------------------------------------------------------------'
> -print 'JOIN replica to read-only master'
> -print '-------------------------------------------------------------'
> +print("-------------------------------------------------------------")
> +print("JOIN replica to read-only master")
> +print("-------------------------------------------------------------")
>   
>   # master server
>   master = server
> -master.admin('box.cfg { read_only = true }')
> +master.admin("box.cfg { read_only = true }")
>   #gh-1230 Assertion vclock_has on attempt to JOIN read-only master
>   failed = TarantoolServer(server.ini)
> -failed.script = 'replication-py/failed.lua'
> +failed.script = "replication-py/failed.lua"
>   failed.vardir = server.vardir
>   failed.rpl_master = master
>   failed.name = "failed"
> @@ -235,16 +240,16 @@ try:
>   except Exception as e:
>       line = "ER_READONLY"
>       if failed.logfile_pos.seek_once(line) >= 0:
> -        print "'%s' exists in server log" % line
> +        print("\'{}\' exists in server log".format(line))
>   
> -master.admin('box.cfg { read_only = false }')
> +master.admin("box.cfg { read_only = false }")
>   
> -print '-------------------------------------------------------------'
> -print 'JOIN replica with different replica set UUID'
> -print '-------------------------------------------------------------'
> +print("-------------------------------------------------------------")
> +print("JOIN replica with different replica set UUID")
> +print("-------------------------------------------------------------")
>   
>   failed = TarantoolServer(server.ini)
> -failed.script = 'replication-py/uuid_mismatch.lua'
> +failed.script = "replication-py/uuid_mismatch.lua"
>   failed.vardir = server.vardir
>   failed.rpl_master = master
>   failed.name = "uuid_mismatch"
> @@ -254,15 +259,15 @@ try:
>   except Exception as e:
>       line = "ER_REPLICASET_UUID_MISMATCH"
>       if failed.logfile_pos.seek_once(line) >= 0:
> -        print "'%s' exists in server log" % line
> +        print("\'{}\' exists in server log".format(line))
>   
>   failed.cleanup()
>   
> -print '-------------------------------------------------------------'
> -print 'Cleanup'
> -print '-------------------------------------------------------------'
> +print("-------------------------------------------------------------")
> +print("Cleanup")
> +print("-------------------------------------------------------------")
>   
>   # Cleanup
>   sys.stdout.pop_filter()
>   master.admin("box.schema.user.revoke('guest', 'replication')")
> -master.admin('box.space._cluster:delete{2} ~= nil')
> +master.admin("box.space._cluster:delete{2} ~= nil")
> diff --git a/test/replication-py/conflict.test.py b/test/replication-py/conflict.test.py
> index 1dcd66765..5e19d0c40 100644
> --- a/test/replication-py/conflict.test.py
> +++ b/test/replication-py/conflict.test.py
> @@ -1,35 +1,37 @@
> +from __future__ import print_function
> +
>   from lib.tarantool_server import TarantoolServer
>   from time import sleep
>   import yaml
>   
> -def check_replication(nodes, select_args=''):
> +def check_replication(nodes, select_args=""):
>       for node in nodes:
> -        node.admin('box.space.test:select{%s}' % select_args)
> +        node.admin("box.space.test:select{{{}}}".format(select_args))
>   
>   master = server
>   master.admin("box.schema.user.grant('guest', 'replication')")
>   
>   replica = TarantoolServer(server.ini)
> -replica.script = 'replication-py/replica.lua'
> +replica.script = "replication-py/replica.lua"
>   replica.vardir = server.vardir
>   replica.rpl_master = master
>   replica.deploy()
>   
>   def parallel_run(cmd1, cmd2, compare):
> -    print 'parallel send: %s' % cmd1
> -    print 'parallel send: %s' % cmd2
> -    master.admin.socket.sendall('%s\n' % cmd1)
> -    replica.admin.socket.sendall('%s\n' % cmd2)
> +    print("parallel send: {}".format(cmd1))
> +    print("parallel send: {}".format(cmd2))
> +    master.admin.socket.sendall("{}\n".format(cmd1))
> +    replica.admin.socket.sendall("{}\n".format(cmd2))
>   
>       master.admin.socket.recv(2048)
>       replica.admin.socket.recv(2048)
>   
>       # wait for status changing in tarantool
>       master_status = yaml.safe_load(master.admin(
> -        'box.info().replication[2].upstream.status', silent=True
> +        "box.info().replication[2].upstream.status", silent=True
>       ))[0]
>       replica_status = yaml.safe_load(replica.admin(
> -        'box.info().replication[1].upstream.status', silent=True
> +        "box.info().replication[1].upstream.status", silent=True
>       ))[0]
>   
>       # wait for status
> @@ -37,11 +39,11 @@ def parallel_run(cmd1, cmd2, compare):
>       while True:
>           sleep(0.01)
>           if any(results):
> -            print 'replication state is correct'
> +            print("replication state is correct")
>               break
>   
>   def prepare_cluster():
> -    print 'reset master-master replication'
> +    print("reset master-master replication")
>       master.stop()
>       master.cleanup()
>       master.start()
> @@ -51,13 +53,13 @@ def prepare_cluster():
>       replica.cleanup()
>       replica.start()
>   
> -    master.admin("box.cfg{replication='%s'}" % replica.iproto.uri, silent=True)
> -    r1_id = replica.get_param('id')
> -    r2_id = master.get_param('id')
> +    master.admin("box.cfg{{replication='{}'}}".format(replica.iproto.uri), silent=True)
> +    r1_id = replica.get_param("id")
> +    r2_id = master.get_param("id")
>   
>       master.admin("space = box.schema.space.create('test')", silent=True)
>       master.admin("index = space:create_index('primary', { type = 'tree'})", silent=True)
> -    master.admin('for k = 1, 9 do space:insert{k, k*k} end', silent=True)
> +    master.admin("for k = 1, 9 do space:insert{k, k*k} end", silent=True)
>   
>       # wait lsn
>       replica.wait_lsn(r2_id, master.get_lsn(r2_id))
> @@ -69,20 +71,20 @@ parallel_run(
>       "box.space.test:update(1, {{'#', 2, 1}})",
>       "box.space.test:update(1, {{'#', 2, 1}})",
>       [
> -        lambda x,y: x == 'stopped' or y == 'stopped',
> -        lambda x,y: x == 'follow' and y == 'follow',
> +        lambda x,y: x == "stopped" or y == "stopped",
> +        lambda x,y: x == "follow" and y == "follow",
>       ]
>   )
> -check_replication([master, replica], '1')
> +check_replication([master, replica], "1")
>   
>   # test2: insert different values with single id
>   prepare_cluster()
>   parallel_run(
> -    'box.space.test:insert{20, 1}',
> -    'box.space.test:insert{20, 2}',
> +    "box.space.test:insert{20, 1}",
> +    "box.space.test:insert{20, 2}",
>       [
> -        lambda x,y: x == 'stopped' or y == 'stopped',
> -        lambda x,y: x == 'follow' and y == 'follow',
> +        lambda x,y: x == "stopped" or y == "stopped",
> +        lambda x,y: x == "follow" and y == "follow",
>       ]
>   )
>   
> @@ -91,7 +93,7 @@ prepare_cluster()
>   parallel_run(
>       "box.space.test:update(2, {{'=', 2, 1}})",
>       "box.space.test:update(2, {{'=', 2, 2}})",
> -    [lambda x,y: x == 'follow' and y == 'follow',]
> +    [lambda x,y: x == "follow" and y == "follow",]
>   )
>   
>   # test4: CRDT increment with update
> @@ -99,16 +101,16 @@ prepare_cluster()
>   parallel_run(
>       "box.space.test:update(1, {{'+', 2, 1}})",
>       "box.space.test:update(1, {{'+', 2, 2}})",
> -    [lambda x,y: x == 'follow' and y == 'follow',]
> +    [lambda x,y: x == "follow" and y == "follow",]
>   )
> -check_replication([master, replica], '1')
> +check_replication([master, replica], "1")
>   
>   # test5: delete not existing key
>   prepare_cluster()
>   parallel_run(
>       "box.space.test:delete(999)",
>       "box.space.test:delete(999)",
> -    [lambda x,y: x == 'follow' and y == 'follow',]
> +    [lambda x,y: x == "follow" and y == "follow",]
>   )
>   check_replication([master, replica])
>   
> diff --git a/test/replication-py/init_storage.test.py b/test/replication-py/init_storage.test.py
> index 4be531f8d..30ba75405 100644
> --- a/test/replication-py/init_storage.test.py
> +++ b/test/replication-py/init_storage.test.py
> @@ -1,80 +1,82 @@
> +from __future__ import print_function
> +
>   import os
>   import glob
>   from lib.tarantool_server import TarantoolServer
>   
>   # master server
>   master = server
> -master_id = master.get_param('id')
> +master_id = master.get_param("id")
>   master.admin("box.schema.user.grant('guest', 'replication')")
>   
> -print '-------------------------------------------------------------'
> -print 'gh-484: JOIN doesn\'t save data to snapshot with TREE index'
> -print '-------------------------------------------------------------'
> +print("-------------------------------------------------------------")
> +print("gh-484: JOIN doesn't save data to snapshot with TREE index")
> +print("-------------------------------------------------------------")
>   
>   master.admin("space = box.schema.space.create('test', {id =  42})")
>   master.admin("index = space:create_index('primary', { type = 'tree'})")
>   
> -master.admin('for k = 1, 9 do space:insert{k, k*k} end')
> +master.admin("for k = 1, 9 do space:insert{k, k*k} end")
>   
>   replica = TarantoolServer(server.ini)
> -replica.script = 'replication-py/replica.lua'
> +replica.script = "replication-py/replica.lua"
>   replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
>   replica.rpl_master = master
>   replica.deploy()
> -replica.admin('box.space.test:select()')
> +replica.admin("box.space.test:select()")
>   
>   replica.restart()
> -replica.admin('box.space.test:select()')
> +replica.admin("box.space.test:select()")
>   replica.stop()
>   replica.cleanup()
>   
> -print '-------------------------------------------------------------'
> -print 'replica test 2 (must be ok)'
> -print '-------------------------------------------------------------'
> +print("-------------------------------------------------------------")
> +print("replica test 2 (must be ok)")
> +print("-------------------------------------------------------------")
>   
>   master.restart()
> -master.admin('for k = 10, 19 do box.space[42]:insert{k, k*k*k} end')
> +master.admin("for k = 10, 19 do box.space[42]:insert{k, k*k*k} end")
>   master.admin("for k = 20, 29 do box.space[42]:upsert({k}, {}) end")
>   lsn = master.get_lsn(master_id)
>   
>   replica = TarantoolServer(server.ini)
> -replica.script = 'replication-py/replica.lua'
> +replica.script = "replication-py/replica.lua"
>   replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
>   replica.rpl_master = master
>   replica.deploy()
>   
> -replica.admin('space = box.space.test');
> +replica.admin("space = box.space.test");
>   replica.wait_lsn(master_id, lsn)
>   for i in range(1, 20):
> -    replica.admin('space:get{%d}' % i)
> +    replica.admin("space:get{{{}}}".format(i))
>   
>   replica.stop()
>   replica.cleanup()
>   
> -print '-------------------------------------------------------------'
> -print 'reconnect on JOIN/SUBSCRIBE'
> -print '-------------------------------------------------------------'
> +print("-------------------------------------------------------------")
> +print("reconnect on JOIN/SUBSCRIBE")
> +print("-------------------------------------------------------------")
>   
>   server.stop()
>   replica = TarantoolServer(server.ini)
> -replica.script = 'replication-py/replica.lua'
> +replica.script = "replication-py/replica.lua"
>   replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
>   replica.rpl_master = master
>   replica.deploy(wait=False)
>   
> -print 'waiting reconnect on JOIN...'
> +print("waiting reconnect on JOIN...")
>   server.start()
>   replica.wait_until_started()
> -print 'ok'
> +print("ok")
>   
>   replica.stop()
>   server.stop()
>   
> -print 'waiting reconnect on SUBSCRIBE...'
> +print("waiting reconnect on SUBSCRIBE...")
>   replica.start(wait=False)
>   server.start()
>   replica.wait_until_started()
> -print 'ok'
> +print("ok")
>   
>   replica.stop()
>   replica.cleanup()
> diff --git a/test/replication-py/multi.test.py b/test/replication-py/multi.test.py
> index 233802458..a346fd560 100644
> --- a/test/replication-py/multi.test.py
> +++ b/test/replication-py/multi.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   import sys
>   import os
>   from lib.tarantool_server import TarantoolServer
> @@ -14,17 +16,17 @@ master.admin("fiber = require('fiber')")
>   master.admin("box.schema.user.grant('guest', 'replication')")
>   master.admin("box.schema.user.grant('guest', 'execute', 'universe')")
>   
> -print '----------------------------------------------------------------------'
> -print 'Bootstrap replicas'
> -print '----------------------------------------------------------------------'
> +print("----------------------------------------------------------------------")
> +print("Bootstrap replicas")
> +print("----------------------------------------------------------------------")
>   
>   # Start replicas
> -master.id = master.get_param('id')
> +master.id = master.get_param("id")
>   cluster = [ master ]
>   for i in range(REPLICA_N - 1):
>       server = TarantoolServer(server.ini)
> -    server.script = 'replication-py/replica.lua'
> -    server.vardir = os.path.join(server.vardir, 'replica', str(master.id + i))
> +    server.script = "replication-py/replica.lua"
> +    server.vardir = os.path.join(server.vardir, "replica", str(master.id + i))
>       server.rpl_master = master
>       server.deploy()
>       # Wait replica to fully bootstrap.
> @@ -34,14 +36,14 @@ for i in range(REPLICA_N - 1):
>   # Make a list of servers
>   sources = []
>   for server in cluster:
> -    sources.append(yaml.safe_load(server.admin('box.cfg.listen', silent = True))[0])
> -    server.id = server.get_param('id')
> +    sources.append(yaml.safe_load(server.admin("box.cfg.listen", silent = True))[0])
> +    server.id = server.get_param("id")
>   
> -print 'done'
> +print("done")
>   
> -print '----------------------------------------------------------------------'
> -print 'Make a full mesh'
> -print '----------------------------------------------------------------------'
> +print("----------------------------------------------------------------------")
> +print("Make a full mesh")
> +print("----------------------------------------------------------------------")
>   
>   # Connect each server to each other to make full mesh
>   for server in cluster:
> @@ -54,55 +56,55 @@ for server in cluster:
>               while #box.info.vclock[...] ~= nil do
>                   fiber.sleep(0.01)
>               end;""", server2.id)
> -        print 'server', server.id, "connected"
> +        print("server {} connected".format(server.id))
>   
> -print 'done'
> +print("done")
>   
> -print '----------------------------------------------------------------------'
> -print 'Test inserts'
> -print '----------------------------------------------------------------------'
> +print("----------------------------------------------------------------------")
> +print("Test inserts")
> +print("----------------------------------------------------------------------")
>   
> -print 'Create a test space'
> +print("Create a test space")
>   master.admin("_ = box.schema.space.create('test')")
>   master.admin("_ = box.space.test:create_index('primary')")
>   master_lsn = master.get_lsn(master.id)
>   # Wait changes to propagate to replicas
>   for server in cluster:
>       server.wait_lsn(master.id, master_lsn)
> -    print 'server', server.id, 'is ok'
> -print
> +    print("server {} is ok".format(server.id))
> +print("")
>   
> -print 'Insert records'
> +print("Insert records")
>   for i in range(ROW_N):
>       server = cluster[i % REPLICA_N]
> -    server.admin("box.space.test:insert{%d, %s}" % (i, server.id), silent = True)
> -print 'inserted %d records' % ROW_N
> -print
> +    server.admin("box.space.test:insert{{{}, {}}}".format(i, server.id), silent = True)
> +print("inserted {} records".format(ROW_N))
> +print("")
>   
> -print 'Synchronize'
> +print("Synchronize")
>   for server1 in cluster:
>       for server2 in cluster:
>           server1.wait_lsn(server2.id, server2.get_lsn(server2.id))
> -    print 'server', server1.id, 'done'
> -print 'done'
> -print
> +    print("server {} done".format(server1.id))
> +print("done")
> +print("")
>   
> -print 'Check data'
> +print("Check data")
>   for server in cluster:
>       cnt = yaml.safe_load(server.admin("box.space.test:len()", silent = True))[0]
> -    print 'server', server.id, 'is', cnt == ROW_N and 'ok' or 'not ok'
> -print 'Done'
> -print
> +    print("server {} is {}".format(server.id, cnt == ROW_N and "ok" or "not ok"))
> +print("Done")
> +print("")
>   
> -print
> -print '----------------------------------------------------------------------'
> -print 'Cleanup'
> -print '----------------------------------------------------------------------'
> +print("")
> +print("----------------------------------------------------------------------")
> +print("Cleanup")
> +print("----------------------------------------------------------------------")
>   
>   for server in cluster:
>       server.stop()
> -    print 'server', server.id, 'done'
> -print
> +    print("server {} done".format(server.id))
> +print("")
>   
>   master.cleanup()
>   master.deploy()
> diff --git a/test/replication-py/swap.result b/test/replication-py/swap.result
> index 7e6e66483..f96da95e4 100644
> --- a/test/replication-py/swap.result
> +++ b/test/replication-py/swap.result
> @@ -23,34 +23,34 @@ index = s:create_index('primary', {type = 'tree'})
>   ---
>   ...
>   test 0 iteration
> -box.space.memtx:insert{0, "tuple 0"}
> +box.space.memtx:insert{0, 'tuple 0'}
>   -
>   - [0, 'tuple 0']
> -box.space.memtx:insert{1, "tuple 1"}
> +box.space.memtx:insert{1, 'tuple 1'}
>   -
>   - [1, 'tuple 1']
> -box.space.memtx:insert{2, "tuple 2"}
> +box.space.memtx:insert{2, 'tuple 2'}
>   -
>   - [2, 'tuple 2']
> -box.space.memtx:insert{3, "tuple 3"}
> +box.space.memtx:insert{3, 'tuple 3'}
>   -
>   - [3, 'tuple 3']
> -box.space.memtx:insert{4, "tuple 4"}
> +box.space.memtx:insert{4, 'tuple 4'}
>   -
>   - [4, 'tuple 4']
> -box.space.vinyl:insert{0, "tuple 0"}
> +box.space.vinyl:insert{0, 'tuple 0'}
>   -
>   - [0, 'tuple 0']
> -box.space.vinyl:insert{1, "tuple 1"}
> +box.space.vinyl:insert{1, 'tuple 1'}
>   -
>   - [1, 'tuple 1']
> -box.space.vinyl:insert{2, "tuple 2"}
> +box.space.vinyl:insert{2, 'tuple 2'}
>   -
>   - [2, 'tuple 2']
> -box.space.vinyl:insert{3, "tuple 3"}
> +box.space.vinyl:insert{3, 'tuple 3'}
>   -
>   - [3, 'tuple 3']
> -box.space.vinyl:insert{4, "tuple 4"}
> +box.space.vinyl:insert{4, 'tuple 4'}
>   -
>   - [4, 'tuple 4']
>   box.space.memtx:select{0}
> @@ -83,34 +83,34 @@ box.space.vinyl:select{3}
>   box.space.vinyl:select{4}
>   -
>   - [4, 'tuple 4']
> -box.space.memtx:insert{5, "tuple 5"}
> +box.space.memtx:insert{5, 'tuple 5'}
>   -
>   - [5, 'tuple 5']
> -box.space.memtx:insert{6, "tuple 6"}
> +box.space.memtx:insert{6, 'tuple 6'}
>   -
>   - [6, 'tuple 6']
> -box.space.memtx:insert{7, "tuple 7"}
> +box.space.memtx:insert{7, 'tuple 7'}
>   -
>   - [7, 'tuple 7']
> -box.space.memtx:insert{8, "tuple 8"}
> +box.space.memtx:insert{8, 'tuple 8'}
>   -
>   - [8, 'tuple 8']
> -box.space.memtx:insert{9, "tuple 9"}
> +box.space.memtx:insert{9, 'tuple 9'}
>   -
>   - [9, 'tuple 9']
> -box.space.vinyl:insert{5, "tuple 5"}
> +box.space.vinyl:insert{5, 'tuple 5'}
>   -
>   - [5, 'tuple 5']
> -box.space.vinyl:insert{6, "tuple 6"}
> +box.space.vinyl:insert{6, 'tuple 6'}
>   -
>   - [6, 'tuple 6']
> -box.space.vinyl:insert{7, "tuple 7"}
> +box.space.vinyl:insert{7, 'tuple 7'}
>   -
>   - [7, 'tuple 7']
> -box.space.vinyl:insert{8, "tuple 8"}
> +box.space.vinyl:insert{8, 'tuple 8'}
>   -
>   - [8, 'tuple 8']
> -box.space.vinyl:insert{9, "tuple 9"}
> +box.space.vinyl:insert{9, 'tuple 9'}
>   -
>   - [9, 'tuple 9']
>   box.space.memtx:select{5}
> @@ -149,34 +149,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{10, "tuple 10"}
> +box.space.memtx:insert{10, 'tuple 10'}
>   -
>   - [10, 'tuple 10']
> -box.space.memtx:insert{11, "tuple 11"}
> +box.space.memtx:insert{11, 'tuple 11'}
>   -
>   - [11, 'tuple 11']
> -box.space.memtx:insert{12, "tuple 12"}
> +box.space.memtx:insert{12, 'tuple 12'}
>   -
>   - [12, 'tuple 12']
> -box.space.memtx:insert{13, "tuple 13"}
> +box.space.memtx:insert{13, 'tuple 13'}
>   -
>   - [13, 'tuple 13']
> -box.space.memtx:insert{14, "tuple 14"}
> +box.space.memtx:insert{14, 'tuple 14'}
>   -
>   - [14, 'tuple 14']
> -box.space.vinyl:insert{10, "tuple 10"}
> +box.space.vinyl:insert{10, 'tuple 10'}
>   -
>   - [10, 'tuple 10']
> -box.space.vinyl:insert{11, "tuple 11"}
> +box.space.vinyl:insert{11, 'tuple 11'}
>   -
>   - [11, 'tuple 11']
> -box.space.vinyl:insert{12, "tuple 12"}
> +box.space.vinyl:insert{12, 'tuple 12'}
>   -
>   - [12, 'tuple 12']
> -box.space.vinyl:insert{13, "tuple 13"}
> +box.space.vinyl:insert{13, 'tuple 13'}
>   -
>   - [13, 'tuple 13']
> -box.space.vinyl:insert{14, "tuple 14"}
> +box.space.vinyl:insert{14, 'tuple 14'}
>   -
>   - [14, 'tuple 14']
>   box.space.memtx:select{10}
> @@ -209,34 +209,34 @@ box.space.vinyl:select{13}
>   box.space.vinyl:select{14}
>   -
>   - [14, 'tuple 14']
> -box.space.memtx:insert{15, "tuple 15"}
> +box.space.memtx:insert{15, 'tuple 15'}
>   -
>   - [15, 'tuple 15']
> -box.space.memtx:insert{16, "tuple 16"}
> +box.space.memtx:insert{16, 'tuple 16'}
>   -
>   - [16, 'tuple 16']
> -box.space.memtx:insert{17, "tuple 17"}
> +box.space.memtx:insert{17, 'tuple 17'}
>   -
>   - [17, 'tuple 17']
> -box.space.memtx:insert{18, "tuple 18"}
> +box.space.memtx:insert{18, 'tuple 18'}
>   -
>   - [18, 'tuple 18']
> -box.space.memtx:insert{19, "tuple 19"}
> +box.space.memtx:insert{19, 'tuple 19'}
>   -
>   - [19, 'tuple 19']
> -box.space.vinyl:insert{15, "tuple 15"}
> +box.space.vinyl:insert{15, 'tuple 15'}
>   -
>   - [15, 'tuple 15']
> -box.space.vinyl:insert{16, "tuple 16"}
> +box.space.vinyl:insert{16, 'tuple 16'}
>   -
>   - [16, 'tuple 16']
> -box.space.vinyl:insert{17, "tuple 17"}
> +box.space.vinyl:insert{17, 'tuple 17'}
>   -
>   - [17, 'tuple 17']
> -box.space.vinyl:insert{18, "tuple 18"}
> +box.space.vinyl:insert{18, 'tuple 18'}
>   -
>   - [18, 'tuple 18']
> -box.space.vinyl:insert{19, "tuple 19"}
> +box.space.vinyl:insert{19, 'tuple 19'}
>   -
>   - [19, 'tuple 19']
>   box.space.memtx:select{15}
> @@ -276,34 +276,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 1 iteration
> -box.space.memtx:insert{20, "tuple 20"}
> +box.space.memtx:insert{20, 'tuple 20'}
>   -
>   - [20, 'tuple 20']
> -box.space.memtx:insert{21, "tuple 21"}
> +box.space.memtx:insert{21, 'tuple 21'}
>   -
>   - [21, 'tuple 21']
> -box.space.memtx:insert{22, "tuple 22"}
> +box.space.memtx:insert{22, 'tuple 22'}
>   -
>   - [22, 'tuple 22']
> -box.space.memtx:insert{23, "tuple 23"}
> +box.space.memtx:insert{23, 'tuple 23'}
>   -
>   - [23, 'tuple 23']
> -box.space.memtx:insert{24, "tuple 24"}
> +box.space.memtx:insert{24, 'tuple 24'}
>   -
>   - [24, 'tuple 24']
> -box.space.vinyl:insert{20, "tuple 20"}
> +box.space.vinyl:insert{20, 'tuple 20'}
>   -
>   - [20, 'tuple 20']
> -box.space.vinyl:insert{21, "tuple 21"}
> +box.space.vinyl:insert{21, 'tuple 21'}
>   -
>   - [21, 'tuple 21']
> -box.space.vinyl:insert{22, "tuple 22"}
> +box.space.vinyl:insert{22, 'tuple 22'}
>   -
>   - [22, 'tuple 22']
> -box.space.vinyl:insert{23, "tuple 23"}
> +box.space.vinyl:insert{23, 'tuple 23'}
>   -
>   - [23, 'tuple 23']
> -box.space.vinyl:insert{24, "tuple 24"}
> +box.space.vinyl:insert{24, 'tuple 24'}
>   -
>   - [24, 'tuple 24']
>   box.space.memtx:select{20}
> @@ -336,34 +336,34 @@ box.space.vinyl:select{23}
>   box.space.vinyl:select{24}
>   -
>   - [24, 'tuple 24']
> -box.space.memtx:insert{25, "tuple 25"}
> +box.space.memtx:insert{25, 'tuple 25'}
>   -
>   - [25, 'tuple 25']
> -box.space.memtx:insert{26, "tuple 26"}
> +box.space.memtx:insert{26, 'tuple 26'}
>   -
>   - [26, 'tuple 26']
> -box.space.memtx:insert{27, "tuple 27"}
> +box.space.memtx:insert{27, 'tuple 27'}
>   -
>   - [27, 'tuple 27']
> -box.space.memtx:insert{28, "tuple 28"}
> +box.space.memtx:insert{28, 'tuple 28'}
>   -
>   - [28, 'tuple 28']
> -box.space.memtx:insert{29, "tuple 29"}
> +box.space.memtx:insert{29, 'tuple 29'}
>   -
>   - [29, 'tuple 29']
> -box.space.vinyl:insert{25, "tuple 25"}
> +box.space.vinyl:insert{25, 'tuple 25'}
>   -
>   - [25, 'tuple 25']
> -box.space.vinyl:insert{26, "tuple 26"}
> +box.space.vinyl:insert{26, 'tuple 26'}
>   -
>   - [26, 'tuple 26']
> -box.space.vinyl:insert{27, "tuple 27"}
> +box.space.vinyl:insert{27, 'tuple 27'}
>   -
>   - [27, 'tuple 27']
> -box.space.vinyl:insert{28, "tuple 28"}
> +box.space.vinyl:insert{28, 'tuple 28'}
>   -
>   - [28, 'tuple 28']
> -box.space.vinyl:insert{29, "tuple 29"}
> +box.space.vinyl:insert{29, 'tuple 29'}
>   -
>   - [29, 'tuple 29']
>   box.space.memtx:select{25}
> @@ -402,34 +402,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{30, "tuple 30"}
> +box.space.memtx:insert{30, 'tuple 30'}
>   -
>   - [30, 'tuple 30']
> -box.space.memtx:insert{31, "tuple 31"}
> +box.space.memtx:insert{31, 'tuple 31'}
>   -
>   - [31, 'tuple 31']
> -box.space.memtx:insert{32, "tuple 32"}
> +box.space.memtx:insert{32, 'tuple 32'}
>   -
>   - [32, 'tuple 32']
> -box.space.memtx:insert{33, "tuple 33"}
> +box.space.memtx:insert{33, 'tuple 33'}
>   -
>   - [33, 'tuple 33']
> -box.space.memtx:insert{34, "tuple 34"}
> +box.space.memtx:insert{34, 'tuple 34'}
>   -
>   - [34, 'tuple 34']
> -box.space.vinyl:insert{30, "tuple 30"}
> +box.space.vinyl:insert{30, 'tuple 30'}
>   -
>   - [30, 'tuple 30']
> -box.space.vinyl:insert{31, "tuple 31"}
> +box.space.vinyl:insert{31, 'tuple 31'}
>   -
>   - [31, 'tuple 31']
> -box.space.vinyl:insert{32, "tuple 32"}
> +box.space.vinyl:insert{32, 'tuple 32'}
>   -
>   - [32, 'tuple 32']
> -box.space.vinyl:insert{33, "tuple 33"}
> +box.space.vinyl:insert{33, 'tuple 33'}
>   -
>   - [33, 'tuple 33']
> -box.space.vinyl:insert{34, "tuple 34"}
> +box.space.vinyl:insert{34, 'tuple 34'}
>   -
>   - [34, 'tuple 34']
>   box.space.memtx:select{30}
> @@ -462,34 +462,34 @@ box.space.vinyl:select{33}
>   box.space.vinyl:select{34}
>   -
>   - [34, 'tuple 34']
> -box.space.memtx:insert{35, "tuple 35"}
> +box.space.memtx:insert{35, 'tuple 35'}
>   -
>   - [35, 'tuple 35']
> -box.space.memtx:insert{36, "tuple 36"}
> +box.space.memtx:insert{36, 'tuple 36'}
>   -
>   - [36, 'tuple 36']
> -box.space.memtx:insert{37, "tuple 37"}
> +box.space.memtx:insert{37, 'tuple 37'}
>   -
>   - [37, 'tuple 37']
> -box.space.memtx:insert{38, "tuple 38"}
> +box.space.memtx:insert{38, 'tuple 38'}
>   -
>   - [38, 'tuple 38']
> -box.space.memtx:insert{39, "tuple 39"}
> +box.space.memtx:insert{39, 'tuple 39'}
>   -
>   - [39, 'tuple 39']
> -box.space.vinyl:insert{35, "tuple 35"}
> +box.space.vinyl:insert{35, 'tuple 35'}
>   -
>   - [35, 'tuple 35']
> -box.space.vinyl:insert{36, "tuple 36"}
> +box.space.vinyl:insert{36, 'tuple 36'}
>   -
>   - [36, 'tuple 36']
> -box.space.vinyl:insert{37, "tuple 37"}
> +box.space.vinyl:insert{37, 'tuple 37'}
>   -
>   - [37, 'tuple 37']
> -box.space.vinyl:insert{38, "tuple 38"}
> +box.space.vinyl:insert{38, 'tuple 38'}
>   -
>   - [38, 'tuple 38']
> -box.space.vinyl:insert{39, "tuple 39"}
> +box.space.vinyl:insert{39, 'tuple 39'}
>   -
>   - [39, 'tuple 39']
>   box.space.memtx:select{35}
> @@ -529,34 +529,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 2 iteration
> -box.space.memtx:insert{40, "tuple 40"}
> +box.space.memtx:insert{40, 'tuple 40'}
>   -
>   - [40, 'tuple 40']
> -box.space.memtx:insert{41, "tuple 41"}
> +box.space.memtx:insert{41, 'tuple 41'}
>   -
>   - [41, 'tuple 41']
> -box.space.memtx:insert{42, "tuple 42"}
> +box.space.memtx:insert{42, 'tuple 42'}
>   -
>   - [42, 'tuple 42']
> -box.space.memtx:insert{43, "tuple 43"}
> +box.space.memtx:insert{43, 'tuple 43'}
>   -
>   - [43, 'tuple 43']
> -box.space.memtx:insert{44, "tuple 44"}
> +box.space.memtx:insert{44, 'tuple 44'}
>   -
>   - [44, 'tuple 44']
> -box.space.vinyl:insert{40, "tuple 40"}
> +box.space.vinyl:insert{40, 'tuple 40'}
>   -
>   - [40, 'tuple 40']
> -box.space.vinyl:insert{41, "tuple 41"}
> +box.space.vinyl:insert{41, 'tuple 41'}
>   -
>   - [41, 'tuple 41']
> -box.space.vinyl:insert{42, "tuple 42"}
> +box.space.vinyl:insert{42, 'tuple 42'}
>   -
>   - [42, 'tuple 42']
> -box.space.vinyl:insert{43, "tuple 43"}
> +box.space.vinyl:insert{43, 'tuple 43'}
>   -
>   - [43, 'tuple 43']
> -box.space.vinyl:insert{44, "tuple 44"}
> +box.space.vinyl:insert{44, 'tuple 44'}
>   -
>   - [44, 'tuple 44']
>   box.space.memtx:select{40}
> @@ -589,34 +589,34 @@ box.space.vinyl:select{43}
>   box.space.vinyl:select{44}
>   -
>   - [44, 'tuple 44']
> -box.space.memtx:insert{45, "tuple 45"}
> +box.space.memtx:insert{45, 'tuple 45'}
>   -
>   - [45, 'tuple 45']
> -box.space.memtx:insert{46, "tuple 46"}
> +box.space.memtx:insert{46, 'tuple 46'}
>   -
>   - [46, 'tuple 46']
> -box.space.memtx:insert{47, "tuple 47"}
> +box.space.memtx:insert{47, 'tuple 47'}
>   -
>   - [47, 'tuple 47']
> -box.space.memtx:insert{48, "tuple 48"}
> +box.space.memtx:insert{48, 'tuple 48'}
>   -
>   - [48, 'tuple 48']
> -box.space.memtx:insert{49, "tuple 49"}
> +box.space.memtx:insert{49, 'tuple 49'}
>   -
>   - [49, 'tuple 49']
> -box.space.vinyl:insert{45, "tuple 45"}
> +box.space.vinyl:insert{45, 'tuple 45'}
>   -
>   - [45, 'tuple 45']
> -box.space.vinyl:insert{46, "tuple 46"}
> +box.space.vinyl:insert{46, 'tuple 46'}
>   -
>   - [46, 'tuple 46']
> -box.space.vinyl:insert{47, "tuple 47"}
> +box.space.vinyl:insert{47, 'tuple 47'}
>   -
>   - [47, 'tuple 47']
> -box.space.vinyl:insert{48, "tuple 48"}
> +box.space.vinyl:insert{48, 'tuple 48'}
>   -
>   - [48, 'tuple 48']
> -box.space.vinyl:insert{49, "tuple 49"}
> +box.space.vinyl:insert{49, 'tuple 49'}
>   -
>   - [49, 'tuple 49']
>   box.space.memtx:select{45}
> @@ -655,34 +655,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{50, "tuple 50"}
> +box.space.memtx:insert{50, 'tuple 50'}
>   -
>   - [50, 'tuple 50']
> -box.space.memtx:insert{51, "tuple 51"}
> +box.space.memtx:insert{51, 'tuple 51'}
>   -
>   - [51, 'tuple 51']
> -box.space.memtx:insert{52, "tuple 52"}
> +box.space.memtx:insert{52, 'tuple 52'}
>   -
>   - [52, 'tuple 52']
> -box.space.memtx:insert{53, "tuple 53"}
> +box.space.memtx:insert{53, 'tuple 53'}
>   -
>   - [53, 'tuple 53']
> -box.space.memtx:insert{54, "tuple 54"}
> +box.space.memtx:insert{54, 'tuple 54'}
>   -
>   - [54, 'tuple 54']
> -box.space.vinyl:insert{50, "tuple 50"}
> +box.space.vinyl:insert{50, 'tuple 50'}
>   -
>   - [50, 'tuple 50']
> -box.space.vinyl:insert{51, "tuple 51"}
> +box.space.vinyl:insert{51, 'tuple 51'}
>   -
>   - [51, 'tuple 51']
> -box.space.vinyl:insert{52, "tuple 52"}
> +box.space.vinyl:insert{52, 'tuple 52'}
>   -
>   - [52, 'tuple 52']
> -box.space.vinyl:insert{53, "tuple 53"}
> +box.space.vinyl:insert{53, 'tuple 53'}
>   -
>   - [53, 'tuple 53']
> -box.space.vinyl:insert{54, "tuple 54"}
> +box.space.vinyl:insert{54, 'tuple 54'}
>   -
>   - [54, 'tuple 54']
>   box.space.memtx:select{50}
> @@ -715,34 +715,34 @@ box.space.vinyl:select{53}
>   box.space.vinyl:select{54}
>   -
>   - [54, 'tuple 54']
> -box.space.memtx:insert{55, "tuple 55"}
> +box.space.memtx:insert{55, 'tuple 55'}
>   -
>   - [55, 'tuple 55']
> -box.space.memtx:insert{56, "tuple 56"}
> +box.space.memtx:insert{56, 'tuple 56'}
>   -
>   - [56, 'tuple 56']
> -box.space.memtx:insert{57, "tuple 57"}
> +box.space.memtx:insert{57, 'tuple 57'}
>   -
>   - [57, 'tuple 57']
> -box.space.memtx:insert{58, "tuple 58"}
> +box.space.memtx:insert{58, 'tuple 58'}
>   -
>   - [58, 'tuple 58']
> -box.space.memtx:insert{59, "tuple 59"}
> +box.space.memtx:insert{59, 'tuple 59'}
>   -
>   - [59, 'tuple 59']
> -box.space.vinyl:insert{55, "tuple 55"}
> +box.space.vinyl:insert{55, 'tuple 55'}
>   -
>   - [55, 'tuple 55']
> -box.space.vinyl:insert{56, "tuple 56"}
> +box.space.vinyl:insert{56, 'tuple 56'}
>   -
>   - [56, 'tuple 56']
> -box.space.vinyl:insert{57, "tuple 57"}
> +box.space.vinyl:insert{57, 'tuple 57'}
>   -
>   - [57, 'tuple 57']
> -box.space.vinyl:insert{58, "tuple 58"}
> +box.space.vinyl:insert{58, 'tuple 58'}
>   -
>   - [58, 'tuple 58']
> -box.space.vinyl:insert{59, "tuple 59"}
> +box.space.vinyl:insert{59, 'tuple 59'}
>   -
>   - [59, 'tuple 59']
>   box.space.memtx:select{55}
> @@ -782,34 +782,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 3 iteration
> -box.space.memtx:insert{60, "tuple 60"}
> +box.space.memtx:insert{60, 'tuple 60'}
>   -
>   - [60, 'tuple 60']
> -box.space.memtx:insert{61, "tuple 61"}
> +box.space.memtx:insert{61, 'tuple 61'}
>   -
>   - [61, 'tuple 61']
> -box.space.memtx:insert{62, "tuple 62"}
> +box.space.memtx:insert{62, 'tuple 62'}
>   -
>   - [62, 'tuple 62']
> -box.space.memtx:insert{63, "tuple 63"}
> +box.space.memtx:insert{63, 'tuple 63'}
>   -
>   - [63, 'tuple 63']
> -box.space.memtx:insert{64, "tuple 64"}
> +box.space.memtx:insert{64, 'tuple 64'}
>   -
>   - [64, 'tuple 64']
> -box.space.vinyl:insert{60, "tuple 60"}
> +box.space.vinyl:insert{60, 'tuple 60'}
>   -
>   - [60, 'tuple 60']
> -box.space.vinyl:insert{61, "tuple 61"}
> +box.space.vinyl:insert{61, 'tuple 61'}
>   -
>   - [61, 'tuple 61']
> -box.space.vinyl:insert{62, "tuple 62"}
> +box.space.vinyl:insert{62, 'tuple 62'}
>   -
>   - [62, 'tuple 62']
> -box.space.vinyl:insert{63, "tuple 63"}
> +box.space.vinyl:insert{63, 'tuple 63'}
>   -
>   - [63, 'tuple 63']
> -box.space.vinyl:insert{64, "tuple 64"}
> +box.space.vinyl:insert{64, 'tuple 64'}
>   -
>   - [64, 'tuple 64']
>   box.space.memtx:select{60}
> @@ -842,34 +842,34 @@ box.space.vinyl:select{63}
>   box.space.vinyl:select{64}
>   -
>   - [64, 'tuple 64']
> -box.space.memtx:insert{65, "tuple 65"}
> +box.space.memtx:insert{65, 'tuple 65'}
>   -
>   - [65, 'tuple 65']
> -box.space.memtx:insert{66, "tuple 66"}
> +box.space.memtx:insert{66, 'tuple 66'}
>   -
>   - [66, 'tuple 66']
> -box.space.memtx:insert{67, "tuple 67"}
> +box.space.memtx:insert{67, 'tuple 67'}
>   -
>   - [67, 'tuple 67']
> -box.space.memtx:insert{68, "tuple 68"}
> +box.space.memtx:insert{68, 'tuple 68'}
>   -
>   - [68, 'tuple 68']
> -box.space.memtx:insert{69, "tuple 69"}
> +box.space.memtx:insert{69, 'tuple 69'}
>   -
>   - [69, 'tuple 69']
> -box.space.vinyl:insert{65, "tuple 65"}
> +box.space.vinyl:insert{65, 'tuple 65'}
>   -
>   - [65, 'tuple 65']
> -box.space.vinyl:insert{66, "tuple 66"}
> +box.space.vinyl:insert{66, 'tuple 66'}
>   -
>   - [66, 'tuple 66']
> -box.space.vinyl:insert{67, "tuple 67"}
> +box.space.vinyl:insert{67, 'tuple 67'}
>   -
>   - [67, 'tuple 67']
> -box.space.vinyl:insert{68, "tuple 68"}
> +box.space.vinyl:insert{68, 'tuple 68'}
>   -
>   - [68, 'tuple 68']
> -box.space.vinyl:insert{69, "tuple 69"}
> +box.space.vinyl:insert{69, 'tuple 69'}
>   -
>   - [69, 'tuple 69']
>   box.space.memtx:select{65}
> @@ -908,34 +908,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{70, "tuple 70"}
> +box.space.memtx:insert{70, 'tuple 70'}
>   -
>   - [70, 'tuple 70']
> -box.space.memtx:insert{71, "tuple 71"}
> +box.space.memtx:insert{71, 'tuple 71'}
>   -
>   - [71, 'tuple 71']
> -box.space.memtx:insert{72, "tuple 72"}
> +box.space.memtx:insert{72, 'tuple 72'}
>   -
>   - [72, 'tuple 72']
> -box.space.memtx:insert{73, "tuple 73"}
> +box.space.memtx:insert{73, 'tuple 73'}
>   -
>   - [73, 'tuple 73']
> -box.space.memtx:insert{74, "tuple 74"}
> +box.space.memtx:insert{74, 'tuple 74'}
>   -
>   - [74, 'tuple 74']
> -box.space.vinyl:insert{70, "tuple 70"}
> +box.space.vinyl:insert{70, 'tuple 70'}
>   -
>   - [70, 'tuple 70']
> -box.space.vinyl:insert{71, "tuple 71"}
> +box.space.vinyl:insert{71, 'tuple 71'}
>   -
>   - [71, 'tuple 71']
> -box.space.vinyl:insert{72, "tuple 72"}
> +box.space.vinyl:insert{72, 'tuple 72'}
>   -
>   - [72, 'tuple 72']
> -box.space.vinyl:insert{73, "tuple 73"}
> +box.space.vinyl:insert{73, 'tuple 73'}
>   -
>   - [73, 'tuple 73']
> -box.space.vinyl:insert{74, "tuple 74"}
> +box.space.vinyl:insert{74, 'tuple 74'}
>   -
>   - [74, 'tuple 74']
>   box.space.memtx:select{70}
> @@ -968,34 +968,34 @@ box.space.vinyl:select{73}
>   box.space.vinyl:select{74}
>   -
>   - [74, 'tuple 74']
> -box.space.memtx:insert{75, "tuple 75"}
> +box.space.memtx:insert{75, 'tuple 75'}
>   -
>   - [75, 'tuple 75']
> -box.space.memtx:insert{76, "tuple 76"}
> +box.space.memtx:insert{76, 'tuple 76'}
>   -
>   - [76, 'tuple 76']
> -box.space.memtx:insert{77, "tuple 77"}
> +box.space.memtx:insert{77, 'tuple 77'}
>   -
>   - [77, 'tuple 77']
> -box.space.memtx:insert{78, "tuple 78"}
> +box.space.memtx:insert{78, 'tuple 78'}
>   -
>   - [78, 'tuple 78']
> -box.space.memtx:insert{79, "tuple 79"}
> +box.space.memtx:insert{79, 'tuple 79'}
>   -
>   - [79, 'tuple 79']
> -box.space.vinyl:insert{75, "tuple 75"}
> +box.space.vinyl:insert{75, 'tuple 75'}
>   -
>   - [75, 'tuple 75']
> -box.space.vinyl:insert{76, "tuple 76"}
> +box.space.vinyl:insert{76, 'tuple 76'}
>   -
>   - [76, 'tuple 76']
> -box.space.vinyl:insert{77, "tuple 77"}
> +box.space.vinyl:insert{77, 'tuple 77'}
>   -
>   - [77, 'tuple 77']
> -box.space.vinyl:insert{78, "tuple 78"}
> +box.space.vinyl:insert{78, 'tuple 78'}
>   -
>   - [78, 'tuple 78']
> -box.space.vinyl:insert{79, "tuple 79"}
> +box.space.vinyl:insert{79, 'tuple 79'}
>   -
>   - [79, 'tuple 79']
>   box.space.memtx:select{75}
> @@ -1035,34 +1035,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 4 iteration
> -box.space.memtx:insert{80, "tuple 80"}
> +box.space.memtx:insert{80, 'tuple 80'}
>   -
>   - [80, 'tuple 80']
> -box.space.memtx:insert{81, "tuple 81"}
> +box.space.memtx:insert{81, 'tuple 81'}
>   -
>   - [81, 'tuple 81']
> -box.space.memtx:insert{82, "tuple 82"}
> +box.space.memtx:insert{82, 'tuple 82'}
>   -
>   - [82, 'tuple 82']
> -box.space.memtx:insert{83, "tuple 83"}
> +box.space.memtx:insert{83, 'tuple 83'}
>   -
>   - [83, 'tuple 83']
> -box.space.memtx:insert{84, "tuple 84"}
> +box.space.memtx:insert{84, 'tuple 84'}
>   -
>   - [84, 'tuple 84']
> -box.space.vinyl:insert{80, "tuple 80"}
> +box.space.vinyl:insert{80, 'tuple 80'}
>   -
>   - [80, 'tuple 80']
> -box.space.vinyl:insert{81, "tuple 81"}
> +box.space.vinyl:insert{81, 'tuple 81'}
>   -
>   - [81, 'tuple 81']
> -box.space.vinyl:insert{82, "tuple 82"}
> +box.space.vinyl:insert{82, 'tuple 82'}
>   -
>   - [82, 'tuple 82']
> -box.space.vinyl:insert{83, "tuple 83"}
> +box.space.vinyl:insert{83, 'tuple 83'}
>   -
>   - [83, 'tuple 83']
> -box.space.vinyl:insert{84, "tuple 84"}
> +box.space.vinyl:insert{84, 'tuple 84'}
>   -
>   - [84, 'tuple 84']
>   box.space.memtx:select{80}
> @@ -1095,34 +1095,34 @@ box.space.vinyl:select{83}
>   box.space.vinyl:select{84}
>   -
>   - [84, 'tuple 84']
> -box.space.memtx:insert{85, "tuple 85"}
> +box.space.memtx:insert{85, 'tuple 85'}
>   -
>   - [85, 'tuple 85']
> -box.space.memtx:insert{86, "tuple 86"}
> +box.space.memtx:insert{86, 'tuple 86'}
>   -
>   - [86, 'tuple 86']
> -box.space.memtx:insert{87, "tuple 87"}
> +box.space.memtx:insert{87, 'tuple 87'}
>   -
>   - [87, 'tuple 87']
> -box.space.memtx:insert{88, "tuple 88"}
> +box.space.memtx:insert{88, 'tuple 88'}
>   -
>   - [88, 'tuple 88']
> -box.space.memtx:insert{89, "tuple 89"}
> +box.space.memtx:insert{89, 'tuple 89'}
>   -
>   - [89, 'tuple 89']
> -box.space.vinyl:insert{85, "tuple 85"}
> +box.space.vinyl:insert{85, 'tuple 85'}
>   -
>   - [85, 'tuple 85']
> -box.space.vinyl:insert{86, "tuple 86"}
> +box.space.vinyl:insert{86, 'tuple 86'}
>   -
>   - [86, 'tuple 86']
> -box.space.vinyl:insert{87, "tuple 87"}
> +box.space.vinyl:insert{87, 'tuple 87'}
>   -
>   - [87, 'tuple 87']
> -box.space.vinyl:insert{88, "tuple 88"}
> +box.space.vinyl:insert{88, 'tuple 88'}
>   -
>   - [88, 'tuple 88']
> -box.space.vinyl:insert{89, "tuple 89"}
> +box.space.vinyl:insert{89, 'tuple 89'}
>   -
>   - [89, 'tuple 89']
>   box.space.memtx:select{85}
> @@ -1161,34 +1161,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{90, "tuple 90"}
> +box.space.memtx:insert{90, 'tuple 90'}
>   -
>   - [90, 'tuple 90']
> -box.space.memtx:insert{91, "tuple 91"}
> +box.space.memtx:insert{91, 'tuple 91'}
>   -
>   - [91, 'tuple 91']
> -box.space.memtx:insert{92, "tuple 92"}
> +box.space.memtx:insert{92, 'tuple 92'}
>   -
>   - [92, 'tuple 92']
> -box.space.memtx:insert{93, "tuple 93"}
> +box.space.memtx:insert{93, 'tuple 93'}
>   -
>   - [93, 'tuple 93']
> -box.space.memtx:insert{94, "tuple 94"}
> +box.space.memtx:insert{94, 'tuple 94'}
>   -
>   - [94, 'tuple 94']
> -box.space.vinyl:insert{90, "tuple 90"}
> +box.space.vinyl:insert{90, 'tuple 90'}
>   -
>   - [90, 'tuple 90']
> -box.space.vinyl:insert{91, "tuple 91"}
> +box.space.vinyl:insert{91, 'tuple 91'}
>   -
>   - [91, 'tuple 91']
> -box.space.vinyl:insert{92, "tuple 92"}
> +box.space.vinyl:insert{92, 'tuple 92'}
>   -
>   - [92, 'tuple 92']
> -box.space.vinyl:insert{93, "tuple 93"}
> +box.space.vinyl:insert{93, 'tuple 93'}
>   -
>   - [93, 'tuple 93']
> -box.space.vinyl:insert{94, "tuple 94"}
> +box.space.vinyl:insert{94, 'tuple 94'}
>   -
>   - [94, 'tuple 94']
>   box.space.memtx:select{90}
> @@ -1221,34 +1221,34 @@ box.space.vinyl:select{93}
>   box.space.vinyl:select{94}
>   -
>   - [94, 'tuple 94']
> -box.space.memtx:insert{95, "tuple 95"}
> +box.space.memtx:insert{95, 'tuple 95'}
>   -
>   - [95, 'tuple 95']
> -box.space.memtx:insert{96, "tuple 96"}
> +box.space.memtx:insert{96, 'tuple 96'}
>   -
>   - [96, 'tuple 96']
> -box.space.memtx:insert{97, "tuple 97"}
> +box.space.memtx:insert{97, 'tuple 97'}
>   -
>   - [97, 'tuple 97']
> -box.space.memtx:insert{98, "tuple 98"}
> +box.space.memtx:insert{98, 'tuple 98'}
>   -
>   - [98, 'tuple 98']
> -box.space.memtx:insert{99, "tuple 99"}
> +box.space.memtx:insert{99, 'tuple 99'}
>   -
>   - [99, 'tuple 99']
> -box.space.vinyl:insert{95, "tuple 95"}
> +box.space.vinyl:insert{95, 'tuple 95'}
>   -
>   - [95, 'tuple 95']
> -box.space.vinyl:insert{96, "tuple 96"}
> +box.space.vinyl:insert{96, 'tuple 96'}
>   -
>   - [96, 'tuple 96']
> -box.space.vinyl:insert{97, "tuple 97"}
> +box.space.vinyl:insert{97, 'tuple 97'}
>   -
>   - [97, 'tuple 97']
> -box.space.vinyl:insert{98, "tuple 98"}
> +box.space.vinyl:insert{98, 'tuple 98'}
>   -
>   - [98, 'tuple 98']
> -box.space.vinyl:insert{99, "tuple 99"}
> +box.space.vinyl:insert{99, 'tuple 99'}
>   -
>   - [99, 'tuple 99']
>   box.space.memtx:select{95}
> @@ -1288,34 +1288,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 5 iteration
> -box.space.memtx:insert{100, "tuple 100"}
> +box.space.memtx:insert{100, 'tuple 100'}
>   -
>   - [100, 'tuple 100']
> -box.space.memtx:insert{101, "tuple 101"}
> +box.space.memtx:insert{101, 'tuple 101'}
>   -
>   - [101, 'tuple 101']
> -box.space.memtx:insert{102, "tuple 102"}
> +box.space.memtx:insert{102, 'tuple 102'}
>   -
>   - [102, 'tuple 102']
> -box.space.memtx:insert{103, "tuple 103"}
> +box.space.memtx:insert{103, 'tuple 103'}
>   -
>   - [103, 'tuple 103']
> -box.space.memtx:insert{104, "tuple 104"}
> +box.space.memtx:insert{104, 'tuple 104'}
>   -
>   - [104, 'tuple 104']
> -box.space.vinyl:insert{100, "tuple 100"}
> +box.space.vinyl:insert{100, 'tuple 100'}
>   -
>   - [100, 'tuple 100']
> -box.space.vinyl:insert{101, "tuple 101"}
> +box.space.vinyl:insert{101, 'tuple 101'}
>   -
>   - [101, 'tuple 101']
> -box.space.vinyl:insert{102, "tuple 102"}
> +box.space.vinyl:insert{102, 'tuple 102'}
>   -
>   - [102, 'tuple 102']
> -box.space.vinyl:insert{103, "tuple 103"}
> +box.space.vinyl:insert{103, 'tuple 103'}
>   -
>   - [103, 'tuple 103']
> -box.space.vinyl:insert{104, "tuple 104"}
> +box.space.vinyl:insert{104, 'tuple 104'}
>   -
>   - [104, 'tuple 104']
>   box.space.memtx:select{100}
> @@ -1348,34 +1348,34 @@ box.space.vinyl:select{103}
>   box.space.vinyl:select{104}
>   -
>   - [104, 'tuple 104']
> -box.space.memtx:insert{105, "tuple 105"}
> +box.space.memtx:insert{105, 'tuple 105'}
>   -
>   - [105, 'tuple 105']
> -box.space.memtx:insert{106, "tuple 106"}
> +box.space.memtx:insert{106, 'tuple 106'}
>   -
>   - [106, 'tuple 106']
> -box.space.memtx:insert{107, "tuple 107"}
> +box.space.memtx:insert{107, 'tuple 107'}
>   -
>   - [107, 'tuple 107']
> -box.space.memtx:insert{108, "tuple 108"}
> +box.space.memtx:insert{108, 'tuple 108'}
>   -
>   - [108, 'tuple 108']
> -box.space.memtx:insert{109, "tuple 109"}
> +box.space.memtx:insert{109, 'tuple 109'}
>   -
>   - [109, 'tuple 109']
> -box.space.vinyl:insert{105, "tuple 105"}
> +box.space.vinyl:insert{105, 'tuple 105'}
>   -
>   - [105, 'tuple 105']
> -box.space.vinyl:insert{106, "tuple 106"}
> +box.space.vinyl:insert{106, 'tuple 106'}
>   -
>   - [106, 'tuple 106']
> -box.space.vinyl:insert{107, "tuple 107"}
> +box.space.vinyl:insert{107, 'tuple 107'}
>   -
>   - [107, 'tuple 107']
> -box.space.vinyl:insert{108, "tuple 108"}
> +box.space.vinyl:insert{108, 'tuple 108'}
>   -
>   - [108, 'tuple 108']
> -box.space.vinyl:insert{109, "tuple 109"}
> +box.space.vinyl:insert{109, 'tuple 109'}
>   -
>   - [109, 'tuple 109']
>   box.space.memtx:select{105}
> @@ -1414,34 +1414,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{110, "tuple 110"}
> +box.space.memtx:insert{110, 'tuple 110'}
>   -
>   - [110, 'tuple 110']
> -box.space.memtx:insert{111, "tuple 111"}
> +box.space.memtx:insert{111, 'tuple 111'}
>   -
>   - [111, 'tuple 111']
> -box.space.memtx:insert{112, "tuple 112"}
> +box.space.memtx:insert{112, 'tuple 112'}
>   -
>   - [112, 'tuple 112']
> -box.space.memtx:insert{113, "tuple 113"}
> +box.space.memtx:insert{113, 'tuple 113'}
>   -
>   - [113, 'tuple 113']
> -box.space.memtx:insert{114, "tuple 114"}
> +box.space.memtx:insert{114, 'tuple 114'}
>   -
>   - [114, 'tuple 114']
> -box.space.vinyl:insert{110, "tuple 110"}
> +box.space.vinyl:insert{110, 'tuple 110'}
>   -
>   - [110, 'tuple 110']
> -box.space.vinyl:insert{111, "tuple 111"}
> +box.space.vinyl:insert{111, 'tuple 111'}
>   -
>   - [111, 'tuple 111']
> -box.space.vinyl:insert{112, "tuple 112"}
> +box.space.vinyl:insert{112, 'tuple 112'}
>   -
>   - [112, 'tuple 112']
> -box.space.vinyl:insert{113, "tuple 113"}
> +box.space.vinyl:insert{113, 'tuple 113'}
>   -
>   - [113, 'tuple 113']
> -box.space.vinyl:insert{114, "tuple 114"}
> +box.space.vinyl:insert{114, 'tuple 114'}
>   -
>   - [114, 'tuple 114']
>   box.space.memtx:select{110}
> @@ -1474,34 +1474,34 @@ box.space.vinyl:select{113}
>   box.space.vinyl:select{114}
>   -
>   - [114, 'tuple 114']
> -box.space.memtx:insert{115, "tuple 115"}
> +box.space.memtx:insert{115, 'tuple 115'}
>   -
>   - [115, 'tuple 115']
> -box.space.memtx:insert{116, "tuple 116"}
> +box.space.memtx:insert{116, 'tuple 116'}
>   -
>   - [116, 'tuple 116']
> -box.space.memtx:insert{117, "tuple 117"}
> +box.space.memtx:insert{117, 'tuple 117'}
>   -
>   - [117, 'tuple 117']
> -box.space.memtx:insert{118, "tuple 118"}
> +box.space.memtx:insert{118, 'tuple 118'}
>   -
>   - [118, 'tuple 118']
> -box.space.memtx:insert{119, "tuple 119"}
> +box.space.memtx:insert{119, 'tuple 119'}
>   -
>   - [119, 'tuple 119']
> -box.space.vinyl:insert{115, "tuple 115"}
> +box.space.vinyl:insert{115, 'tuple 115'}
>   -
>   - [115, 'tuple 115']
> -box.space.vinyl:insert{116, "tuple 116"}
> +box.space.vinyl:insert{116, 'tuple 116'}
>   -
>   - [116, 'tuple 116']
> -box.space.vinyl:insert{117, "tuple 117"}
> +box.space.vinyl:insert{117, 'tuple 117'}
>   -
>   - [117, 'tuple 117']
> -box.space.vinyl:insert{118, "tuple 118"}
> +box.space.vinyl:insert{118, 'tuple 118'}
>   -
>   - [118, 'tuple 118']
> -box.space.vinyl:insert{119, "tuple 119"}
> +box.space.vinyl:insert{119, 'tuple 119'}
>   -
>   - [119, 'tuple 119']
>   box.space.memtx:select{115}
> @@ -1541,34 +1541,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 6 iteration
> -box.space.memtx:insert{120, "tuple 120"}
> +box.space.memtx:insert{120, 'tuple 120'}
>   -
>   - [120, 'tuple 120']
> -box.space.memtx:insert{121, "tuple 121"}
> +box.space.memtx:insert{121, 'tuple 121'}
>   -
>   - [121, 'tuple 121']
> -box.space.memtx:insert{122, "tuple 122"}
> +box.space.memtx:insert{122, 'tuple 122'}
>   -
>   - [122, 'tuple 122']
> -box.space.memtx:insert{123, "tuple 123"}
> +box.space.memtx:insert{123, 'tuple 123'}
>   -
>   - [123, 'tuple 123']
> -box.space.memtx:insert{124, "tuple 124"}
> +box.space.memtx:insert{124, 'tuple 124'}
>   -
>   - [124, 'tuple 124']
> -box.space.vinyl:insert{120, "tuple 120"}
> +box.space.vinyl:insert{120, 'tuple 120'}
>   -
>   - [120, 'tuple 120']
> -box.space.vinyl:insert{121, "tuple 121"}
> +box.space.vinyl:insert{121, 'tuple 121'}
>   -
>   - [121, 'tuple 121']
> -box.space.vinyl:insert{122, "tuple 122"}
> +box.space.vinyl:insert{122, 'tuple 122'}
>   -
>   - [122, 'tuple 122']
> -box.space.vinyl:insert{123, "tuple 123"}
> +box.space.vinyl:insert{123, 'tuple 123'}
>   -
>   - [123, 'tuple 123']
> -box.space.vinyl:insert{124, "tuple 124"}
> +box.space.vinyl:insert{124, 'tuple 124'}
>   -
>   - [124, 'tuple 124']
>   box.space.memtx:select{120}
> @@ -1601,34 +1601,34 @@ box.space.vinyl:select{123}
>   box.space.vinyl:select{124}
>   -
>   - [124, 'tuple 124']
> -box.space.memtx:insert{125, "tuple 125"}
> +box.space.memtx:insert{125, 'tuple 125'}
>   -
>   - [125, 'tuple 125']
> -box.space.memtx:insert{126, "tuple 126"}
> +box.space.memtx:insert{126, 'tuple 126'}
>   -
>   - [126, 'tuple 126']
> -box.space.memtx:insert{127, "tuple 127"}
> +box.space.memtx:insert{127, 'tuple 127'}
>   -
>   - [127, 'tuple 127']
> -box.space.memtx:insert{128, "tuple 128"}
> +box.space.memtx:insert{128, 'tuple 128'}
>   -
>   - [128, 'tuple 128']
> -box.space.memtx:insert{129, "tuple 129"}
> +box.space.memtx:insert{129, 'tuple 129'}
>   -
>   - [129, 'tuple 129']
> -box.space.vinyl:insert{125, "tuple 125"}
> +box.space.vinyl:insert{125, 'tuple 125'}
>   -
>   - [125, 'tuple 125']
> -box.space.vinyl:insert{126, "tuple 126"}
> +box.space.vinyl:insert{126, 'tuple 126'}
>   -
>   - [126, 'tuple 126']
> -box.space.vinyl:insert{127, "tuple 127"}
> +box.space.vinyl:insert{127, 'tuple 127'}
>   -
>   - [127, 'tuple 127']
> -box.space.vinyl:insert{128, "tuple 128"}
> +box.space.vinyl:insert{128, 'tuple 128'}
>   -
>   - [128, 'tuple 128']
> -box.space.vinyl:insert{129, "tuple 129"}
> +box.space.vinyl:insert{129, 'tuple 129'}
>   -
>   - [129, 'tuple 129']
>   box.space.memtx:select{125}
> @@ -1667,34 +1667,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{130, "tuple 130"}
> +box.space.memtx:insert{130, 'tuple 130'}
>   -
>   - [130, 'tuple 130']
> -box.space.memtx:insert{131, "tuple 131"}
> +box.space.memtx:insert{131, 'tuple 131'}
>   -
>   - [131, 'tuple 131']
> -box.space.memtx:insert{132, "tuple 132"}
> +box.space.memtx:insert{132, 'tuple 132'}
>   -
>   - [132, 'tuple 132']
> -box.space.memtx:insert{133, "tuple 133"}
> +box.space.memtx:insert{133, 'tuple 133'}
>   -
>   - [133, 'tuple 133']
> -box.space.memtx:insert{134, "tuple 134"}
> +box.space.memtx:insert{134, 'tuple 134'}
>   -
>   - [134, 'tuple 134']
> -box.space.vinyl:insert{130, "tuple 130"}
> +box.space.vinyl:insert{130, 'tuple 130'}
>   -
>   - [130, 'tuple 130']
> -box.space.vinyl:insert{131, "tuple 131"}
> +box.space.vinyl:insert{131, 'tuple 131'}
>   -
>   - [131, 'tuple 131']
> -box.space.vinyl:insert{132, "tuple 132"}
> +box.space.vinyl:insert{132, 'tuple 132'}
>   -
>   - [132, 'tuple 132']
> -box.space.vinyl:insert{133, "tuple 133"}
> +box.space.vinyl:insert{133, 'tuple 133'}
>   -
>   - [133, 'tuple 133']
> -box.space.vinyl:insert{134, "tuple 134"}
> +box.space.vinyl:insert{134, 'tuple 134'}
>   -
>   - [134, 'tuple 134']
>   box.space.memtx:select{130}
> @@ -1727,34 +1727,34 @@ box.space.vinyl:select{133}
>   box.space.vinyl:select{134}
>   -
>   - [134, 'tuple 134']
> -box.space.memtx:insert{135, "tuple 135"}
> +box.space.memtx:insert{135, 'tuple 135'}
>   -
>   - [135, 'tuple 135']
> -box.space.memtx:insert{136, "tuple 136"}
> +box.space.memtx:insert{136, 'tuple 136'}
>   -
>   - [136, 'tuple 136']
> -box.space.memtx:insert{137, "tuple 137"}
> +box.space.memtx:insert{137, 'tuple 137'}
>   -
>   - [137, 'tuple 137']
> -box.space.memtx:insert{138, "tuple 138"}
> +box.space.memtx:insert{138, 'tuple 138'}
>   -
>   - [138, 'tuple 138']
> -box.space.memtx:insert{139, "tuple 139"}
> +box.space.memtx:insert{139, 'tuple 139'}
>   -
>   - [139, 'tuple 139']
> -box.space.vinyl:insert{135, "tuple 135"}
> +box.space.vinyl:insert{135, 'tuple 135'}
>   -
>   - [135, 'tuple 135']
> -box.space.vinyl:insert{136, "tuple 136"}
> +box.space.vinyl:insert{136, 'tuple 136'}
>   -
>   - [136, 'tuple 136']
> -box.space.vinyl:insert{137, "tuple 137"}
> +box.space.vinyl:insert{137, 'tuple 137'}
>   -
>   - [137, 'tuple 137']
> -box.space.vinyl:insert{138, "tuple 138"}
> +box.space.vinyl:insert{138, 'tuple 138'}
>   -
>   - [138, 'tuple 138']
> -box.space.vinyl:insert{139, "tuple 139"}
> +box.space.vinyl:insert{139, 'tuple 139'}
>   -
>   - [139, 'tuple 139']
>   box.space.memtx:select{135}
> @@ -1794,34 +1794,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 7 iteration
> -box.space.memtx:insert{140, "tuple 140"}
> +box.space.memtx:insert{140, 'tuple 140'}
>   -
>   - [140, 'tuple 140']
> -box.space.memtx:insert{141, "tuple 141"}
> +box.space.memtx:insert{141, 'tuple 141'}
>   -
>   - [141, 'tuple 141']
> -box.space.memtx:insert{142, "tuple 142"}
> +box.space.memtx:insert{142, 'tuple 142'}
>   -
>   - [142, 'tuple 142']
> -box.space.memtx:insert{143, "tuple 143"}
> +box.space.memtx:insert{143, 'tuple 143'}
>   -
>   - [143, 'tuple 143']
> -box.space.memtx:insert{144, "tuple 144"}
> +box.space.memtx:insert{144, 'tuple 144'}
>   -
>   - [144, 'tuple 144']
> -box.space.vinyl:insert{140, "tuple 140"}
> +box.space.vinyl:insert{140, 'tuple 140'}
>   -
>   - [140, 'tuple 140']
> -box.space.vinyl:insert{141, "tuple 141"}
> +box.space.vinyl:insert{141, 'tuple 141'}
>   -
>   - [141, 'tuple 141']
> -box.space.vinyl:insert{142, "tuple 142"}
> +box.space.vinyl:insert{142, 'tuple 142'}
>   -
>   - [142, 'tuple 142']
> -box.space.vinyl:insert{143, "tuple 143"}
> +box.space.vinyl:insert{143, 'tuple 143'}
>   -
>   - [143, 'tuple 143']
> -box.space.vinyl:insert{144, "tuple 144"}
> +box.space.vinyl:insert{144, 'tuple 144'}
>   -
>   - [144, 'tuple 144']
>   box.space.memtx:select{140}
> @@ -1854,34 +1854,34 @@ box.space.vinyl:select{143}
>   box.space.vinyl:select{144}
>   -
>   - [144, 'tuple 144']
> -box.space.memtx:insert{145, "tuple 145"}
> +box.space.memtx:insert{145, 'tuple 145'}
>   -
>   - [145, 'tuple 145']
> -box.space.memtx:insert{146, "tuple 146"}
> +box.space.memtx:insert{146, 'tuple 146'}
>   -
>   - [146, 'tuple 146']
> -box.space.memtx:insert{147, "tuple 147"}
> +box.space.memtx:insert{147, 'tuple 147'}
>   -
>   - [147, 'tuple 147']
> -box.space.memtx:insert{148, "tuple 148"}
> +box.space.memtx:insert{148, 'tuple 148'}
>   -
>   - [148, 'tuple 148']
> -box.space.memtx:insert{149, "tuple 149"}
> +box.space.memtx:insert{149, 'tuple 149'}
>   -
>   - [149, 'tuple 149']
> -box.space.vinyl:insert{145, "tuple 145"}
> +box.space.vinyl:insert{145, 'tuple 145'}
>   -
>   - [145, 'tuple 145']
> -box.space.vinyl:insert{146, "tuple 146"}
> +box.space.vinyl:insert{146, 'tuple 146'}
>   -
>   - [146, 'tuple 146']
> -box.space.vinyl:insert{147, "tuple 147"}
> +box.space.vinyl:insert{147, 'tuple 147'}
>   -
>   - [147, 'tuple 147']
> -box.space.vinyl:insert{148, "tuple 148"}
> +box.space.vinyl:insert{148, 'tuple 148'}
>   -
>   - [148, 'tuple 148']
> -box.space.vinyl:insert{149, "tuple 149"}
> +box.space.vinyl:insert{149, 'tuple 149'}
>   -
>   - [149, 'tuple 149']
>   box.space.memtx:select{145}
> @@ -1920,34 +1920,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{150, "tuple 150"}
> +box.space.memtx:insert{150, 'tuple 150'}
>   -
>   - [150, 'tuple 150']
> -box.space.memtx:insert{151, "tuple 151"}
> +box.space.memtx:insert{151, 'tuple 151'}
>   -
>   - [151, 'tuple 151']
> -box.space.memtx:insert{152, "tuple 152"}
> +box.space.memtx:insert{152, 'tuple 152'}
>   -
>   - [152, 'tuple 152']
> -box.space.memtx:insert{153, "tuple 153"}
> +box.space.memtx:insert{153, 'tuple 153'}
>   -
>   - [153, 'tuple 153']
> -box.space.memtx:insert{154, "tuple 154"}
> +box.space.memtx:insert{154, 'tuple 154'}
>   -
>   - [154, 'tuple 154']
> -box.space.vinyl:insert{150, "tuple 150"}
> +box.space.vinyl:insert{150, 'tuple 150'}
>   -
>   - [150, 'tuple 150']
> -box.space.vinyl:insert{151, "tuple 151"}
> +box.space.vinyl:insert{151, 'tuple 151'}
>   -
>   - [151, 'tuple 151']
> -box.space.vinyl:insert{152, "tuple 152"}
> +box.space.vinyl:insert{152, 'tuple 152'}
>   -
>   - [152, 'tuple 152']
> -box.space.vinyl:insert{153, "tuple 153"}
> +box.space.vinyl:insert{153, 'tuple 153'}
>   -
>   - [153, 'tuple 153']
> -box.space.vinyl:insert{154, "tuple 154"}
> +box.space.vinyl:insert{154, 'tuple 154'}
>   -
>   - [154, 'tuple 154']
>   box.space.memtx:select{150}
> @@ -1980,34 +1980,34 @@ box.space.vinyl:select{153}
>   box.space.vinyl:select{154}
>   -
>   - [154, 'tuple 154']
> -box.space.memtx:insert{155, "tuple 155"}
> +box.space.memtx:insert{155, 'tuple 155'}
>   -
>   - [155, 'tuple 155']
> -box.space.memtx:insert{156, "tuple 156"}
> +box.space.memtx:insert{156, 'tuple 156'}
>   -
>   - [156, 'tuple 156']
> -box.space.memtx:insert{157, "tuple 157"}
> +box.space.memtx:insert{157, 'tuple 157'}
>   -
>   - [157, 'tuple 157']
> -box.space.memtx:insert{158, "tuple 158"}
> +box.space.memtx:insert{158, 'tuple 158'}
>   -
>   - [158, 'tuple 158']
> -box.space.memtx:insert{159, "tuple 159"}
> +box.space.memtx:insert{159, 'tuple 159'}
>   -
>   - [159, 'tuple 159']
> -box.space.vinyl:insert{155, "tuple 155"}
> +box.space.vinyl:insert{155, 'tuple 155'}
>   -
>   - [155, 'tuple 155']
> -box.space.vinyl:insert{156, "tuple 156"}
> +box.space.vinyl:insert{156, 'tuple 156'}
>   -
>   - [156, 'tuple 156']
> -box.space.vinyl:insert{157, "tuple 157"}
> +box.space.vinyl:insert{157, 'tuple 157'}
>   -
>   - [157, 'tuple 157']
> -box.space.vinyl:insert{158, "tuple 158"}
> +box.space.vinyl:insert{158, 'tuple 158'}
>   -
>   - [158, 'tuple 158']
> -box.space.vinyl:insert{159, "tuple 159"}
> +box.space.vinyl:insert{159, 'tuple 159'}
>   -
>   - [159, 'tuple 159']
>   box.space.memtx:select{155}
> @@ -2047,34 +2047,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 8 iteration
> -box.space.memtx:insert{160, "tuple 160"}
> +box.space.memtx:insert{160, 'tuple 160'}
>   -
>   - [160, 'tuple 160']
> -box.space.memtx:insert{161, "tuple 161"}
> +box.space.memtx:insert{161, 'tuple 161'}
>   -
>   - [161, 'tuple 161']
> -box.space.memtx:insert{162, "tuple 162"}
> +box.space.memtx:insert{162, 'tuple 162'}
>   -
>   - [162, 'tuple 162']
> -box.space.memtx:insert{163, "tuple 163"}
> +box.space.memtx:insert{163, 'tuple 163'}
>   -
>   - [163, 'tuple 163']
> -box.space.memtx:insert{164, "tuple 164"}
> +box.space.memtx:insert{164, 'tuple 164'}
>   -
>   - [164, 'tuple 164']
> -box.space.vinyl:insert{160, "tuple 160"}
> +box.space.vinyl:insert{160, 'tuple 160'}
>   -
>   - [160, 'tuple 160']
> -box.space.vinyl:insert{161, "tuple 161"}
> +box.space.vinyl:insert{161, 'tuple 161'}
>   -
>   - [161, 'tuple 161']
> -box.space.vinyl:insert{162, "tuple 162"}
> +box.space.vinyl:insert{162, 'tuple 162'}
>   -
>   - [162, 'tuple 162']
> -box.space.vinyl:insert{163, "tuple 163"}
> +box.space.vinyl:insert{163, 'tuple 163'}
>   -
>   - [163, 'tuple 163']
> -box.space.vinyl:insert{164, "tuple 164"}
> +box.space.vinyl:insert{164, 'tuple 164'}
>   -
>   - [164, 'tuple 164']
>   box.space.memtx:select{160}
> @@ -2107,34 +2107,34 @@ box.space.vinyl:select{163}
>   box.space.vinyl:select{164}
>   -
>   - [164, 'tuple 164']
> -box.space.memtx:insert{165, "tuple 165"}
> +box.space.memtx:insert{165, 'tuple 165'}
>   -
>   - [165, 'tuple 165']
> -box.space.memtx:insert{166, "tuple 166"}
> +box.space.memtx:insert{166, 'tuple 166'}
>   -
>   - [166, 'tuple 166']
> -box.space.memtx:insert{167, "tuple 167"}
> +box.space.memtx:insert{167, 'tuple 167'}
>   -
>   - [167, 'tuple 167']
> -box.space.memtx:insert{168, "tuple 168"}
> +box.space.memtx:insert{168, 'tuple 168'}
>   -
>   - [168, 'tuple 168']
> -box.space.memtx:insert{169, "tuple 169"}
> +box.space.memtx:insert{169, 'tuple 169'}
>   -
>   - [169, 'tuple 169']
> -box.space.vinyl:insert{165, "tuple 165"}
> +box.space.vinyl:insert{165, 'tuple 165'}
>   -
>   - [165, 'tuple 165']
> -box.space.vinyl:insert{166, "tuple 166"}
> +box.space.vinyl:insert{166, 'tuple 166'}
>   -
>   - [166, 'tuple 166']
> -box.space.vinyl:insert{167, "tuple 167"}
> +box.space.vinyl:insert{167, 'tuple 167'}
>   -
>   - [167, 'tuple 167']
> -box.space.vinyl:insert{168, "tuple 168"}
> +box.space.vinyl:insert{168, 'tuple 168'}
>   -
>   - [168, 'tuple 168']
> -box.space.vinyl:insert{169, "tuple 169"}
> +box.space.vinyl:insert{169, 'tuple 169'}
>   -
>   - [169, 'tuple 169']
>   box.space.memtx:select{165}
> @@ -2173,34 +2173,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{170, "tuple 170"}
> +box.space.memtx:insert{170, 'tuple 170'}
>   -
>   - [170, 'tuple 170']
> -box.space.memtx:insert{171, "tuple 171"}
> +box.space.memtx:insert{171, 'tuple 171'}
>   -
>   - [171, 'tuple 171']
> -box.space.memtx:insert{172, "tuple 172"}
> +box.space.memtx:insert{172, 'tuple 172'}
>   -
>   - [172, 'tuple 172']
> -box.space.memtx:insert{173, "tuple 173"}
> +box.space.memtx:insert{173, 'tuple 173'}
>   -
>   - [173, 'tuple 173']
> -box.space.memtx:insert{174, "tuple 174"}
> +box.space.memtx:insert{174, 'tuple 174'}
>   -
>   - [174, 'tuple 174']
> -box.space.vinyl:insert{170, "tuple 170"}
> +box.space.vinyl:insert{170, 'tuple 170'}
>   -
>   - [170, 'tuple 170']
> -box.space.vinyl:insert{171, "tuple 171"}
> +box.space.vinyl:insert{171, 'tuple 171'}
>   -
>   - [171, 'tuple 171']
> -box.space.vinyl:insert{172, "tuple 172"}
> +box.space.vinyl:insert{172, 'tuple 172'}
>   -
>   - [172, 'tuple 172']
> -box.space.vinyl:insert{173, "tuple 173"}
> +box.space.vinyl:insert{173, 'tuple 173'}
>   -
>   - [173, 'tuple 173']
> -box.space.vinyl:insert{174, "tuple 174"}
> +box.space.vinyl:insert{174, 'tuple 174'}
>   -
>   - [174, 'tuple 174']
>   box.space.memtx:select{170}
> @@ -2233,34 +2233,34 @@ box.space.vinyl:select{173}
>   box.space.vinyl:select{174}
>   -
>   - [174, 'tuple 174']
> -box.space.memtx:insert{175, "tuple 175"}
> +box.space.memtx:insert{175, 'tuple 175'}
>   -
>   - [175, 'tuple 175']
> -box.space.memtx:insert{176, "tuple 176"}
> +box.space.memtx:insert{176, 'tuple 176'}
>   -
>   - [176, 'tuple 176']
> -box.space.memtx:insert{177, "tuple 177"}
> +box.space.memtx:insert{177, 'tuple 177'}
>   -
>   - [177, 'tuple 177']
> -box.space.memtx:insert{178, "tuple 178"}
> +box.space.memtx:insert{178, 'tuple 178'}
>   -
>   - [178, 'tuple 178']
> -box.space.memtx:insert{179, "tuple 179"}
> +box.space.memtx:insert{179, 'tuple 179'}
>   -
>   - [179, 'tuple 179']
> -box.space.vinyl:insert{175, "tuple 175"}
> +box.space.vinyl:insert{175, 'tuple 175'}
>   -
>   - [175, 'tuple 175']
> -box.space.vinyl:insert{176, "tuple 176"}
> +box.space.vinyl:insert{176, 'tuple 176'}
>   -
>   - [176, 'tuple 176']
> -box.space.vinyl:insert{177, "tuple 177"}
> +box.space.vinyl:insert{177, 'tuple 177'}
>   -
>   - [177, 'tuple 177']
> -box.space.vinyl:insert{178, "tuple 178"}
> +box.space.vinyl:insert{178, 'tuple 178'}
>   -
>   - [178, 'tuple 178']
> -box.space.vinyl:insert{179, "tuple 179"}
> +box.space.vinyl:insert{179, 'tuple 179'}
>   -
>   - [179, 'tuple 179']
>   box.space.memtx:select{175}
> @@ -2300,34 +2300,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 9 iteration
> -box.space.memtx:insert{180, "tuple 180"}
> +box.space.memtx:insert{180, 'tuple 180'}
>   -
>   - [180, 'tuple 180']
> -box.space.memtx:insert{181, "tuple 181"}
> +box.space.memtx:insert{181, 'tuple 181'}
>   -
>   - [181, 'tuple 181']
> -box.space.memtx:insert{182, "tuple 182"}
> +box.space.memtx:insert{182, 'tuple 182'}
>   -
>   - [182, 'tuple 182']
> -box.space.memtx:insert{183, "tuple 183"}
> +box.space.memtx:insert{183, 'tuple 183'}
>   -
>   - [183, 'tuple 183']
> -box.space.memtx:insert{184, "tuple 184"}
> +box.space.memtx:insert{184, 'tuple 184'}
>   -
>   - [184, 'tuple 184']
> -box.space.vinyl:insert{180, "tuple 180"}
> +box.space.vinyl:insert{180, 'tuple 180'}
>   -
>   - [180, 'tuple 180']
> -box.space.vinyl:insert{181, "tuple 181"}
> +box.space.vinyl:insert{181, 'tuple 181'}
>   -
>   - [181, 'tuple 181']
> -box.space.vinyl:insert{182, "tuple 182"}
> +box.space.vinyl:insert{182, 'tuple 182'}
>   -
>   - [182, 'tuple 182']
> -box.space.vinyl:insert{183, "tuple 183"}
> +box.space.vinyl:insert{183, 'tuple 183'}
>   -
>   - [183, 'tuple 183']
> -box.space.vinyl:insert{184, "tuple 184"}
> +box.space.vinyl:insert{184, 'tuple 184'}
>   -
>   - [184, 'tuple 184']
>   box.space.memtx:select{180}
> @@ -2360,34 +2360,34 @@ box.space.vinyl:select{183}
>   box.space.vinyl:select{184}
>   -
>   - [184, 'tuple 184']
> -box.space.memtx:insert{185, "tuple 185"}
> +box.space.memtx:insert{185, 'tuple 185'}
>   -
>   - [185, 'tuple 185']
> -box.space.memtx:insert{186, "tuple 186"}
> +box.space.memtx:insert{186, 'tuple 186'}
>   -
>   - [186, 'tuple 186']
> -box.space.memtx:insert{187, "tuple 187"}
> +box.space.memtx:insert{187, 'tuple 187'}
>   -
>   - [187, 'tuple 187']
> -box.space.memtx:insert{188, "tuple 188"}
> +box.space.memtx:insert{188, 'tuple 188'}
>   -
>   - [188, 'tuple 188']
> -box.space.memtx:insert{189, "tuple 189"}
> +box.space.memtx:insert{189, 'tuple 189'}
>   -
>   - [189, 'tuple 189']
> -box.space.vinyl:insert{185, "tuple 185"}
> +box.space.vinyl:insert{185, 'tuple 185'}
>   -
>   - [185, 'tuple 185']
> -box.space.vinyl:insert{186, "tuple 186"}
> +box.space.vinyl:insert{186, 'tuple 186'}
>   -
>   - [186, 'tuple 186']
> -box.space.vinyl:insert{187, "tuple 187"}
> +box.space.vinyl:insert{187, 'tuple 187'}
>   -
>   - [187, 'tuple 187']
> -box.space.vinyl:insert{188, "tuple 188"}
> +box.space.vinyl:insert{188, 'tuple 188'}
>   -
>   - [188, 'tuple 188']
> -box.space.vinyl:insert{189, "tuple 189"}
> +box.space.vinyl:insert{189, 'tuple 189'}
>   -
>   - [189, 'tuple 189']
>   box.space.memtx:select{185}
> @@ -2426,34 +2426,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{190, "tuple 190"}
> +box.space.memtx:insert{190, 'tuple 190'}
>   -
>   - [190, 'tuple 190']
> -box.space.memtx:insert{191, "tuple 191"}
> +box.space.memtx:insert{191, 'tuple 191'}
>   -
>   - [191, 'tuple 191']
> -box.space.memtx:insert{192, "tuple 192"}
> +box.space.memtx:insert{192, 'tuple 192'}
>   -
>   - [192, 'tuple 192']
> -box.space.memtx:insert{193, "tuple 193"}
> +box.space.memtx:insert{193, 'tuple 193'}
>   -
>   - [193, 'tuple 193']
> -box.space.memtx:insert{194, "tuple 194"}
> +box.space.memtx:insert{194, 'tuple 194'}
>   -
>   - [194, 'tuple 194']
> -box.space.vinyl:insert{190, "tuple 190"}
> +box.space.vinyl:insert{190, 'tuple 190'}
>   -
>   - [190, 'tuple 190']
> -box.space.vinyl:insert{191, "tuple 191"}
> +box.space.vinyl:insert{191, 'tuple 191'}
>   -
>   - [191, 'tuple 191']
> -box.space.vinyl:insert{192, "tuple 192"}
> +box.space.vinyl:insert{192, 'tuple 192'}
>   -
>   - [192, 'tuple 192']
> -box.space.vinyl:insert{193, "tuple 193"}
> +box.space.vinyl:insert{193, 'tuple 193'}
>   -
>   - [193, 'tuple 193']
> -box.space.vinyl:insert{194, "tuple 194"}
> +box.space.vinyl:insert{194, 'tuple 194'}
>   -
>   - [194, 'tuple 194']
>   box.space.memtx:select{190}
> @@ -2486,34 +2486,34 @@ box.space.vinyl:select{193}
>   box.space.vinyl:select{194}
>   -
>   - [194, 'tuple 194']
> -box.space.memtx:insert{195, "tuple 195"}
> +box.space.memtx:insert{195, 'tuple 195'}
>   -
>   - [195, 'tuple 195']
> -box.space.memtx:insert{196, "tuple 196"}
> +box.space.memtx:insert{196, 'tuple 196'}
>   -
>   - [196, 'tuple 196']
> -box.space.memtx:insert{197, "tuple 197"}
> +box.space.memtx:insert{197, 'tuple 197'}
>   -
>   - [197, 'tuple 197']
> -box.space.memtx:insert{198, "tuple 198"}
> +box.space.memtx:insert{198, 'tuple 198'}
>   -
>   - [198, 'tuple 198']
> -box.space.memtx:insert{199, "tuple 199"}
> +box.space.memtx:insert{199, 'tuple 199'}
>   -
>   - [199, 'tuple 199']
> -box.space.vinyl:insert{195, "tuple 195"}
> +box.space.vinyl:insert{195, 'tuple 195'}
>   -
>   - [195, 'tuple 195']
> -box.space.vinyl:insert{196, "tuple 196"}
> +box.space.vinyl:insert{196, 'tuple 196'}
>   -
>   - [196, 'tuple 196']
> -box.space.vinyl:insert{197, "tuple 197"}
> +box.space.vinyl:insert{197, 'tuple 197'}
>   -
>   - [197, 'tuple 197']
> -box.space.vinyl:insert{198, "tuple 198"}
> +box.space.vinyl:insert{198, 'tuple 198'}
>   -
>   - [198, 'tuple 198']
> -box.space.vinyl:insert{199, "tuple 199"}
> +box.space.vinyl:insert{199, 'tuple 199'}
>   -
>   - [199, 'tuple 199']
>   box.space.memtx:select{195}
> @@ -2553,34 +2553,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 10 iteration
> -box.space.memtx:insert{200, "tuple 200"}
> +box.space.memtx:insert{200, 'tuple 200'}
>   -
>   - [200, 'tuple 200']
> -box.space.memtx:insert{201, "tuple 201"}
> +box.space.memtx:insert{201, 'tuple 201'}
>   -
>   - [201, 'tuple 201']
> -box.space.memtx:insert{202, "tuple 202"}
> +box.space.memtx:insert{202, 'tuple 202'}
>   -
>   - [202, 'tuple 202']
> -box.space.memtx:insert{203, "tuple 203"}
> +box.space.memtx:insert{203, 'tuple 203'}
>   -
>   - [203, 'tuple 203']
> -box.space.memtx:insert{204, "tuple 204"}
> +box.space.memtx:insert{204, 'tuple 204'}
>   -
>   - [204, 'tuple 204']
> -box.space.vinyl:insert{200, "tuple 200"}
> +box.space.vinyl:insert{200, 'tuple 200'}
>   -
>   - [200, 'tuple 200']
> -box.space.vinyl:insert{201, "tuple 201"}
> +box.space.vinyl:insert{201, 'tuple 201'}
>   -
>   - [201, 'tuple 201']
> -box.space.vinyl:insert{202, "tuple 202"}
> +box.space.vinyl:insert{202, 'tuple 202'}
>   -
>   - [202, 'tuple 202']
> -box.space.vinyl:insert{203, "tuple 203"}
> +box.space.vinyl:insert{203, 'tuple 203'}
>   -
>   - [203, 'tuple 203']
> -box.space.vinyl:insert{204, "tuple 204"}
> +box.space.vinyl:insert{204, 'tuple 204'}
>   -
>   - [204, 'tuple 204']
>   box.space.memtx:select{200}
> @@ -2613,34 +2613,34 @@ box.space.vinyl:select{203}
>   box.space.vinyl:select{204}
>   -
>   - [204, 'tuple 204']
> -box.space.memtx:insert{205, "tuple 205"}
> +box.space.memtx:insert{205, 'tuple 205'}
>   -
>   - [205, 'tuple 205']
> -box.space.memtx:insert{206, "tuple 206"}
> +box.space.memtx:insert{206, 'tuple 206'}
>   -
>   - [206, 'tuple 206']
> -box.space.memtx:insert{207, "tuple 207"}
> +box.space.memtx:insert{207, 'tuple 207'}
>   -
>   - [207, 'tuple 207']
> -box.space.memtx:insert{208, "tuple 208"}
> +box.space.memtx:insert{208, 'tuple 208'}
>   -
>   - [208, 'tuple 208']
> -box.space.memtx:insert{209, "tuple 209"}
> +box.space.memtx:insert{209, 'tuple 209'}
>   -
>   - [209, 'tuple 209']
> -box.space.vinyl:insert{205, "tuple 205"}
> +box.space.vinyl:insert{205, 'tuple 205'}
>   -
>   - [205, 'tuple 205']
> -box.space.vinyl:insert{206, "tuple 206"}
> +box.space.vinyl:insert{206, 'tuple 206'}
>   -
>   - [206, 'tuple 206']
> -box.space.vinyl:insert{207, "tuple 207"}
> +box.space.vinyl:insert{207, 'tuple 207'}
>   -
>   - [207, 'tuple 207']
> -box.space.vinyl:insert{208, "tuple 208"}
> +box.space.vinyl:insert{208, 'tuple 208'}
>   -
>   - [208, 'tuple 208']
> -box.space.vinyl:insert{209, "tuple 209"}
> +box.space.vinyl:insert{209, 'tuple 209'}
>   -
>   - [209, 'tuple 209']
>   box.space.memtx:select{205}
> @@ -2679,34 +2679,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{210, "tuple 210"}
> +box.space.memtx:insert{210, 'tuple 210'}
>   -
>   - [210, 'tuple 210']
> -box.space.memtx:insert{211, "tuple 211"}
> +box.space.memtx:insert{211, 'tuple 211'}
>   -
>   - [211, 'tuple 211']
> -box.space.memtx:insert{212, "tuple 212"}
> +box.space.memtx:insert{212, 'tuple 212'}
>   -
>   - [212, 'tuple 212']
> -box.space.memtx:insert{213, "tuple 213"}
> +box.space.memtx:insert{213, 'tuple 213'}
>   -
>   - [213, 'tuple 213']
> -box.space.memtx:insert{214, "tuple 214"}
> +box.space.memtx:insert{214, 'tuple 214'}
>   -
>   - [214, 'tuple 214']
> -box.space.vinyl:insert{210, "tuple 210"}
> +box.space.vinyl:insert{210, 'tuple 210'}
>   -
>   - [210, 'tuple 210']
> -box.space.vinyl:insert{211, "tuple 211"}
> +box.space.vinyl:insert{211, 'tuple 211'}
>   -
>   - [211, 'tuple 211']
> -box.space.vinyl:insert{212, "tuple 212"}
> +box.space.vinyl:insert{212, 'tuple 212'}
>   -
>   - [212, 'tuple 212']
> -box.space.vinyl:insert{213, "tuple 213"}
> +box.space.vinyl:insert{213, 'tuple 213'}
>   -
>   - [213, 'tuple 213']
> -box.space.vinyl:insert{214, "tuple 214"}
> +box.space.vinyl:insert{214, 'tuple 214'}
>   -
>   - [214, 'tuple 214']
>   box.space.memtx:select{210}
> @@ -2739,34 +2739,34 @@ box.space.vinyl:select{213}
>   box.space.vinyl:select{214}
>   -
>   - [214, 'tuple 214']
> -box.space.memtx:insert{215, "tuple 215"}
> +box.space.memtx:insert{215, 'tuple 215'}
>   -
>   - [215, 'tuple 215']
> -box.space.memtx:insert{216, "tuple 216"}
> +box.space.memtx:insert{216, 'tuple 216'}
>   -
>   - [216, 'tuple 216']
> -box.space.memtx:insert{217, "tuple 217"}
> +box.space.memtx:insert{217, 'tuple 217'}
>   -
>   - [217, 'tuple 217']
> -box.space.memtx:insert{218, "tuple 218"}
> +box.space.memtx:insert{218, 'tuple 218'}
>   -
>   - [218, 'tuple 218']
> -box.space.memtx:insert{219, "tuple 219"}
> +box.space.memtx:insert{219, 'tuple 219'}
>   -
>   - [219, 'tuple 219']
> -box.space.vinyl:insert{215, "tuple 215"}
> +box.space.vinyl:insert{215, 'tuple 215'}
>   -
>   - [215, 'tuple 215']
> -box.space.vinyl:insert{216, "tuple 216"}
> +box.space.vinyl:insert{216, 'tuple 216'}
>   -
>   - [216, 'tuple 216']
> -box.space.vinyl:insert{217, "tuple 217"}
> +box.space.vinyl:insert{217, 'tuple 217'}
>   -
>   - [217, 'tuple 217']
> -box.space.vinyl:insert{218, "tuple 218"}
> +box.space.vinyl:insert{218, 'tuple 218'}
>   -
>   - [218, 'tuple 218']
> -box.space.vinyl:insert{219, "tuple 219"}
> +box.space.vinyl:insert{219, 'tuple 219'}
>   -
>   - [219, 'tuple 219']
>   box.space.memtx:select{215}
> @@ -2806,34 +2806,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 11 iteration
> -box.space.memtx:insert{220, "tuple 220"}
> +box.space.memtx:insert{220, 'tuple 220'}
>   -
>   - [220, 'tuple 220']
> -box.space.memtx:insert{221, "tuple 221"}
> +box.space.memtx:insert{221, 'tuple 221'}
>   -
>   - [221, 'tuple 221']
> -box.space.memtx:insert{222, "tuple 222"}
> +box.space.memtx:insert{222, 'tuple 222'}
>   -
>   - [222, 'tuple 222']
> -box.space.memtx:insert{223, "tuple 223"}
> +box.space.memtx:insert{223, 'tuple 223'}
>   -
>   - [223, 'tuple 223']
> -box.space.memtx:insert{224, "tuple 224"}
> +box.space.memtx:insert{224, 'tuple 224'}
>   -
>   - [224, 'tuple 224']
> -box.space.vinyl:insert{220, "tuple 220"}
> +box.space.vinyl:insert{220, 'tuple 220'}
>   -
>   - [220, 'tuple 220']
> -box.space.vinyl:insert{221, "tuple 221"}
> +box.space.vinyl:insert{221, 'tuple 221'}
>   -
>   - [221, 'tuple 221']
> -box.space.vinyl:insert{222, "tuple 222"}
> +box.space.vinyl:insert{222, 'tuple 222'}
>   -
>   - [222, 'tuple 222']
> -box.space.vinyl:insert{223, "tuple 223"}
> +box.space.vinyl:insert{223, 'tuple 223'}
>   -
>   - [223, 'tuple 223']
> -box.space.vinyl:insert{224, "tuple 224"}
> +box.space.vinyl:insert{224, 'tuple 224'}
>   -
>   - [224, 'tuple 224']
>   box.space.memtx:select{220}
> @@ -2866,34 +2866,34 @@ box.space.vinyl:select{223}
>   box.space.vinyl:select{224}
>   -
>   - [224, 'tuple 224']
> -box.space.memtx:insert{225, "tuple 225"}
> +box.space.memtx:insert{225, 'tuple 225'}
>   -
>   - [225, 'tuple 225']
> -box.space.memtx:insert{226, "tuple 226"}
> +box.space.memtx:insert{226, 'tuple 226'}
>   -
>   - [226, 'tuple 226']
> -box.space.memtx:insert{227, "tuple 227"}
> +box.space.memtx:insert{227, 'tuple 227'}
>   -
>   - [227, 'tuple 227']
> -box.space.memtx:insert{228, "tuple 228"}
> +box.space.memtx:insert{228, 'tuple 228'}
>   -
>   - [228, 'tuple 228']
> -box.space.memtx:insert{229, "tuple 229"}
> +box.space.memtx:insert{229, 'tuple 229'}
>   -
>   - [229, 'tuple 229']
> -box.space.vinyl:insert{225, "tuple 225"}
> +box.space.vinyl:insert{225, 'tuple 225'}
>   -
>   - [225, 'tuple 225']
> -box.space.vinyl:insert{226, "tuple 226"}
> +box.space.vinyl:insert{226, 'tuple 226'}
>   -
>   - [226, 'tuple 226']
> -box.space.vinyl:insert{227, "tuple 227"}
> +box.space.vinyl:insert{227, 'tuple 227'}
>   -
>   - [227, 'tuple 227']
> -box.space.vinyl:insert{228, "tuple 228"}
> +box.space.vinyl:insert{228, 'tuple 228'}
>   -
>   - [228, 'tuple 228']
> -box.space.vinyl:insert{229, "tuple 229"}
> +box.space.vinyl:insert{229, 'tuple 229'}
>   -
>   - [229, 'tuple 229']
>   box.space.memtx:select{225}
> @@ -2932,34 +2932,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{230, "tuple 230"}
> +box.space.memtx:insert{230, 'tuple 230'}
>   -
>   - [230, 'tuple 230']
> -box.space.memtx:insert{231, "tuple 231"}
> +box.space.memtx:insert{231, 'tuple 231'}
>   -
>   - [231, 'tuple 231']
> -box.space.memtx:insert{232, "tuple 232"}
> +box.space.memtx:insert{232, 'tuple 232'}
>   -
>   - [232, 'tuple 232']
> -box.space.memtx:insert{233, "tuple 233"}
> +box.space.memtx:insert{233, 'tuple 233'}
>   -
>   - [233, 'tuple 233']
> -box.space.memtx:insert{234, "tuple 234"}
> +box.space.memtx:insert{234, 'tuple 234'}
>   -
>   - [234, 'tuple 234']
> -box.space.vinyl:insert{230, "tuple 230"}
> +box.space.vinyl:insert{230, 'tuple 230'}
>   -
>   - [230, 'tuple 230']
> -box.space.vinyl:insert{231, "tuple 231"}
> +box.space.vinyl:insert{231, 'tuple 231'}
>   -
>   - [231, 'tuple 231']
> -box.space.vinyl:insert{232, "tuple 232"}
> +box.space.vinyl:insert{232, 'tuple 232'}
>   -
>   - [232, 'tuple 232']
> -box.space.vinyl:insert{233, "tuple 233"}
> +box.space.vinyl:insert{233, 'tuple 233'}
>   -
>   - [233, 'tuple 233']
> -box.space.vinyl:insert{234, "tuple 234"}
> +box.space.vinyl:insert{234, 'tuple 234'}
>   -
>   - [234, 'tuple 234']
>   box.space.memtx:select{230}
> @@ -2992,34 +2992,34 @@ box.space.vinyl:select{233}
>   box.space.vinyl:select{234}
>   -
>   - [234, 'tuple 234']
> -box.space.memtx:insert{235, "tuple 235"}
> +box.space.memtx:insert{235, 'tuple 235'}
>   -
>   - [235, 'tuple 235']
> -box.space.memtx:insert{236, "tuple 236"}
> +box.space.memtx:insert{236, 'tuple 236'}
>   -
>   - [236, 'tuple 236']
> -box.space.memtx:insert{237, "tuple 237"}
> +box.space.memtx:insert{237, 'tuple 237'}
>   -
>   - [237, 'tuple 237']
> -box.space.memtx:insert{238, "tuple 238"}
> +box.space.memtx:insert{238, 'tuple 238'}
>   -
>   - [238, 'tuple 238']
> -box.space.memtx:insert{239, "tuple 239"}
> +box.space.memtx:insert{239, 'tuple 239'}
>   -
>   - [239, 'tuple 239']
> -box.space.vinyl:insert{235, "tuple 235"}
> +box.space.vinyl:insert{235, 'tuple 235'}
>   -
>   - [235, 'tuple 235']
> -box.space.vinyl:insert{236, "tuple 236"}
> +box.space.vinyl:insert{236, 'tuple 236'}
>   -
>   - [236, 'tuple 236']
> -box.space.vinyl:insert{237, "tuple 237"}
> +box.space.vinyl:insert{237, 'tuple 237'}
>   -
>   - [237, 'tuple 237']
> -box.space.vinyl:insert{238, "tuple 238"}
> +box.space.vinyl:insert{238, 'tuple 238'}
>   -
>   - [238, 'tuple 238']
> -box.space.vinyl:insert{239, "tuple 239"}
> +box.space.vinyl:insert{239, 'tuple 239'}
>   -
>   - [239, 'tuple 239']
>   box.space.memtx:select{235}
> @@ -3059,34 +3059,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 12 iteration
> -box.space.memtx:insert{240, "tuple 240"}
> +box.space.memtx:insert{240, 'tuple 240'}
>   -
>   - [240, 'tuple 240']
> -box.space.memtx:insert{241, "tuple 241"}
> +box.space.memtx:insert{241, 'tuple 241'}
>   -
>   - [241, 'tuple 241']
> -box.space.memtx:insert{242, "tuple 242"}
> +box.space.memtx:insert{242, 'tuple 242'}
>   -
>   - [242, 'tuple 242']
> -box.space.memtx:insert{243, "tuple 243"}
> +box.space.memtx:insert{243, 'tuple 243'}
>   -
>   - [243, 'tuple 243']
> -box.space.memtx:insert{244, "tuple 244"}
> +box.space.memtx:insert{244, 'tuple 244'}
>   -
>   - [244, 'tuple 244']
> -box.space.vinyl:insert{240, "tuple 240"}
> +box.space.vinyl:insert{240, 'tuple 240'}
>   -
>   - [240, 'tuple 240']
> -box.space.vinyl:insert{241, "tuple 241"}
> +box.space.vinyl:insert{241, 'tuple 241'}
>   -
>   - [241, 'tuple 241']
> -box.space.vinyl:insert{242, "tuple 242"}
> +box.space.vinyl:insert{242, 'tuple 242'}
>   -
>   - [242, 'tuple 242']
> -box.space.vinyl:insert{243, "tuple 243"}
> +box.space.vinyl:insert{243, 'tuple 243'}
>   -
>   - [243, 'tuple 243']
> -box.space.vinyl:insert{244, "tuple 244"}
> +box.space.vinyl:insert{244, 'tuple 244'}
>   -
>   - [244, 'tuple 244']
>   box.space.memtx:select{240}
> @@ -3119,34 +3119,34 @@ box.space.vinyl:select{243}
>   box.space.vinyl:select{244}
>   -
>   - [244, 'tuple 244']
> -box.space.memtx:insert{245, "tuple 245"}
> +box.space.memtx:insert{245, 'tuple 245'}
>   -
>   - [245, 'tuple 245']
> -box.space.memtx:insert{246, "tuple 246"}
> +box.space.memtx:insert{246, 'tuple 246'}
>   -
>   - [246, 'tuple 246']
> -box.space.memtx:insert{247, "tuple 247"}
> +box.space.memtx:insert{247, 'tuple 247'}
>   -
>   - [247, 'tuple 247']
> -box.space.memtx:insert{248, "tuple 248"}
> +box.space.memtx:insert{248, 'tuple 248'}
>   -
>   - [248, 'tuple 248']
> -box.space.memtx:insert{249, "tuple 249"}
> +box.space.memtx:insert{249, 'tuple 249'}
>   -
>   - [249, 'tuple 249']
> -box.space.vinyl:insert{245, "tuple 245"}
> +box.space.vinyl:insert{245, 'tuple 245'}
>   -
>   - [245, 'tuple 245']
> -box.space.vinyl:insert{246, "tuple 246"}
> +box.space.vinyl:insert{246, 'tuple 246'}
>   -
>   - [246, 'tuple 246']
> -box.space.vinyl:insert{247, "tuple 247"}
> +box.space.vinyl:insert{247, 'tuple 247'}
>   -
>   - [247, 'tuple 247']
> -box.space.vinyl:insert{248, "tuple 248"}
> +box.space.vinyl:insert{248, 'tuple 248'}
>   -
>   - [248, 'tuple 248']
> -box.space.vinyl:insert{249, "tuple 249"}
> +box.space.vinyl:insert{249, 'tuple 249'}
>   -
>   - [249, 'tuple 249']
>   box.space.memtx:select{245}
> @@ -3185,34 +3185,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{250, "tuple 250"}
> +box.space.memtx:insert{250, 'tuple 250'}
>   -
>   - [250, 'tuple 250']
> -box.space.memtx:insert{251, "tuple 251"}
> +box.space.memtx:insert{251, 'tuple 251'}
>   -
>   - [251, 'tuple 251']
> -box.space.memtx:insert{252, "tuple 252"}
> +box.space.memtx:insert{252, 'tuple 252'}
>   -
>   - [252, 'tuple 252']
> -box.space.memtx:insert{253, "tuple 253"}
> +box.space.memtx:insert{253, 'tuple 253'}
>   -
>   - [253, 'tuple 253']
> -box.space.memtx:insert{254, "tuple 254"}
> +box.space.memtx:insert{254, 'tuple 254'}
>   -
>   - [254, 'tuple 254']
> -box.space.vinyl:insert{250, "tuple 250"}
> +box.space.vinyl:insert{250, 'tuple 250'}
>   -
>   - [250, 'tuple 250']
> -box.space.vinyl:insert{251, "tuple 251"}
> +box.space.vinyl:insert{251, 'tuple 251'}
>   -
>   - [251, 'tuple 251']
> -box.space.vinyl:insert{252, "tuple 252"}
> +box.space.vinyl:insert{252, 'tuple 252'}
>   -
>   - [252, 'tuple 252']
> -box.space.vinyl:insert{253, "tuple 253"}
> +box.space.vinyl:insert{253, 'tuple 253'}
>   -
>   - [253, 'tuple 253']
> -box.space.vinyl:insert{254, "tuple 254"}
> +box.space.vinyl:insert{254, 'tuple 254'}
>   -
>   - [254, 'tuple 254']
>   box.space.memtx:select{250}
> @@ -3245,34 +3245,34 @@ box.space.vinyl:select{253}
>   box.space.vinyl:select{254}
>   -
>   - [254, 'tuple 254']
> -box.space.memtx:insert{255, "tuple 255"}
> +box.space.memtx:insert{255, 'tuple 255'}
>   -
>   - [255, 'tuple 255']
> -box.space.memtx:insert{256, "tuple 256"}
> +box.space.memtx:insert{256, 'tuple 256'}
>   -
>   - [256, 'tuple 256']
> -box.space.memtx:insert{257, "tuple 257"}
> +box.space.memtx:insert{257, 'tuple 257'}
>   -
>   - [257, 'tuple 257']
> -box.space.memtx:insert{258, "tuple 258"}
> +box.space.memtx:insert{258, 'tuple 258'}
>   -
>   - [258, 'tuple 258']
> -box.space.memtx:insert{259, "tuple 259"}
> +box.space.memtx:insert{259, 'tuple 259'}
>   -
>   - [259, 'tuple 259']
> -box.space.vinyl:insert{255, "tuple 255"}
> +box.space.vinyl:insert{255, 'tuple 255'}
>   -
>   - [255, 'tuple 255']
> -box.space.vinyl:insert{256, "tuple 256"}
> +box.space.vinyl:insert{256, 'tuple 256'}
>   -
>   - [256, 'tuple 256']
> -box.space.vinyl:insert{257, "tuple 257"}
> +box.space.vinyl:insert{257, 'tuple 257'}
>   -
>   - [257, 'tuple 257']
> -box.space.vinyl:insert{258, "tuple 258"}
> +box.space.vinyl:insert{258, 'tuple 258'}
>   -
>   - [258, 'tuple 258']
> -box.space.vinyl:insert{259, "tuple 259"}
> +box.space.vinyl:insert{259, 'tuple 259'}
>   -
>   - [259, 'tuple 259']
>   box.space.memtx:select{255}
> @@ -3312,34 +3312,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 13 iteration
> -box.space.memtx:insert{260, "tuple 260"}
> +box.space.memtx:insert{260, 'tuple 260'}
>   -
>   - [260, 'tuple 260']
> -box.space.memtx:insert{261, "tuple 261"}
> +box.space.memtx:insert{261, 'tuple 261'}
>   -
>   - [261, 'tuple 261']
> -box.space.memtx:insert{262, "tuple 262"}
> +box.space.memtx:insert{262, 'tuple 262'}
>   -
>   - [262, 'tuple 262']
> -box.space.memtx:insert{263, "tuple 263"}
> +box.space.memtx:insert{263, 'tuple 263'}
>   -
>   - [263, 'tuple 263']
> -box.space.memtx:insert{264, "tuple 264"}
> +box.space.memtx:insert{264, 'tuple 264'}
>   -
>   - [264, 'tuple 264']
> -box.space.vinyl:insert{260, "tuple 260"}
> +box.space.vinyl:insert{260, 'tuple 260'}
>   -
>   - [260, 'tuple 260']
> -box.space.vinyl:insert{261, "tuple 261"}
> +box.space.vinyl:insert{261, 'tuple 261'}
>   -
>   - [261, 'tuple 261']
> -box.space.vinyl:insert{262, "tuple 262"}
> +box.space.vinyl:insert{262, 'tuple 262'}
>   -
>   - [262, 'tuple 262']
> -box.space.vinyl:insert{263, "tuple 263"}
> +box.space.vinyl:insert{263, 'tuple 263'}
>   -
>   - [263, 'tuple 263']
> -box.space.vinyl:insert{264, "tuple 264"}
> +box.space.vinyl:insert{264, 'tuple 264'}
>   -
>   - [264, 'tuple 264']
>   box.space.memtx:select{260}
> @@ -3372,34 +3372,34 @@ box.space.vinyl:select{263}
>   box.space.vinyl:select{264}
>   -
>   - [264, 'tuple 264']
> -box.space.memtx:insert{265, "tuple 265"}
> +box.space.memtx:insert{265, 'tuple 265'}
>   -
>   - [265, 'tuple 265']
> -box.space.memtx:insert{266, "tuple 266"}
> +box.space.memtx:insert{266, 'tuple 266'}
>   -
>   - [266, 'tuple 266']
> -box.space.memtx:insert{267, "tuple 267"}
> +box.space.memtx:insert{267, 'tuple 267'}
>   -
>   - [267, 'tuple 267']
> -box.space.memtx:insert{268, "tuple 268"}
> +box.space.memtx:insert{268, 'tuple 268'}
>   -
>   - [268, 'tuple 268']
> -box.space.memtx:insert{269, "tuple 269"}
> +box.space.memtx:insert{269, 'tuple 269'}
>   -
>   - [269, 'tuple 269']
> -box.space.vinyl:insert{265, "tuple 265"}
> +box.space.vinyl:insert{265, 'tuple 265'}
>   -
>   - [265, 'tuple 265']
> -box.space.vinyl:insert{266, "tuple 266"}
> +box.space.vinyl:insert{266, 'tuple 266'}
>   -
>   - [266, 'tuple 266']
> -box.space.vinyl:insert{267, "tuple 267"}
> +box.space.vinyl:insert{267, 'tuple 267'}
>   -
>   - [267, 'tuple 267']
> -box.space.vinyl:insert{268, "tuple 268"}
> +box.space.vinyl:insert{268, 'tuple 268'}
>   -
>   - [268, 'tuple 268']
> -box.space.vinyl:insert{269, "tuple 269"}
> +box.space.vinyl:insert{269, 'tuple 269'}
>   -
>   - [269, 'tuple 269']
>   box.space.memtx:select{265}
> @@ -3438,34 +3438,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{270, "tuple 270"}
> +box.space.memtx:insert{270, 'tuple 270'}
>   -
>   - [270, 'tuple 270']
> -box.space.memtx:insert{271, "tuple 271"}
> +box.space.memtx:insert{271, 'tuple 271'}
>   -
>   - [271, 'tuple 271']
> -box.space.memtx:insert{272, "tuple 272"}
> +box.space.memtx:insert{272, 'tuple 272'}
>   -
>   - [272, 'tuple 272']
> -box.space.memtx:insert{273, "tuple 273"}
> +box.space.memtx:insert{273, 'tuple 273'}
>   -
>   - [273, 'tuple 273']
> -box.space.memtx:insert{274, "tuple 274"}
> +box.space.memtx:insert{274, 'tuple 274'}
>   -
>   - [274, 'tuple 274']
> -box.space.vinyl:insert{270, "tuple 270"}
> +box.space.vinyl:insert{270, 'tuple 270'}
>   -
>   - [270, 'tuple 270']
> -box.space.vinyl:insert{271, "tuple 271"}
> +box.space.vinyl:insert{271, 'tuple 271'}
>   -
>   - [271, 'tuple 271']
> -box.space.vinyl:insert{272, "tuple 272"}
> +box.space.vinyl:insert{272, 'tuple 272'}
>   -
>   - [272, 'tuple 272']
> -box.space.vinyl:insert{273, "tuple 273"}
> +box.space.vinyl:insert{273, 'tuple 273'}
>   -
>   - [273, 'tuple 273']
> -box.space.vinyl:insert{274, "tuple 274"}
> +box.space.vinyl:insert{274, 'tuple 274'}
>   -
>   - [274, 'tuple 274']
>   box.space.memtx:select{270}
> @@ -3498,34 +3498,34 @@ box.space.vinyl:select{273}
>   box.space.vinyl:select{274}
>   -
>   - [274, 'tuple 274']
> -box.space.memtx:insert{275, "tuple 275"}
> +box.space.memtx:insert{275, 'tuple 275'}
>   -
>   - [275, 'tuple 275']
> -box.space.memtx:insert{276, "tuple 276"}
> +box.space.memtx:insert{276, 'tuple 276'}
>   -
>   - [276, 'tuple 276']
> -box.space.memtx:insert{277, "tuple 277"}
> +box.space.memtx:insert{277, 'tuple 277'}
>   -
>   - [277, 'tuple 277']
> -box.space.memtx:insert{278, "tuple 278"}
> +box.space.memtx:insert{278, 'tuple 278'}
>   -
>   - [278, 'tuple 278']
> -box.space.memtx:insert{279, "tuple 279"}
> +box.space.memtx:insert{279, 'tuple 279'}
>   -
>   - [279, 'tuple 279']
> -box.space.vinyl:insert{275, "tuple 275"}
> +box.space.vinyl:insert{275, 'tuple 275'}
>   -
>   - [275, 'tuple 275']
> -box.space.vinyl:insert{276, "tuple 276"}
> +box.space.vinyl:insert{276, 'tuple 276'}
>   -
>   - [276, 'tuple 276']
> -box.space.vinyl:insert{277, "tuple 277"}
> +box.space.vinyl:insert{277, 'tuple 277'}
>   -
>   - [277, 'tuple 277']
> -box.space.vinyl:insert{278, "tuple 278"}
> +box.space.vinyl:insert{278, 'tuple 278'}
>   -
>   - [278, 'tuple 278']
> -box.space.vinyl:insert{279, "tuple 279"}
> +box.space.vinyl:insert{279, 'tuple 279'}
>   -
>   - [279, 'tuple 279']
>   box.space.memtx:select{275}
> @@ -3565,34 +3565,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 14 iteration
> -box.space.memtx:insert{280, "tuple 280"}
> +box.space.memtx:insert{280, 'tuple 280'}
>   -
>   - [280, 'tuple 280']
> -box.space.memtx:insert{281, "tuple 281"}
> +box.space.memtx:insert{281, 'tuple 281'}
>   -
>   - [281, 'tuple 281']
> -box.space.memtx:insert{282, "tuple 282"}
> +box.space.memtx:insert{282, 'tuple 282'}
>   -
>   - [282, 'tuple 282']
> -box.space.memtx:insert{283, "tuple 283"}
> +box.space.memtx:insert{283, 'tuple 283'}
>   -
>   - [283, 'tuple 283']
> -box.space.memtx:insert{284, "tuple 284"}
> +box.space.memtx:insert{284, 'tuple 284'}
>   -
>   - [284, 'tuple 284']
> -box.space.vinyl:insert{280, "tuple 280"}
> +box.space.vinyl:insert{280, 'tuple 280'}
>   -
>   - [280, 'tuple 280']
> -box.space.vinyl:insert{281, "tuple 281"}
> +box.space.vinyl:insert{281, 'tuple 281'}
>   -
>   - [281, 'tuple 281']
> -box.space.vinyl:insert{282, "tuple 282"}
> +box.space.vinyl:insert{282, 'tuple 282'}
>   -
>   - [282, 'tuple 282']
> -box.space.vinyl:insert{283, "tuple 283"}
> +box.space.vinyl:insert{283, 'tuple 283'}
>   -
>   - [283, 'tuple 283']
> -box.space.vinyl:insert{284, "tuple 284"}
> +box.space.vinyl:insert{284, 'tuple 284'}
>   -
>   - [284, 'tuple 284']
>   box.space.memtx:select{280}
> @@ -3625,34 +3625,34 @@ box.space.vinyl:select{283}
>   box.space.vinyl:select{284}
>   -
>   - [284, 'tuple 284']
> -box.space.memtx:insert{285, "tuple 285"}
> +box.space.memtx:insert{285, 'tuple 285'}
>   -
>   - [285, 'tuple 285']
> -box.space.memtx:insert{286, "tuple 286"}
> +box.space.memtx:insert{286, 'tuple 286'}
>   -
>   - [286, 'tuple 286']
> -box.space.memtx:insert{287, "tuple 287"}
> +box.space.memtx:insert{287, 'tuple 287'}
>   -
>   - [287, 'tuple 287']
> -box.space.memtx:insert{288, "tuple 288"}
> +box.space.memtx:insert{288, 'tuple 288'}
>   -
>   - [288, 'tuple 288']
> -box.space.memtx:insert{289, "tuple 289"}
> +box.space.memtx:insert{289, 'tuple 289'}
>   -
>   - [289, 'tuple 289']
> -box.space.vinyl:insert{285, "tuple 285"}
> +box.space.vinyl:insert{285, 'tuple 285'}
>   -
>   - [285, 'tuple 285']
> -box.space.vinyl:insert{286, "tuple 286"}
> +box.space.vinyl:insert{286, 'tuple 286'}
>   -
>   - [286, 'tuple 286']
> -box.space.vinyl:insert{287, "tuple 287"}
> +box.space.vinyl:insert{287, 'tuple 287'}
>   -
>   - [287, 'tuple 287']
> -box.space.vinyl:insert{288, "tuple 288"}
> +box.space.vinyl:insert{288, 'tuple 288'}
>   -
>   - [288, 'tuple 288']
> -box.space.vinyl:insert{289, "tuple 289"}
> +box.space.vinyl:insert{289, 'tuple 289'}
>   -
>   - [289, 'tuple 289']
>   box.space.memtx:select{285}
> @@ -3691,34 +3691,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{290, "tuple 290"}
> +box.space.memtx:insert{290, 'tuple 290'}
>   -
>   - [290, 'tuple 290']
> -box.space.memtx:insert{291, "tuple 291"}
> +box.space.memtx:insert{291, 'tuple 291'}
>   -
>   - [291, 'tuple 291']
> -box.space.memtx:insert{292, "tuple 292"}
> +box.space.memtx:insert{292, 'tuple 292'}
>   -
>   - [292, 'tuple 292']
> -box.space.memtx:insert{293, "tuple 293"}
> +box.space.memtx:insert{293, 'tuple 293'}
>   -
>   - [293, 'tuple 293']
> -box.space.memtx:insert{294, "tuple 294"}
> +box.space.memtx:insert{294, 'tuple 294'}
>   -
>   - [294, 'tuple 294']
> -box.space.vinyl:insert{290, "tuple 290"}
> +box.space.vinyl:insert{290, 'tuple 290'}
>   -
>   - [290, 'tuple 290']
> -box.space.vinyl:insert{291, "tuple 291"}
> +box.space.vinyl:insert{291, 'tuple 291'}
>   -
>   - [291, 'tuple 291']
> -box.space.vinyl:insert{292, "tuple 292"}
> +box.space.vinyl:insert{292, 'tuple 292'}
>   -
>   - [292, 'tuple 292']
> -box.space.vinyl:insert{293, "tuple 293"}
> +box.space.vinyl:insert{293, 'tuple 293'}
>   -
>   - [293, 'tuple 293']
> -box.space.vinyl:insert{294, "tuple 294"}
> +box.space.vinyl:insert{294, 'tuple 294'}
>   -
>   - [294, 'tuple 294']
>   box.space.memtx:select{290}
> @@ -3751,34 +3751,34 @@ box.space.vinyl:select{293}
>   box.space.vinyl:select{294}
>   -
>   - [294, 'tuple 294']
> -box.space.memtx:insert{295, "tuple 295"}
> +box.space.memtx:insert{295, 'tuple 295'}
>   -
>   - [295, 'tuple 295']
> -box.space.memtx:insert{296, "tuple 296"}
> +box.space.memtx:insert{296, 'tuple 296'}
>   -
>   - [296, 'tuple 296']
> -box.space.memtx:insert{297, "tuple 297"}
> +box.space.memtx:insert{297, 'tuple 297'}
>   -
>   - [297, 'tuple 297']
> -box.space.memtx:insert{298, "tuple 298"}
> +box.space.memtx:insert{298, 'tuple 298'}
>   -
>   - [298, 'tuple 298']
> -box.space.memtx:insert{299, "tuple 299"}
> +box.space.memtx:insert{299, 'tuple 299'}
>   -
>   - [299, 'tuple 299']
> -box.space.vinyl:insert{295, "tuple 295"}
> +box.space.vinyl:insert{295, 'tuple 295'}
>   -
>   - [295, 'tuple 295']
> -box.space.vinyl:insert{296, "tuple 296"}
> +box.space.vinyl:insert{296, 'tuple 296'}
>   -
>   - [296, 'tuple 296']
> -box.space.vinyl:insert{297, "tuple 297"}
> +box.space.vinyl:insert{297, 'tuple 297'}
>   -
>   - [297, 'tuple 297']
> -box.space.vinyl:insert{298, "tuple 298"}
> +box.space.vinyl:insert{298, 'tuple 298'}
>   -
>   - [298, 'tuple 298']
> -box.space.vinyl:insert{299, "tuple 299"}
> +box.space.vinyl:insert{299, 'tuple 299'}
>   -
>   - [299, 'tuple 299']
>   box.space.memtx:select{295}
> @@ -3818,34 +3818,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 15 iteration
> -box.space.memtx:insert{300, "tuple 300"}
> +box.space.memtx:insert{300, 'tuple 300'}
>   -
>   - [300, 'tuple 300']
> -box.space.memtx:insert{301, "tuple 301"}
> +box.space.memtx:insert{301, 'tuple 301'}
>   -
>   - [301, 'tuple 301']
> -box.space.memtx:insert{302, "tuple 302"}
> +box.space.memtx:insert{302, 'tuple 302'}
>   -
>   - [302, 'tuple 302']
> -box.space.memtx:insert{303, "tuple 303"}
> +box.space.memtx:insert{303, 'tuple 303'}
>   -
>   - [303, 'tuple 303']
> -box.space.memtx:insert{304, "tuple 304"}
> +box.space.memtx:insert{304, 'tuple 304'}
>   -
>   - [304, 'tuple 304']
> -box.space.vinyl:insert{300, "tuple 300"}
> +box.space.vinyl:insert{300, 'tuple 300'}
>   -
>   - [300, 'tuple 300']
> -box.space.vinyl:insert{301, "tuple 301"}
> +box.space.vinyl:insert{301, 'tuple 301'}
>   -
>   - [301, 'tuple 301']
> -box.space.vinyl:insert{302, "tuple 302"}
> +box.space.vinyl:insert{302, 'tuple 302'}
>   -
>   - [302, 'tuple 302']
> -box.space.vinyl:insert{303, "tuple 303"}
> +box.space.vinyl:insert{303, 'tuple 303'}
>   -
>   - [303, 'tuple 303']
> -box.space.vinyl:insert{304, "tuple 304"}
> +box.space.vinyl:insert{304, 'tuple 304'}
>   -
>   - [304, 'tuple 304']
>   box.space.memtx:select{300}
> @@ -3878,34 +3878,34 @@ box.space.vinyl:select{303}
>   box.space.vinyl:select{304}
>   -
>   - [304, 'tuple 304']
> -box.space.memtx:insert{305, "tuple 305"}
> +box.space.memtx:insert{305, 'tuple 305'}
>   -
>   - [305, 'tuple 305']
> -box.space.memtx:insert{306, "tuple 306"}
> +box.space.memtx:insert{306, 'tuple 306'}
>   -
>   - [306, 'tuple 306']
> -box.space.memtx:insert{307, "tuple 307"}
> +box.space.memtx:insert{307, 'tuple 307'}
>   -
>   - [307, 'tuple 307']
> -box.space.memtx:insert{308, "tuple 308"}
> +box.space.memtx:insert{308, 'tuple 308'}
>   -
>   - [308, 'tuple 308']
> -box.space.memtx:insert{309, "tuple 309"}
> +box.space.memtx:insert{309, 'tuple 309'}
>   -
>   - [309, 'tuple 309']
> -box.space.vinyl:insert{305, "tuple 305"}
> +box.space.vinyl:insert{305, 'tuple 305'}
>   -
>   - [305, 'tuple 305']
> -box.space.vinyl:insert{306, "tuple 306"}
> +box.space.vinyl:insert{306, 'tuple 306'}
>   -
>   - [306, 'tuple 306']
> -box.space.vinyl:insert{307, "tuple 307"}
> +box.space.vinyl:insert{307, 'tuple 307'}
>   -
>   - [307, 'tuple 307']
> -box.space.vinyl:insert{308, "tuple 308"}
> +box.space.vinyl:insert{308, 'tuple 308'}
>   -
>   - [308, 'tuple 308']
> -box.space.vinyl:insert{309, "tuple 309"}
> +box.space.vinyl:insert{309, 'tuple 309'}
>   -
>   - [309, 'tuple 309']
>   box.space.memtx:select{305}
> @@ -3944,34 +3944,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{310, "tuple 310"}
> +box.space.memtx:insert{310, 'tuple 310'}
>   -
>   - [310, 'tuple 310']
> -box.space.memtx:insert{311, "tuple 311"}
> +box.space.memtx:insert{311, 'tuple 311'}
>   -
>   - [311, 'tuple 311']
> -box.space.memtx:insert{312, "tuple 312"}
> +box.space.memtx:insert{312, 'tuple 312'}
>   -
>   - [312, 'tuple 312']
> -box.space.memtx:insert{313, "tuple 313"}
> +box.space.memtx:insert{313, 'tuple 313'}
>   -
>   - [313, 'tuple 313']
> -box.space.memtx:insert{314, "tuple 314"}
> +box.space.memtx:insert{314, 'tuple 314'}
>   -
>   - [314, 'tuple 314']
> -box.space.vinyl:insert{310, "tuple 310"}
> +box.space.vinyl:insert{310, 'tuple 310'}
>   -
>   - [310, 'tuple 310']
> -box.space.vinyl:insert{311, "tuple 311"}
> +box.space.vinyl:insert{311, 'tuple 311'}
>   -
>   - [311, 'tuple 311']
> -box.space.vinyl:insert{312, "tuple 312"}
> +box.space.vinyl:insert{312, 'tuple 312'}
>   -
>   - [312, 'tuple 312']
> -box.space.vinyl:insert{313, "tuple 313"}
> +box.space.vinyl:insert{313, 'tuple 313'}
>   -
>   - [313, 'tuple 313']
> -box.space.vinyl:insert{314, "tuple 314"}
> +box.space.vinyl:insert{314, 'tuple 314'}
>   -
>   - [314, 'tuple 314']
>   box.space.memtx:select{310}
> @@ -4004,34 +4004,34 @@ box.space.vinyl:select{313}
>   box.space.vinyl:select{314}
>   -
>   - [314, 'tuple 314']
> -box.space.memtx:insert{315, "tuple 315"}
> +box.space.memtx:insert{315, 'tuple 315'}
>   -
>   - [315, 'tuple 315']
> -box.space.memtx:insert{316, "tuple 316"}
> +box.space.memtx:insert{316, 'tuple 316'}
>   -
>   - [316, 'tuple 316']
> -box.space.memtx:insert{317, "tuple 317"}
> +box.space.memtx:insert{317, 'tuple 317'}
>   -
>   - [317, 'tuple 317']
> -box.space.memtx:insert{318, "tuple 318"}
> +box.space.memtx:insert{318, 'tuple 318'}
>   -
>   - [318, 'tuple 318']
> -box.space.memtx:insert{319, "tuple 319"}
> +box.space.memtx:insert{319, 'tuple 319'}
>   -
>   - [319, 'tuple 319']
> -box.space.vinyl:insert{315, "tuple 315"}
> +box.space.vinyl:insert{315, 'tuple 315'}
>   -
>   - [315, 'tuple 315']
> -box.space.vinyl:insert{316, "tuple 316"}
> +box.space.vinyl:insert{316, 'tuple 316'}
>   -
>   - [316, 'tuple 316']
> -box.space.vinyl:insert{317, "tuple 317"}
> +box.space.vinyl:insert{317, 'tuple 317'}
>   -
>   - [317, 'tuple 317']
> -box.space.vinyl:insert{318, "tuple 318"}
> +box.space.vinyl:insert{318, 'tuple 318'}
>   -
>   - [318, 'tuple 318']
> -box.space.vinyl:insert{319, "tuple 319"}
> +box.space.vinyl:insert{319, 'tuple 319'}
>   -
>   - [319, 'tuple 319']
>   box.space.memtx:select{315}
> @@ -4071,34 +4071,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 16 iteration
> -box.space.memtx:insert{320, "tuple 320"}
> +box.space.memtx:insert{320, 'tuple 320'}
>   -
>   - [320, 'tuple 320']
> -box.space.memtx:insert{321, "tuple 321"}
> +box.space.memtx:insert{321, 'tuple 321'}
>   -
>   - [321, 'tuple 321']
> -box.space.memtx:insert{322, "tuple 322"}
> +box.space.memtx:insert{322, 'tuple 322'}
>   -
>   - [322, 'tuple 322']
> -box.space.memtx:insert{323, "tuple 323"}
> +box.space.memtx:insert{323, 'tuple 323'}
>   -
>   - [323, 'tuple 323']
> -box.space.memtx:insert{324, "tuple 324"}
> +box.space.memtx:insert{324, 'tuple 324'}
>   -
>   - [324, 'tuple 324']
> -box.space.vinyl:insert{320, "tuple 320"}
> +box.space.vinyl:insert{320, 'tuple 320'}
>   -
>   - [320, 'tuple 320']
> -box.space.vinyl:insert{321, "tuple 321"}
> +box.space.vinyl:insert{321, 'tuple 321'}
>   -
>   - [321, 'tuple 321']
> -box.space.vinyl:insert{322, "tuple 322"}
> +box.space.vinyl:insert{322, 'tuple 322'}
>   -
>   - [322, 'tuple 322']
> -box.space.vinyl:insert{323, "tuple 323"}
> +box.space.vinyl:insert{323, 'tuple 323'}
>   -
>   - [323, 'tuple 323']
> -box.space.vinyl:insert{324, "tuple 324"}
> +box.space.vinyl:insert{324, 'tuple 324'}
>   -
>   - [324, 'tuple 324']
>   box.space.memtx:select{320}
> @@ -4131,34 +4131,34 @@ box.space.vinyl:select{323}
>   box.space.vinyl:select{324}
>   -
>   - [324, 'tuple 324']
> -box.space.memtx:insert{325, "tuple 325"}
> +box.space.memtx:insert{325, 'tuple 325'}
>   -
>   - [325, 'tuple 325']
> -box.space.memtx:insert{326, "tuple 326"}
> +box.space.memtx:insert{326, 'tuple 326'}
>   -
>   - [326, 'tuple 326']
> -box.space.memtx:insert{327, "tuple 327"}
> +box.space.memtx:insert{327, 'tuple 327'}
>   -
>   - [327, 'tuple 327']
> -box.space.memtx:insert{328, "tuple 328"}
> +box.space.memtx:insert{328, 'tuple 328'}
>   -
>   - [328, 'tuple 328']
> -box.space.memtx:insert{329, "tuple 329"}
> +box.space.memtx:insert{329, 'tuple 329'}
>   -
>   - [329, 'tuple 329']
> -box.space.vinyl:insert{325, "tuple 325"}
> +box.space.vinyl:insert{325, 'tuple 325'}
>   -
>   - [325, 'tuple 325']
> -box.space.vinyl:insert{326, "tuple 326"}
> +box.space.vinyl:insert{326, 'tuple 326'}
>   -
>   - [326, 'tuple 326']
> -box.space.vinyl:insert{327, "tuple 327"}
> +box.space.vinyl:insert{327, 'tuple 327'}
>   -
>   - [327, 'tuple 327']
> -box.space.vinyl:insert{328, "tuple 328"}
> +box.space.vinyl:insert{328, 'tuple 328'}
>   -
>   - [328, 'tuple 328']
> -box.space.vinyl:insert{329, "tuple 329"}
> +box.space.vinyl:insert{329, 'tuple 329'}
>   -
>   - [329, 'tuple 329']
>   box.space.memtx:select{325}
> @@ -4197,34 +4197,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{330, "tuple 330"}
> +box.space.memtx:insert{330, 'tuple 330'}
>   -
>   - [330, 'tuple 330']
> -box.space.memtx:insert{331, "tuple 331"}
> +box.space.memtx:insert{331, 'tuple 331'}
>   -
>   - [331, 'tuple 331']
> -box.space.memtx:insert{332, "tuple 332"}
> +box.space.memtx:insert{332, 'tuple 332'}
>   -
>   - [332, 'tuple 332']
> -box.space.memtx:insert{333, "tuple 333"}
> +box.space.memtx:insert{333, 'tuple 333'}
>   -
>   - [333, 'tuple 333']
> -box.space.memtx:insert{334, "tuple 334"}
> +box.space.memtx:insert{334, 'tuple 334'}
>   -
>   - [334, 'tuple 334']
> -box.space.vinyl:insert{330, "tuple 330"}
> +box.space.vinyl:insert{330, 'tuple 330'}
>   -
>   - [330, 'tuple 330']
> -box.space.vinyl:insert{331, "tuple 331"}
> +box.space.vinyl:insert{331, 'tuple 331'}
>   -
>   - [331, 'tuple 331']
> -box.space.vinyl:insert{332, "tuple 332"}
> +box.space.vinyl:insert{332, 'tuple 332'}
>   -
>   - [332, 'tuple 332']
> -box.space.vinyl:insert{333, "tuple 333"}
> +box.space.vinyl:insert{333, 'tuple 333'}
>   -
>   - [333, 'tuple 333']
> -box.space.vinyl:insert{334, "tuple 334"}
> +box.space.vinyl:insert{334, 'tuple 334'}
>   -
>   - [334, 'tuple 334']
>   box.space.memtx:select{330}
> @@ -4257,34 +4257,34 @@ box.space.vinyl:select{333}
>   box.space.vinyl:select{334}
>   -
>   - [334, 'tuple 334']
> -box.space.memtx:insert{335, "tuple 335"}
> +box.space.memtx:insert{335, 'tuple 335'}
>   -
>   - [335, 'tuple 335']
> -box.space.memtx:insert{336, "tuple 336"}
> +box.space.memtx:insert{336, 'tuple 336'}
>   -
>   - [336, 'tuple 336']
> -box.space.memtx:insert{337, "tuple 337"}
> +box.space.memtx:insert{337, 'tuple 337'}
>   -
>   - [337, 'tuple 337']
> -box.space.memtx:insert{338, "tuple 338"}
> +box.space.memtx:insert{338, 'tuple 338'}
>   -
>   - [338, 'tuple 338']
> -box.space.memtx:insert{339, "tuple 339"}
> +box.space.memtx:insert{339, 'tuple 339'}
>   -
>   - [339, 'tuple 339']
> -box.space.vinyl:insert{335, "tuple 335"}
> +box.space.vinyl:insert{335, 'tuple 335'}
>   -
>   - [335, 'tuple 335']
> -box.space.vinyl:insert{336, "tuple 336"}
> +box.space.vinyl:insert{336, 'tuple 336'}
>   -
>   - [336, 'tuple 336']
> -box.space.vinyl:insert{337, "tuple 337"}
> +box.space.vinyl:insert{337, 'tuple 337'}
>   -
>   - [337, 'tuple 337']
> -box.space.vinyl:insert{338, "tuple 338"}
> +box.space.vinyl:insert{338, 'tuple 338'}
>   -
>   - [338, 'tuple 338']
> -box.space.vinyl:insert{339, "tuple 339"}
> +box.space.vinyl:insert{339, 'tuple 339'}
>   -
>   - [339, 'tuple 339']
>   box.space.memtx:select{335}
> @@ -4324,34 +4324,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 17 iteration
> -box.space.memtx:insert{340, "tuple 340"}
> +box.space.memtx:insert{340, 'tuple 340'}
>   -
>   - [340, 'tuple 340']
> -box.space.memtx:insert{341, "tuple 341"}
> +box.space.memtx:insert{341, 'tuple 341'}
>   -
>   - [341, 'tuple 341']
> -box.space.memtx:insert{342, "tuple 342"}
> +box.space.memtx:insert{342, 'tuple 342'}
>   -
>   - [342, 'tuple 342']
> -box.space.memtx:insert{343, "tuple 343"}
> +box.space.memtx:insert{343, 'tuple 343'}
>   -
>   - [343, 'tuple 343']
> -box.space.memtx:insert{344, "tuple 344"}
> +box.space.memtx:insert{344, 'tuple 344'}
>   -
>   - [344, 'tuple 344']
> -box.space.vinyl:insert{340, "tuple 340"}
> +box.space.vinyl:insert{340, 'tuple 340'}
>   -
>   - [340, 'tuple 340']
> -box.space.vinyl:insert{341, "tuple 341"}
> +box.space.vinyl:insert{341, 'tuple 341'}
>   -
>   - [341, 'tuple 341']
> -box.space.vinyl:insert{342, "tuple 342"}
> +box.space.vinyl:insert{342, 'tuple 342'}
>   -
>   - [342, 'tuple 342']
> -box.space.vinyl:insert{343, "tuple 343"}
> +box.space.vinyl:insert{343, 'tuple 343'}
>   -
>   - [343, 'tuple 343']
> -box.space.vinyl:insert{344, "tuple 344"}
> +box.space.vinyl:insert{344, 'tuple 344'}
>   -
>   - [344, 'tuple 344']
>   box.space.memtx:select{340}
> @@ -4384,34 +4384,34 @@ box.space.vinyl:select{343}
>   box.space.vinyl:select{344}
>   -
>   - [344, 'tuple 344']
> -box.space.memtx:insert{345, "tuple 345"}
> +box.space.memtx:insert{345, 'tuple 345'}
>   -
>   - [345, 'tuple 345']
> -box.space.memtx:insert{346, "tuple 346"}
> +box.space.memtx:insert{346, 'tuple 346'}
>   -
>   - [346, 'tuple 346']
> -box.space.memtx:insert{347, "tuple 347"}
> +box.space.memtx:insert{347, 'tuple 347'}
>   -
>   - [347, 'tuple 347']
> -box.space.memtx:insert{348, "tuple 348"}
> +box.space.memtx:insert{348, 'tuple 348'}
>   -
>   - [348, 'tuple 348']
> -box.space.memtx:insert{349, "tuple 349"}
> +box.space.memtx:insert{349, 'tuple 349'}
>   -
>   - [349, 'tuple 349']
> -box.space.vinyl:insert{345, "tuple 345"}
> +box.space.vinyl:insert{345, 'tuple 345'}
>   -
>   - [345, 'tuple 345']
> -box.space.vinyl:insert{346, "tuple 346"}
> +box.space.vinyl:insert{346, 'tuple 346'}
>   -
>   - [346, 'tuple 346']
> -box.space.vinyl:insert{347, "tuple 347"}
> +box.space.vinyl:insert{347, 'tuple 347'}
>   -
>   - [347, 'tuple 347']
> -box.space.vinyl:insert{348, "tuple 348"}
> +box.space.vinyl:insert{348, 'tuple 348'}
>   -
>   - [348, 'tuple 348']
> -box.space.vinyl:insert{349, "tuple 349"}
> +box.space.vinyl:insert{349, 'tuple 349'}
>   -
>   - [349, 'tuple 349']
>   box.space.memtx:select{345}
> @@ -4450,34 +4450,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{350, "tuple 350"}
> +box.space.memtx:insert{350, 'tuple 350'}
>   -
>   - [350, 'tuple 350']
> -box.space.memtx:insert{351, "tuple 351"}
> +box.space.memtx:insert{351, 'tuple 351'}
>   -
>   - [351, 'tuple 351']
> -box.space.memtx:insert{352, "tuple 352"}
> +box.space.memtx:insert{352, 'tuple 352'}
>   -
>   - [352, 'tuple 352']
> -box.space.memtx:insert{353, "tuple 353"}
> +box.space.memtx:insert{353, 'tuple 353'}
>   -
>   - [353, 'tuple 353']
> -box.space.memtx:insert{354, "tuple 354"}
> +box.space.memtx:insert{354, 'tuple 354'}
>   -
>   - [354, 'tuple 354']
> -box.space.vinyl:insert{350, "tuple 350"}
> +box.space.vinyl:insert{350, 'tuple 350'}
>   -
>   - [350, 'tuple 350']
> -box.space.vinyl:insert{351, "tuple 351"}
> +box.space.vinyl:insert{351, 'tuple 351'}
>   -
>   - [351, 'tuple 351']
> -box.space.vinyl:insert{352, "tuple 352"}
> +box.space.vinyl:insert{352, 'tuple 352'}
>   -
>   - [352, 'tuple 352']
> -box.space.vinyl:insert{353, "tuple 353"}
> +box.space.vinyl:insert{353, 'tuple 353'}
>   -
>   - [353, 'tuple 353']
> -box.space.vinyl:insert{354, "tuple 354"}
> +box.space.vinyl:insert{354, 'tuple 354'}
>   -
>   - [354, 'tuple 354']
>   box.space.memtx:select{350}
> @@ -4510,34 +4510,34 @@ box.space.vinyl:select{353}
>   box.space.vinyl:select{354}
>   -
>   - [354, 'tuple 354']
> -box.space.memtx:insert{355, "tuple 355"}
> +box.space.memtx:insert{355, 'tuple 355'}
>   -
>   - [355, 'tuple 355']
> -box.space.memtx:insert{356, "tuple 356"}
> +box.space.memtx:insert{356, 'tuple 356'}
>   -
>   - [356, 'tuple 356']
> -box.space.memtx:insert{357, "tuple 357"}
> +box.space.memtx:insert{357, 'tuple 357'}
>   -
>   - [357, 'tuple 357']
> -box.space.memtx:insert{358, "tuple 358"}
> +box.space.memtx:insert{358, 'tuple 358'}
>   -
>   - [358, 'tuple 358']
> -box.space.memtx:insert{359, "tuple 359"}
> +box.space.memtx:insert{359, 'tuple 359'}
>   -
>   - [359, 'tuple 359']
> -box.space.vinyl:insert{355, "tuple 355"}
> +box.space.vinyl:insert{355, 'tuple 355'}
>   -
>   - [355, 'tuple 355']
> -box.space.vinyl:insert{356, "tuple 356"}
> +box.space.vinyl:insert{356, 'tuple 356'}
>   -
>   - [356, 'tuple 356']
> -box.space.vinyl:insert{357, "tuple 357"}
> +box.space.vinyl:insert{357, 'tuple 357'}
>   -
>   - [357, 'tuple 357']
> -box.space.vinyl:insert{358, "tuple 358"}
> +box.space.vinyl:insert{358, 'tuple 358'}
>   -
>   - [358, 'tuple 358']
> -box.space.vinyl:insert{359, "tuple 359"}
> +box.space.vinyl:insert{359, 'tuple 359'}
>   -
>   - [359, 'tuple 359']
>   box.space.memtx:select{355}
> @@ -4577,34 +4577,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 18 iteration
> -box.space.memtx:insert{360, "tuple 360"}
> +box.space.memtx:insert{360, 'tuple 360'}
>   -
>   - [360, 'tuple 360']
> -box.space.memtx:insert{361, "tuple 361"}
> +box.space.memtx:insert{361, 'tuple 361'}
>   -
>   - [361, 'tuple 361']
> -box.space.memtx:insert{362, "tuple 362"}
> +box.space.memtx:insert{362, 'tuple 362'}
>   -
>   - [362, 'tuple 362']
> -box.space.memtx:insert{363, "tuple 363"}
> +box.space.memtx:insert{363, 'tuple 363'}
>   -
>   - [363, 'tuple 363']
> -box.space.memtx:insert{364, "tuple 364"}
> +box.space.memtx:insert{364, 'tuple 364'}
>   -
>   - [364, 'tuple 364']
> -box.space.vinyl:insert{360, "tuple 360"}
> +box.space.vinyl:insert{360, 'tuple 360'}
>   -
>   - [360, 'tuple 360']
> -box.space.vinyl:insert{361, "tuple 361"}
> +box.space.vinyl:insert{361, 'tuple 361'}
>   -
>   - [361, 'tuple 361']
> -box.space.vinyl:insert{362, "tuple 362"}
> +box.space.vinyl:insert{362, 'tuple 362'}
>   -
>   - [362, 'tuple 362']
> -box.space.vinyl:insert{363, "tuple 363"}
> +box.space.vinyl:insert{363, 'tuple 363'}
>   -
>   - [363, 'tuple 363']
> -box.space.vinyl:insert{364, "tuple 364"}
> +box.space.vinyl:insert{364, 'tuple 364'}
>   -
>   - [364, 'tuple 364']
>   box.space.memtx:select{360}
> @@ -4637,34 +4637,34 @@ box.space.vinyl:select{363}
>   box.space.vinyl:select{364}
>   -
>   - [364, 'tuple 364']
> -box.space.memtx:insert{365, "tuple 365"}
> +box.space.memtx:insert{365, 'tuple 365'}
>   -
>   - [365, 'tuple 365']
> -box.space.memtx:insert{366, "tuple 366"}
> +box.space.memtx:insert{366, 'tuple 366'}
>   -
>   - [366, 'tuple 366']
> -box.space.memtx:insert{367, "tuple 367"}
> +box.space.memtx:insert{367, 'tuple 367'}
>   -
>   - [367, 'tuple 367']
> -box.space.memtx:insert{368, "tuple 368"}
> +box.space.memtx:insert{368, 'tuple 368'}
>   -
>   - [368, 'tuple 368']
> -box.space.memtx:insert{369, "tuple 369"}
> +box.space.memtx:insert{369, 'tuple 369'}
>   -
>   - [369, 'tuple 369']
> -box.space.vinyl:insert{365, "tuple 365"}
> +box.space.vinyl:insert{365, 'tuple 365'}
>   -
>   - [365, 'tuple 365']
> -box.space.vinyl:insert{366, "tuple 366"}
> +box.space.vinyl:insert{366, 'tuple 366'}
>   -
>   - [366, 'tuple 366']
> -box.space.vinyl:insert{367, "tuple 367"}
> +box.space.vinyl:insert{367, 'tuple 367'}
>   -
>   - [367, 'tuple 367']
> -box.space.vinyl:insert{368, "tuple 368"}
> +box.space.vinyl:insert{368, 'tuple 368'}
>   -
>   - [368, 'tuple 368']
> -box.space.vinyl:insert{369, "tuple 369"}
> +box.space.vinyl:insert{369, 'tuple 369'}
>   -
>   - [369, 'tuple 369']
>   box.space.memtx:select{365}
> @@ -4703,34 +4703,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{370, "tuple 370"}
> +box.space.memtx:insert{370, 'tuple 370'}
>   -
>   - [370, 'tuple 370']
> -box.space.memtx:insert{371, "tuple 371"}
> +box.space.memtx:insert{371, 'tuple 371'}
>   -
>   - [371, 'tuple 371']
> -box.space.memtx:insert{372, "tuple 372"}
> +box.space.memtx:insert{372, 'tuple 372'}
>   -
>   - [372, 'tuple 372']
> -box.space.memtx:insert{373, "tuple 373"}
> +box.space.memtx:insert{373, 'tuple 373'}
>   -
>   - [373, 'tuple 373']
> -box.space.memtx:insert{374, "tuple 374"}
> +box.space.memtx:insert{374, 'tuple 374'}
>   -
>   - [374, 'tuple 374']
> -box.space.vinyl:insert{370, "tuple 370"}
> +box.space.vinyl:insert{370, 'tuple 370'}
>   -
>   - [370, 'tuple 370']
> -box.space.vinyl:insert{371, "tuple 371"}
> +box.space.vinyl:insert{371, 'tuple 371'}
>   -
>   - [371, 'tuple 371']
> -box.space.vinyl:insert{372, "tuple 372"}
> +box.space.vinyl:insert{372, 'tuple 372'}
>   -
>   - [372, 'tuple 372']
> -box.space.vinyl:insert{373, "tuple 373"}
> +box.space.vinyl:insert{373, 'tuple 373'}
>   -
>   - [373, 'tuple 373']
> -box.space.vinyl:insert{374, "tuple 374"}
> +box.space.vinyl:insert{374, 'tuple 374'}
>   -
>   - [374, 'tuple 374']
>   box.space.memtx:select{370}
> @@ -4763,34 +4763,34 @@ box.space.vinyl:select{373}
>   box.space.vinyl:select{374}
>   -
>   - [374, 'tuple 374']
> -box.space.memtx:insert{375, "tuple 375"}
> +box.space.memtx:insert{375, 'tuple 375'}
>   -
>   - [375, 'tuple 375']
> -box.space.memtx:insert{376, "tuple 376"}
> +box.space.memtx:insert{376, 'tuple 376'}
>   -
>   - [376, 'tuple 376']
> -box.space.memtx:insert{377, "tuple 377"}
> +box.space.memtx:insert{377, 'tuple 377'}
>   -
>   - [377, 'tuple 377']
> -box.space.memtx:insert{378, "tuple 378"}
> +box.space.memtx:insert{378, 'tuple 378'}
>   -
>   - [378, 'tuple 378']
> -box.space.memtx:insert{379, "tuple 379"}
> +box.space.memtx:insert{379, 'tuple 379'}
>   -
>   - [379, 'tuple 379']
> -box.space.vinyl:insert{375, "tuple 375"}
> +box.space.vinyl:insert{375, 'tuple 375'}
>   -
>   - [375, 'tuple 375']
> -box.space.vinyl:insert{376, "tuple 376"}
> +box.space.vinyl:insert{376, 'tuple 376'}
>   -
>   - [376, 'tuple 376']
> -box.space.vinyl:insert{377, "tuple 377"}
> +box.space.vinyl:insert{377, 'tuple 377'}
>   -
>   - [377, 'tuple 377']
> -box.space.vinyl:insert{378, "tuple 378"}
> +box.space.vinyl:insert{378, 'tuple 378'}
>   -
>   - [378, 'tuple 378']
> -box.space.vinyl:insert{379, "tuple 379"}
> +box.space.vinyl:insert{379, 'tuple 379'}
>   -
>   - [379, 'tuple 379']
>   box.space.memtx:select{375}
> @@ -4830,34 +4830,34 @@ box.cfg{replication=''}
>   ...
>   switch replica to replica
>   test 19 iteration
> -box.space.memtx:insert{380, "tuple 380"}
> +box.space.memtx:insert{380, 'tuple 380'}
>   -
>   - [380, 'tuple 380']
> -box.space.memtx:insert{381, "tuple 381"}
> +box.space.memtx:insert{381, 'tuple 381'}
>   -
>   - [381, 'tuple 381']
> -box.space.memtx:insert{382, "tuple 382"}
> +box.space.memtx:insert{382, 'tuple 382'}
>   -
>   - [382, 'tuple 382']
> -box.space.memtx:insert{383, "tuple 383"}
> +box.space.memtx:insert{383, 'tuple 383'}
>   -
>   - [383, 'tuple 383']
> -box.space.memtx:insert{384, "tuple 384"}
> +box.space.memtx:insert{384, 'tuple 384'}
>   -
>   - [384, 'tuple 384']
> -box.space.vinyl:insert{380, "tuple 380"}
> +box.space.vinyl:insert{380, 'tuple 380'}
>   -
>   - [380, 'tuple 380']
> -box.space.vinyl:insert{381, "tuple 381"}
> +box.space.vinyl:insert{381, 'tuple 381'}
>   -
>   - [381, 'tuple 381']
> -box.space.vinyl:insert{382, "tuple 382"}
> +box.space.vinyl:insert{382, 'tuple 382'}
>   -
>   - [382, 'tuple 382']
> -box.space.vinyl:insert{383, "tuple 383"}
> +box.space.vinyl:insert{383, 'tuple 383'}
>   -
>   - [383, 'tuple 383']
> -box.space.vinyl:insert{384, "tuple 384"}
> +box.space.vinyl:insert{384, 'tuple 384'}
>   -
>   - [384, 'tuple 384']
>   box.space.memtx:select{380}
> @@ -4890,34 +4890,34 @@ box.space.vinyl:select{383}
>   box.space.vinyl:select{384}
>   -
>   - [384, 'tuple 384']
> -box.space.memtx:insert{385, "tuple 385"}
> +box.space.memtx:insert{385, 'tuple 385'}
>   -
>   - [385, 'tuple 385']
> -box.space.memtx:insert{386, "tuple 386"}
> +box.space.memtx:insert{386, 'tuple 386'}
>   -
>   - [386, 'tuple 386']
> -box.space.memtx:insert{387, "tuple 387"}
> +box.space.memtx:insert{387, 'tuple 387'}
>   -
>   - [387, 'tuple 387']
> -box.space.memtx:insert{388, "tuple 388"}
> +box.space.memtx:insert{388, 'tuple 388'}
>   -
>   - [388, 'tuple 388']
> -box.space.memtx:insert{389, "tuple 389"}
> +box.space.memtx:insert{389, 'tuple 389'}
>   -
>   - [389, 'tuple 389']
> -box.space.vinyl:insert{385, "tuple 385"}
> +box.space.vinyl:insert{385, 'tuple 385'}
>   -
>   - [385, 'tuple 385']
> -box.space.vinyl:insert{386, "tuple 386"}
> +box.space.vinyl:insert{386, 'tuple 386'}
>   -
>   - [386, 'tuple 386']
> -box.space.vinyl:insert{387, "tuple 387"}
> +box.space.vinyl:insert{387, 'tuple 387'}
>   -
>   - [387, 'tuple 387']
> -box.space.vinyl:insert{388, "tuple 388"}
> +box.space.vinyl:insert{388, 'tuple 388'}
>   -
>   - [388, 'tuple 388']
> -box.space.vinyl:insert{389, "tuple 389"}
> +box.space.vinyl:insert{389, 'tuple 389'}
>   -
>   - [389, 'tuple 389']
>   box.space.memtx:select{385}
> @@ -4956,34 +4956,34 @@ box.cfg{replication=''}
>   ---
>   ...
>   switch master to replica
> -box.space.memtx:insert{390, "tuple 390"}
> +box.space.memtx:insert{390, 'tuple 390'}
>   -
>   - [390, 'tuple 390']
> -box.space.memtx:insert{391, "tuple 391"}
> +box.space.memtx:insert{391, 'tuple 391'}
>   -
>   - [391, 'tuple 391']
> -box.space.memtx:insert{392, "tuple 392"}
> +box.space.memtx:insert{392, 'tuple 392'}
>   -
>   - [392, 'tuple 392']
> -box.space.memtx:insert{393, "tuple 393"}
> +box.space.memtx:insert{393, 'tuple 393'}
>   -
>   - [393, 'tuple 393']
> -box.space.memtx:insert{394, "tuple 394"}
> +box.space.memtx:insert{394, 'tuple 394'}
>   -
>   - [394, 'tuple 394']
> -box.space.vinyl:insert{390, "tuple 390"}
> +box.space.vinyl:insert{390, 'tuple 390'}
>   -
>   - [390, 'tuple 390']
> -box.space.vinyl:insert{391, "tuple 391"}
> +box.space.vinyl:insert{391, 'tuple 391'}
>   -
>   - [391, 'tuple 391']
> -box.space.vinyl:insert{392, "tuple 392"}
> +box.space.vinyl:insert{392, 'tuple 392'}
>   -
>   - [392, 'tuple 392']
> -box.space.vinyl:insert{393, "tuple 393"}
> +box.space.vinyl:insert{393, 'tuple 393'}
>   -
>   - [393, 'tuple 393']
> -box.space.vinyl:insert{394, "tuple 394"}
> +box.space.vinyl:insert{394, 'tuple 394'}
>   -
>   - [394, 'tuple 394']
>   box.space.memtx:select{390}
> @@ -5016,34 +5016,34 @@ box.space.vinyl:select{393}
>   box.space.vinyl:select{394}
>   -
>   - [394, 'tuple 394']
> -box.space.memtx:insert{395, "tuple 395"}
> +box.space.memtx:insert{395, 'tuple 395'}
>   -
>   - [395, 'tuple 395']
> -box.space.memtx:insert{396, "tuple 396"}
> +box.space.memtx:insert{396, 'tuple 396'}
>   -
>   - [396, 'tuple 396']
> -box.space.memtx:insert{397, "tuple 397"}
> +box.space.memtx:insert{397, 'tuple 397'}
>   -
>   - [397, 'tuple 397']
> -box.space.memtx:insert{398, "tuple 398"}
> +box.space.memtx:insert{398, 'tuple 398'}
>   -
>   - [398, 'tuple 398']
> -box.space.memtx:insert{399, "tuple 399"}
> +box.space.memtx:insert{399, 'tuple 399'}
>   -
>   - [399, 'tuple 399']
> -box.space.vinyl:insert{395, "tuple 395"}
> +box.space.vinyl:insert{395, 'tuple 395'}
>   -
>   - [395, 'tuple 395']
> -box.space.vinyl:insert{396, "tuple 396"}
> +box.space.vinyl:insert{396, 'tuple 396'}
>   -
>   - [396, 'tuple 396']
> -box.space.vinyl:insert{397, "tuple 397"}
> +box.space.vinyl:insert{397, 'tuple 397'}
>   -
>   - [397, 'tuple 397']
> -box.space.vinyl:insert{398, "tuple 398"}
> +box.space.vinyl:insert{398, 'tuple 398'}
>   -
>   - [398, 'tuple 398']
> -box.space.vinyl:insert{399, "tuple 399"}
> +box.space.vinyl:insert{399, 'tuple 399'}
>   -
>   - [399, 'tuple 399']
>   box.space.memtx:select{395}
> diff --git a/test/replication-py/swap.test.py b/test/replication-py/swap.test.py
> index 98eeeea6d..c5718cffd 100644
> --- a/test/replication-py/swap.test.py
> +++ b/test/replication-py/swap.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   import os
>   import tarantool
>   from lib.tarantool_server import TarantoolServer
> @@ -7,26 +9,26 @@ import yaml
>   REPEAT = 20
>   ID_BEGIN = 0
>   ID_STEP = 5
> -LOGIN = 'test'
> -PASSWORD = 'pass123456'
> +LOGIN = "test"
> +PASSWORD = "pass123456"
>   
> -engines = ['memtx', 'vinyl']
> +engines = ["memtx", "vinyl"]
>   
>   def insert_tuples(_server, begin, end, msg = "tuple"):
>       for engine in engines:
>           for i in range(begin, end):
> -            print 'box.space.%s:insert{%d, "%s %d"}' % (engine, i, msg, i)
> -            print '-'
> +            print("box.space.{}:insert{{{}, '{} {}'}}".format(engine, i, msg, i))
> +            print("-")
>               space = _server.iproto.py_con.space(engine)
> -            print space.insert((i, '%s %d' % (msg, i)))
> +            print(space.insert((i, "{} {}".format(msg, i))))
>   
>   def select_tuples(_server, begin, end):
>       for engine in engines:
>           for i in range(begin, end):
> -            print 'box.space.%s:select{%d}' % (engine, i)
> -            print '-'
> +            print("box.space.{}:select{{{}}}".format(engine, i))
> +            print("-")
>               space = _server.iproto.py_con.space(engine)
> -            print space.select(i)
> +            print(space.select(i))
>   
>   # master server
>   master = server
> @@ -34,11 +36,11 @@ master = server
>   master.stop()
>   master.cleanup()
>   master.deploy()
> -master.admin("box.schema.user.create('%s', { password = '%s'})" % (LOGIN, PASSWORD))
> -master.admin("box.schema.user.grant('%s', 'read,write,execute', 'universe')" % LOGIN)
> +master.admin("box.schema.user.create('{}', {{ password = '{}'}})".format(LOGIN, PASSWORD))
> +master.admin("box.schema.user.grant('{}', 'read,write,execute', 'universe')".format(LOGIN))
>   master.iproto.py_con.authenticate(LOGIN, PASSWORD)
> -master.uri = '%s:%s@%s' % (LOGIN, PASSWORD, master.iproto.uri)
> -os.putenv('MASTER', master.uri)
> +master.uri = "{}:{}@{}".format(LOGIN, PASSWORD, master.iproto.uri)
> +os.putenv("MASTER", master.uri)
>   
>   # replica server
>   replica = TarantoolServer()
> @@ -46,27 +48,27 @@ replica.script = "replication-py/replica.lua"
>   replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
>   replica.deploy()
>   replica.admin("while box.info.id == 0 do require('fiber').sleep(0.01) end")
> -replica.uri = '%s:%s@%s' % (LOGIN, PASSWORD, replica.iproto.uri)
> +replica.uri = "{}:{}@{}".format(LOGIN, PASSWORD, replica.iproto.uri)
>   replica.admin("while box.space['_priv']:len() < 1 do require('fiber').sleep(0.01) end")
>   replica.iproto.py_con.authenticate(LOGIN, PASSWORD)
>   
>   for engine in engines:
> -    master.admin("s = box.schema.space.create('%s', { engine = '%s'})" % (engine, engine))
> +    master.admin("s = box.schema.space.create('{}', {{ engine = '{}'}})".format(engine, engine))
>       master.admin("index = s:create_index('primary', {type = 'tree'})")
>   
>   ### gh-343: replica.cc must not add login and password to proc title
>   #status = replica.get_param("status")
> -#host_port = "%s:%s" % master.iproto.uri

4) No changes are needed here.

> -#m = re.search(r'replica/(.*)/.*', status)
> +#host_port = "{}:{}".format(master.iproto.uri)
> +#m = re.search(r"replica/(.*)/.*", status)
>   #if not m or m.group(1) != host_port:
> -#    print 'invalid box.info.status', status, 'expected host:port', host_port
> +#    print("invalid box.info.status", status, "expected host:port", host_port)
>   
> -master_id = master.get_param('id')
> -replica_id = replica.get_param('id')
> +master_id = master.get_param("id")
> +replica_id = replica.get_param("id")
>   
>   id = ID_BEGIN
>   for i in range(REPEAT):
> -    print "test %d iteration" % i
> +    print("test {} iteration".format(i))
>   
>       # insert to master
>       insert_tuples(master, id, id + ID_STEP)
> @@ -82,7 +84,7 @@ for i in range(REPEAT):
>       select_tuples(replica, id, id + ID_STEP)
>       id += ID_STEP
>   
> -    print "swap servers"
> +    print("swap servers")
>       # reconfigure replica to master
>       replica.rpl_master = None
>       print("switch replica to master")
> @@ -90,7 +92,7 @@ for i in range(REPEAT):
>       # reconfigure master to replica
>       master.rpl_master = replica
>       print("switch master to replica")
> -    master.admin("box.cfg{replication='%s'}" % replica.uri, silent=True)
> +    master.admin("box.cfg{{replication='{}'}}".format(replica.uri), silent=True)
>   
>       # insert to replica
>       insert_tuples(replica, id, id + ID_STEP)
> @@ -106,7 +108,7 @@ for i in range(REPEAT):
>       select_tuples(master, id, id + ID_STEP)
>       id += ID_STEP
>   
> -    print "rollback servers configuration"
> +    print("rollback servers configuration")
>       # reconfigure replica to master
>       master.rpl_master = None
>       print("switch master to master")
> @@ -114,7 +116,7 @@ for i in range(REPEAT):
>       # reconfigure master to replica
>       replica.rpl_master = master
>       print("switch replica to replica")
> -    replica.admin("box.cfg{replication='%s'}" % master.uri, silent=True)
> +    replica.admin("box.cfg{{replication='{}'}}".format(master.uri), silent=True)
>   
>   
>   # Cleanup.
> diff --git a/test/xlog-py/big_lsn.test.py b/test/xlog-py/big_lsn.test.py
> index c6a31d971..edc1e5620 100644
> --- a/test/xlog-py/big_lsn.test.py
> +++ b/test/xlog-py/big_lsn.test.py
> @@ -19,8 +19,8 @@ old_wal = os.path.join(wal_dir, "%020d.xlog" % old_lsn)
>   new_wal = os.path.join(wal_dir, "%020d.xlog" % new_lsn)
>   with open(old_wal, "r+") as f:
>       s = f.read()
> -    s = s.replace("VClock: {1: %d}" % old_lsn,
> -                  "VClock: {1: %d}" % new_lsn)
> +    s = s.replace("VClock: {{1: {}}}".format(old_lsn),
> +                  "VClock: {{1: {}}}".format(new_lsn))
>       f.seek(0)
>       f.write(s)
>   os.rename(old_wal, new_wal)
> diff --git a/test/xlog-py/dup_key.test.py b/test/xlog-py/dup_key.test.py
> index 7609c9555..b1442c520 100644
> --- a/test/xlog-py/dup_key.test.py
> +++ b/test/xlog-py/dup_key.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   import os
>   import yaml
>   
> @@ -26,7 +28,7 @@ server.stop()
>   
>   # Save wal#1
>   if os.access(wal, os.F_OK):
> -    print ".xlog exists"
> +    print(".xlog exists")
>       os.rename(wal, wal_old)
>   
>   # Write wal#2
> @@ -37,18 +39,17 @@ server.stop()
>   
>   # Restore wal#1
>   if not os.access(wal, os.F_OK):
> -    print ".xlog does not exist"
> +    print(".xlog does not exist")
>       os.rename(wal_old, wal)
>   
>   server.start()
> -line = 'Duplicate key'
> -print "check log line for '%s'" % line
> -print
> +line = "Duplicate key"
> +print("check log line for '{}'".format(line))
> +print("")
>   if server.logfile_pos.seek_once(line) >= 0:
> -    print "'%s' exists in server log" % line
> -print
> +    print("'{}' exists in server log".format(line))
> +print("")
>   
>   server.admin("box.space.test:get{1}")
>   server.admin("box.space.test:get{2}")
>   server.admin("box.space.test:len()")
> -
> diff --git a/test/xlog-py/empty.test.py b/test/xlog-py/empty.test.py
> index d6f89e0fb..8b19bc3d7 100644
> --- a/test/xlog-py/empty.test.py
> +++ b/test/xlog-py/empty.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   import os
>   import yaml
>   from os.path import abspath
> @@ -20,7 +22,7 @@ f.close()
>   server.start()
>   server.stop()
>   if os.access(filename, os.F_OK):
> -    print ".xlog exists"
> +    print(".xlog exists")
>   # the server has started but is crippled since it
>   # can't override an existing file
>   server.start()
> diff --git a/test/xlog-py/lsn_gap.test.py b/test/xlog-py/lsn_gap.test.py
> index 7a503ff07..8da6166a2 100644
> --- a/test/xlog-py/lsn_gap.test.py
> +++ b/test/xlog-py/lsn_gap.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   import os
>   import yaml
>   #
> @@ -28,11 +30,11 @@ os.unlink(wal)
>   
>   server.start()
>   line="ignoring a gap in LSN"
> -print "check log line for '%s'" % line
> -print
> +print("check log line for '{}'".format(line))
> +print("")
>   if server.logfile_pos.seek_once(line) >= 0:
> -    print "'%s' exists in server log" % line
> -print
> +    print("'{}' exists in server log".format(line))
> +print("")
>   
>   # missing tuple from removed xlog
>   server.admin("box.space.test:select{}")
> diff --git a/test/xlog-py/misc.test.py b/test/xlog-py/misc.test.py
> index e39ae1495..3fcda9504 100644
> --- a/test/xlog-py/misc.test.py
> +++ b/test/xlog-py/misc.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   import os
>   import yaml
>   
> @@ -11,9 +13,9 @@ server.stop()
>   
>   data_path = os.path.join(server.vardir, server.name)
>   
> -print """
> -# xlog file must exist after inserts.
> -"""
> +print("")
> +print("# xlog file must exist after inserts.")
> +print("")
>   filename = str(lsn).zfill(20) + ".xlog"
>   wal = os.path.join(data_path, filename)
>   
> @@ -21,16 +23,16 @@ server.start()
>   
>   server.admin("space = box.schema.space.create('tweedledum')")
>   if os.access(wal, os.F_OK):
> -  print ".xlog exists"
> +  print(".xlog exists")
>   
>   server.admin("index = space:create_index('primary', { type = 'hash' })")
>   
>   server.stop()
>   lsn += 2
>   
> -print """
> -# a new xlog must be opened after regular termination.
> -"""
> +print("")
> +print("# a new xlog must be opened after regular termination.")
> +print("")
>   filename = str(lsn).zfill(20) + ".xlog"
>   server.start()
>   
> @@ -39,18 +41,17 @@ wal = os.path.join(data_path, filename)
>   server.admin("box.space.tweedledum:insert{3, 'third tuple'}")
>   
>   if os.access(wal, os.F_OK):
> -  print "a new .xlog exists"
> +  print("a new .xlog exists")
>   
>   server.stop()
>   
>   if os.access(wal, os.F_OK):
> -  print ".xlog stays around after sutdown"
> +  print(".xlog stays around after shutdown")
>   lsn += 1
>   
> -print """
> -# An xlog file with one record during recovery.
> -"""
> -
> +print("")
> +print("# An xlog file with one record during recovery.")
> +print("")
>   server.start()
>   filename = str(lsn).zfill(20) + ".xlog"
>   wal = os.path.join(data_path, filename)
> @@ -63,7 +64,7 @@ if pid > 0:
>   server.stop()
>   
>   if os.access(wal, os.F_OK):
> -    print ".xlog exists after kill -9"
> +    print(".xlog exists after kill -9")
>       # Remove last byte from xlog
>       f = open(wal, "a")
>       size = f.tell()
> @@ -73,7 +74,7 @@ if os.access(wal, os.F_OK):
>   server.start()
>   
>   if os.access(wal, os.F_OK):
> -  print "corrupt .xlog exists after start"
> +  print("corrupt .xlog exists after start")
>   server.stop()
>   lsn += 1
>   
> @@ -98,4 +99,4 @@ for f in os.listdir(data_path):
>   server.start()
>   lsn = int(yaml.safe_load(admin("box.info.lsn", silent=True))[0])
>   if lsn == orig_lsn:
> -    print ".snap.inprogress is ignored"
> +    print(".snap.inprogress is ignored")
> diff --git a/test/xlog-py/missing.test.py b/test/xlog-py/missing.test.py
> index df35dc6d7..2fff0df6c 100644
> --- a/test/xlog-py/missing.test.py
> +++ b/test/xlog-py/missing.test.py
> @@ -1,3 +1,5 @@
> +from __future__ import print_function
> +
>   import yaml
>   import os
>   #
> @@ -34,11 +36,11 @@ os.unlink(wal)
>   # this may lead to infinite recursion at start
>   server.start()
>   line="ignoring a gap in LSN"
> -print "check log line for '%s'" % line
> -print
> +print("check log line for '{}'".format(line))
> +print("")
>   if server.logfile_pos.seek_once(line) >= 0:
> -    print "'%s' exists in server log" % line
> -print
> +    print("'{}' exists in server log".format(line))
> +print("")
>   
>   # missing tuples from removed xlog
>   server.admin("box.space.test:select{}")
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Tarantool-patches] [PATCH 2/6] test: remove dead code in Python tests end extra newline
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 2/6] test: remove dead code in Python tests end extra newline sergeyb
@ 2020-12-09 20:20   ` Leonid Vasiliev
  0 siblings, 0 replies; 14+ messages in thread
From: Leonid Vasiliev @ 2020-12-09 20:20 UTC (permalink / raw)
  To: sergeyb, tarantool-patches; +Cc: alexander.turenko

Hi! Thank you for the patch.
LGTM.

On 07.12.2020 10:46, sergeyb@tarantool.org wrote:
> From: Sergey Bronnikov <sergeyb@tarantool.org>
> 
> ---
>   test/replication-py/init_storage.test.py | 6 +++---
>   test/replication-py/swap.test.py         | 9 +--------
>   test/xlog-py/dup_key.test.py             | 5 -----
>   test/xlog-py/lsn_gap.test.py             | 1 -
>   4 files changed, 4 insertions(+), 17 deletions(-)
> 
> diff --git a/test/replication-py/init_storage.test.py b/test/replication-py/init_storage.test.py
> index 30ba75405..04279b69e 100644
> --- a/test/replication-py/init_storage.test.py
> +++ b/test/replication-py/init_storage.test.py
> @@ -20,7 +20,7 @@ master.admin("for k = 1, 9 do space:insert{k, k*k} end")
>   
>   replica = TarantoolServer(server.ini)
>   replica.script = "replication-py/replica.lua"
> -replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
> +replica.vardir = server.vardir
>   replica.rpl_master = master
>   replica.deploy()
>   replica.admin("box.space.test:select()")
> @@ -41,7 +41,7 @@ lsn = master.get_lsn(master_id)
>   
>   replica = TarantoolServer(server.ini)
>   replica.script = "replication-py/replica.lua"
> -replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
> +replica.vardir = server.vardir
>   replica.rpl_master = master
>   replica.deploy()
>   
> @@ -60,7 +60,7 @@ print("-------------------------------------------------------------")
>   server.stop()
>   replica = TarantoolServer(server.ini)
>   replica.script = "replication-py/replica.lua"
> -replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
> +replica.vardir = server.vardir
>   replica.rpl_master = master
>   replica.deploy(wait=False)
>   
> diff --git a/test/replication-py/swap.test.py b/test/replication-py/swap.test.py
> index c5718cffd..d2117775a 100644
> --- a/test/replication-py/swap.test.py
> +++ b/test/replication-py/swap.test.py
> @@ -45,7 +45,7 @@ os.putenv("MASTER", master.uri)
>   # replica server
>   replica = TarantoolServer()
>   replica.script = "replication-py/replica.lua"
> -replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
> +replica.vardir = server.vardir
>   replica.deploy()
>   replica.admin("while box.info.id == 0 do require('fiber').sleep(0.01) end")
>   replica.uri = "{}:{}@{}".format(LOGIN, PASSWORD, replica.iproto.uri)
> @@ -56,13 +56,6 @@ for engine in engines:
>       master.admin("s = box.schema.space.create('{}', {{ engine = '{}'}})".format(engine, engine))
>       master.admin("index = s:create_index('primary', {type = 'tree'})")
>   
> -### gh-343: replica.cc must not add login and password to proc title
> -#status = replica.get_param("status")
> -#host_port = "{}:{}".format(master.iproto.uri)
> -#m = re.search(r"replica/(.*)/.*", status)
> -#if not m or m.group(1) != host_port:
> -#    print("invalid box.info.status", status, "expected host:port", host_port)
> -
>   master_id = master.get_param("id")
>   replica_id = replica.get_param("id")
>   
> diff --git a/test/xlog-py/dup_key.test.py b/test/xlog-py/dup_key.test.py
> index b1442c520..a40133ef2 100644
> --- a/test/xlog-py/dup_key.test.py
> +++ b/test/xlog-py/dup_key.test.py
> @@ -3,11 +3,6 @@ from __future__ import print_function
>   import os
>   import yaml
>   
> -#print """
> -#A test case for https://bugs.launchpad.net/tarantool/+bug/1052018
> -#panic_on_wal_error doesn't work for duplicate key errors
> -#"""
> -
>   server.stop()
>   server.deploy()
>   
> diff --git a/test/xlog-py/lsn_gap.test.py b/test/xlog-py/lsn_gap.test.py
> index 8da6166a2..b80b97146 100644
> --- a/test/xlog-py/lsn_gap.test.py
> +++ b/test/xlog-py/lsn_gap.test.py
> @@ -38,4 +38,3 @@ print("")
>   
>   # missing tuple from removed xlog
>   server.admin("box.space.test:select{}")
> -
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Tarantool-patches] [PATCH 3/6] test: remove empty print() functions
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 3/6] test: remove empty print() functions sergeyb
@ 2020-12-09 20:27   ` Leonid Vasiliev
  2020-12-10 13:26     ` Sergey Bronnikov
  0 siblings, 1 reply; 14+ messages in thread
From: Leonid Vasiliev @ 2020-12-09 20:27 UTC (permalink / raw)
  To: sergeyb, tarantool-patches; +Cc: alexander.turenko

Hi! Thank you for the patch.
This was my initiative and I'm sorry.
I don't like tests that used result files, but without delimiters, it's
doubly ugly.
Please leave it as it is.

On 07.12.2020 10:46, sergeyb@tarantool.org wrote:
> From: Sergey Bronnikov <sergeyb@tarantool.org>
> 
> Python tests are based on a reference output: on every run output produced by a
> test compared to reference output and test become passed when both output are
> equal. Perhaps empty print()'s were added as a delimeter for testscases in a
> produced output, so the main purpose of these empty print() functions is a
> reader's convenience. The problem with empty print's is that code become ugly.
> ---
>   test/box-py/call.result           | 4 ----
>   test/box-py/call.test.py          | 4 ----
>   test/replication-py/multi.result  | 6 ------
>   test/replication-py/multi.test.py | 6 ------
>   test/xlog-py/dup_key.result       | 2 --
>   test/xlog-py/dup_key.test.py      | 2 --
>   test/xlog-py/lsn_gap.result       | 2 --
>   test/xlog-py/lsn_gap.test.py      | 2 --
>   test/xlog-py/misc.result          | 6 ------
>   test/xlog-py/misc.test.py         | 6 ------
>   test/xlog-py/missing.result       | 2 --
>   test/xlog-py/missing.test.py      | 2 --
>   12 files changed, 44 deletions(-)
> 
> diff --git a/test/box-py/call.result b/test/box-py/call.result
> index e6b7b8dc9..dc3da3c82 100644
> --- a/test/box-py/call.result
> +++ b/test/box-py/call.result
> @@ -55,11 +55,9 @@ call  box.error (33333, 'Hey!')
>           "reason": "Unknown error"
>       }
>   }
> -
>   # A test case for Bug#103491
>   # server CALL processing bug with name path longer than two
>   # https://bugs.launchpad.net/tarantool/+bug/1034912
> -
>   f = function() return 'OK' end
>   ---
>   ...
> @@ -81,11 +79,9 @@ call  test.f ()
>   - 'OK'
>   call  test.test.f ()
>   - 'OK'
> -
>   # Test for Bug #955226
>   # Lua Numbers are passed back wrongly as strings
>   #
> -
>   function foo() return 1, 2, '1', '2' end
>   ---
>   ...
> diff --git a/test/box-py/call.test.py b/test/box-py/call.test.py
> index 75ced1dff..519334c8b 100644
> --- a/test/box-py/call.test.py
> +++ b/test/box-py/call.test.py
> @@ -23,11 +23,9 @@ call("f1")
>   # IPROTO required!
>   call("box.error", 33333, "Hey!")
>   
> -print("")
>   print("# A test case for Bug#103491")
>   print("# server CALL processing bug with name path longer than two")
>   print("# https://bugs.launchpad.net/tarantool/+bug/1034912")
> -print("")
>   admin("f = function() return 'OK' end")
>   admin("test = {}")
>   admin("test.f = f")
> @@ -37,11 +35,9 @@ call("f")
>   call("test.f")
>   call("test.test.f")
>   
> -print("")
>   print("# Test for Bug #955226")
>   print("# Lua Numbers are passed back wrongly as strings")
>   print("#")
> -print("")
>   admin("function foo() return 1, 2, '1', '2' end")
>   call("foo")
>   
> diff --git a/test/replication-py/multi.result b/test/replication-py/multi.result
> index f90ab22a0..f1ec286ad 100644
> --- a/test/replication-py/multi.result
> +++ b/test/replication-py/multi.result
> @@ -37,27 +37,21 @@ _ = box.space.test:create_index('primary')
>   server 1 is ok
>   server 2 is ok
>   server 3 is ok
> -
>   Insert records
>   inserted 60 records
> -
>   Synchronize
>   server 1 done
>   server 2 done
>   server 3 done
>   done
> -
>   Check data
>   server 1 is ok
>   server 2 is ok
>   server 3 is ok
>   Done
> -
> -
>   ----------------------------------------------------------------------
>   Cleanup
>   ----------------------------------------------------------------------
>   server 1 done
>   server 2 done
>   server 3 done
> -
> diff --git a/test/replication-py/multi.test.py b/test/replication-py/multi.test.py
> index a346fd560..c7d415258 100644
> --- a/test/replication-py/multi.test.py
> +++ b/test/replication-py/multi.test.py
> @@ -72,14 +72,12 @@ master_lsn = master.get_lsn(master.id)
>   for server in cluster:
>       server.wait_lsn(master.id, master_lsn)
>       print("server {} is ok".format(server.id))
> -print("")
>   
>   print("Insert records")
>   for i in range(ROW_N):
>       server = cluster[i % REPLICA_N]
>       server.admin("box.space.test:insert{{{}, {}}}".format(i, server.id), silent = True)
>   print("inserted {} records".format(ROW_N))
> -print("")
>   
>   print("Synchronize")
>   for server1 in cluster:
> @@ -87,16 +85,13 @@ for server1 in cluster:
>           server1.wait_lsn(server2.id, server2.get_lsn(server2.id))
>       print("server {} done".format(server1.id))
>   print("done")
> -print("")
>   
>   print("Check data")
>   for server in cluster:
>       cnt = yaml.safe_load(server.admin("box.space.test:len()", silent = True))[0]
>       print("server {} is {}".format(server.id, cnt == ROW_N and "ok" or "not ok"))
>   print("Done")
> -print("")
>   
> -print("")
>   print("----------------------------------------------------------------------")
>   print("Cleanup")
>   print("----------------------------------------------------------------------")
> @@ -104,7 +99,6 @@ print("----------------------------------------------------------------------")
>   for server in cluster:
>       server.stop()
>       print("server {} done".format(server.id))
> -print("")
>   
>   master.cleanup()
>   master.deploy()
> diff --git a/test/xlog-py/dup_key.result b/test/xlog-py/dup_key.result
> index f387e8e89..ce3ffbc55 100644
> --- a/test/xlog-py/dup_key.result
> +++ b/test/xlog-py/dup_key.result
> @@ -27,9 +27,7 @@ box.space.test:insert{2, 'fourth tuple'}
>   ...
>   .xlog does not exist
>   check log line for 'Duplicate key'
> -
>   'Duplicate key' exists in server log
> -
>   box.space.test:get{1}
>   ---
>   - [1, 'first tuple']
> diff --git a/test/xlog-py/dup_key.test.py b/test/xlog-py/dup_key.test.py
> index a40133ef2..534221150 100644
> --- a/test/xlog-py/dup_key.test.py
> +++ b/test/xlog-py/dup_key.test.py
> @@ -40,10 +40,8 @@ if not os.access(wal, os.F_OK):
>   server.start()
>   line = "Duplicate key"
>   print("check log line for '{}'".format(line))
> -print("")
>   if server.logfile_pos.seek_once(line) >= 0:
>       print("'{}' exists in server log".format(line))
> -print("")
>   
>   server.admin("box.space.test:get{1}")
>   server.admin("box.space.test:get{2}")
> diff --git a/test/xlog-py/lsn_gap.result b/test/xlog-py/lsn_gap.result
> index 685fc1efa..8633d76a4 100644
> --- a/test/xlog-py/lsn_gap.result
> +++ b/test/xlog-py/lsn_gap.result
> @@ -21,9 +21,7 @@ box.space.test:insert{4, 'fourth tuple'}
>   - [4, 'fourth tuple']
>   ...
>   check log line for 'ignoring a gap in LSN'
> -
>   'ignoring a gap in LSN' exists in server log
> -
>   box.space.test:select{}
>   ---
>   - - [1, 'first tuple']
> diff --git a/test/xlog-py/lsn_gap.test.py b/test/xlog-py/lsn_gap.test.py
> index b80b97146..2d814c42c 100644
> --- a/test/xlog-py/lsn_gap.test.py
> +++ b/test/xlog-py/lsn_gap.test.py
> @@ -31,10 +31,8 @@ os.unlink(wal)
>   server.start()
>   line="ignoring a gap in LSN"
>   print("check log line for '{}'".format(line))
> -print("")
>   if server.logfile_pos.seek_once(line) >= 0:
>       print("'{}' exists in server log".format(line))
> -print("")
>   
>   # missing tuple from removed xlog
>   server.admin("box.space.test:select{}")
> diff --git a/test/xlog-py/misc.result b/test/xlog-py/misc.result
> index 6c85814b1..8b4a6740c 100644
> --- a/test/xlog-py/misc.result
> +++ b/test/xlog-py/misc.result
> @@ -1,6 +1,4 @@
> -
>   # xlog file must exist after inserts.
> -
>   space = box.schema.space.create('tweedledum')
>   ---
>   ...
> @@ -8,16 +6,12 @@ space = box.schema.space.create('tweedledum')
>   index = space:create_index('primary', { type = 'hash' })
>   ---
>   ...
> -
>   # a new xlog must be opened after regular termination.
> -
>   box.space.tweedledum:insert{3, 'third tuple'}
>   ---
>   - [3, 'third tuple']
>   ...
> -
>   # An xlog file with one record during recovery.
> -
>   box.space.tweedledum:insert{4, 'fourth tuple'}
>   ---
>   - [4, 'fourth tuple']
> diff --git a/test/xlog-py/misc.test.py b/test/xlog-py/misc.test.py
> index 3fcda9504..678031afa 100644
> --- a/test/xlog-py/misc.test.py
> +++ b/test/xlog-py/misc.test.py
> @@ -13,9 +13,7 @@ server.stop()
>   
>   data_path = os.path.join(server.vardir, server.name)
>   
> -print("")
>   print("# xlog file must exist after inserts.")
> -print("")
>   filename = str(lsn).zfill(20) + ".xlog"
>   wal = os.path.join(data_path, filename)
>   
> @@ -30,9 +28,7 @@ server.admin("index = space:create_index('primary', { type = 'hash' })")
>   server.stop()
>   lsn += 2
>   
> -print("")
>   print("# a new xlog must be opened after regular termination.")
> -print("")
>   filename = str(lsn).zfill(20) + ".xlog"
>   server.start()
>   
> @@ -49,9 +45,7 @@ if os.access(wal, os.F_OK):
>     print(".xlog stays around after shutdown")
>   lsn += 1
>   
> -print("")
>   print("# An xlog file with one record during recovery.")
> -print("")
>   server.start()
>   filename = str(lsn).zfill(20) + ".xlog"
>   wal = os.path.join(data_path, filename)
> diff --git a/test/xlog-py/missing.result b/test/xlog-py/missing.result
> index c52f75c68..826f57296 100644
> --- a/test/xlog-py/missing.result
> +++ b/test/xlog-py/missing.result
> @@ -29,9 +29,7 @@ box.space.test:delete{3}
>   - [3, 'third tuple']
>   ...
>   check log line for 'ignoring a gap in LSN'
> -
>   'ignoring a gap in LSN' exists in server log
> -
>   box.space.test:select{}
>   ---
>   - []
> diff --git a/test/xlog-py/missing.test.py b/test/xlog-py/missing.test.py
> index 2fff0df6c..13b3ddd8f 100644
> --- a/test/xlog-py/missing.test.py
> +++ b/test/xlog-py/missing.test.py
> @@ -37,10 +37,8 @@ os.unlink(wal)
>   server.start()
>   line="ignoring a gap in LSN"
>   print("check log line for '{}'".format(line))
> -print("")
>   if server.logfile_pos.seek_once(line) >= 0:
>       print("'{}' exists in server log".format(line))
> -print("")
>   
>   # missing tuples from removed xlog
>   server.admin("box.space.test:select{}")
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Tarantool-patches] [PATCH 4/6] add initial flake8 config
  2020-12-07  7:46 ` [Tarantool-patches] [PATCH 4/6] add initial flake8 config sergeyb
@ 2020-12-09 20:57   ` Leonid Vasiliev
  0 siblings, 0 replies; 14+ messages in thread
From: Leonid Vasiliev @ 2020-12-09 20:57 UTC (permalink / raw)
  To: sergeyb, tarantool-patches; +Cc: alexander.turenko

Hi! Thank you for the patch.
Add subsystem to commit title.

This seems like an overkill to me, because, if I understand correctly, 
we didn't plan to write new tests on python for tarantool.

I propose to discuss this with Alexander after the standup.

On 07.12.2020 10:46, sergeyb@tarantool.org wrote:
> From: Sergey Bronnikov <sergeyb@tarantool.org>
> 
> flake8 configuration file supress warnings, that can be fixed later. > Supressed warnings can be splitted for three categories and for each 
of them
> separate issue exists:
> 
> - Fix warnings Exx: #5599
> - Fix warnings Fxx: #5598
> - Fix warnings Wxx: #5597
> ---
>   .flake8 | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 66 insertions(+)
>   create mode 100644 .flake8
> 
> diff --git a/.flake8 b/.flake8
> new file mode 100644
> index 000000000..249970226
> --- /dev/null
> +++ b/.flake8
> @@ -0,0 +1,66 @@
> +[flake8]
> +inline-quotes = "
> +statistics = True
> +select = Q0
> +exclude = test/test-run.py
> +ignore =
> +    # E111: indentation is not a multiple of four
> +    E111,
> +    # E123: closing bracket does not match indentation of opening bracket's line
> +    E123,
> +    # E126: continuation line over-indented for hanging indent
> +    E126,
> +    # E128: continuation line under-indented for visual indent
> +    E128,
> +    # E201: whitespace after '('
> +    E201,
> +    # E202: whitespace before ')'
> +    E202,
> +    # E203: whitespace before ':'
> +    E203,
> +    # E225: missing whitespace around operator
> +    E225,
> +    # E226: missing whitespace around arithmetic operator
> +    E226,
> +    # E231: missing whitespace after ',', ';' or ':'
> +    E231,
> +    # E241: multiple spaces after ','
> +    E241,
> +    # E251: unexpected spaces around keyword / parameter equals
> +    E251,
> +    # E261: at least two spaces before inline comment
> +    E261,
> +    # E265: block comment should start with '#'
> +    E265,
> +    # E266: too many leading '#' for block comment
> +    E266,
> +    # E302: expected 2 blank lines, found 0
> +    E302,
> +    # E305: expected 2 blank lines after end of function or class
> +    E305,
> +    # E402: module level import not at top of file
> +    E402,
> +    # E501: line too long (82 > 79 characters)
> +    E501,
> +    # E502: the backslash is redundant between brackets
> +    E502,
> +    # E703: statement ends with a semicolon
> +    E703,
> +    # E722: do not use bare except, specify exception instead
> +    E722,
> +    # F401: module imported but unused
> +    F401,
> +    # F403: 'from module import *' used; unable to detect undefined names
> +    F403,
> +    # F405: name may be undefined, or defined from star imports: module
> +    F405,
> +    # F821: undefined name name
> +    F821,
> +    # F841: local variable name is assigned to but never used
> +    F841,
> +    # W291: trailing whitespace
> +    W291,
> +    # W391: blank line at end of file
> +    W391,
> +    # W605: invalid escape sequence 'x'
> +    W605
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Tarantool-patches] [PATCH 1/6] test: support Python 3 and make quotes use consistent
  2020-12-09 15:58   ` Leonid Vasiliev
@ 2020-12-10 13:23     ` Sergey Bronnikov
  2020-12-10 13:29       ` Sergey Bronnikov
  0 siblings, 1 reply; 14+ messages in thread
From: Sergey Bronnikov @ 2020-12-10 13:23 UTC (permalink / raw)
  To: Leonid Vasiliev, tarantool-patches; +Cc: alexander.turenko

Hello,

thanks for review

On 09.12.2020 18:58, Leonid Vasiliev wrote:
> Hi! Thank you for the patch!
> I regret the moment when I suggested at the same time reformat the code
> in accordance with the PEP8) (Many changes).
> But for tests, in my opinion it is normal. This is easy to check and
> can't introduce degradation.
> In addition, I think LGTM alone will be enough for such changes.
> And please remove the change in quotes for "tuple" in swap.test.py, it 
> adds too many changes.
>
> So, see some comments below:
>
> On 07.12.2020 10:46, sergeyb@tarantool.org wrote:
>> From: Sergey Bronnikov <sergeyb@tarantool.org>
>>
>> - convert print statement to function. In a Python 3 'print' becomes a
>> function, see [1]. Patch makes 'print' in a regression tests 
>> compatible with
>> Python 3.
>> - according to PEP8, mixing using double quotes and quotes in a 
>> project looks
>> inconsistent (one must be selected). Patch makes using quotes with 
>> strings
>> consistent.
>> - convert iteritems() to list
>
> 1) Looks like this can be moved to a separate commit.

moved to a separate commit

>
>> - print multiline strings with multiple print()
>> - use "format()" instead of "%" everywhere
>>
>> 1. https://docs.python.org/3/whatsnew/3.0.html#print-is-a-function
>>
>> Closes #5538
>> ---
>>   test/app-tap/httpd.py                    |   42 +-
>>   test/box-py/args.test.py                 |   14 +-
>>   test/box-py/bad_trigger.result           |    2 -
>>   test/box-py/bad_trigger.test.py          |   20 +-
>>   test/box-py/bootstrap.result             |    2 +-
>>   test/box-py/bootstrap.test.py            |   16 +-
>>   test/box-py/call.result                  |   12 +-
>>   test/box-py/call.test.py                 |   92 +-
>>   test/box-py/iproto.result                |   10 +-
>>   test/box-py/iproto.test.py               |  218 ++-
>>   test/box-py/print.result                 |    6 +-
>>   test/box-py/print.test.py                |   24 +-
>>   test/box-py/snapshot.result              |    4 +-
>>   test/box-py/snapshot.test.py             |   33 +-
>>   test/long_run-py/finalizers.result       |    2 +-
>>   test/long_run-py/finalizers.test.py      |    8 +-
>>   test/replication-py/cluster.result       |    6 +-
>>   test/replication-py/cluster.test.py      |  217 +--
>>   test/replication-py/conflict.test.py     |   54 +-
>>   test/replication-py/init_storage.test.py |   48 +-
>>   test/replication-py/multi.test.py        |   78 +-
>>   test/replication-py/swap.result          | 1600 +++++++++++-----------
>>   test/replication-py/swap.test.py         |   52 +-
>>   test/xlog-py/big_lsn.test.py             |    4 +-
>>   test/xlog-py/dup_key.test.py             |   17 +-
>>   test/xlog-py/empty.test.py               |    4 +-
>>   test/xlog-py/lsn_gap.test.py             |   10 +-
>>   test/xlog-py/misc.test.py                |   33 +-
>>   test/xlog-py/missing.test.py             |   10 +-
>>   29 files changed, 1324 insertions(+), 1314 deletions(-)
>>
>> diff --git a/test/app-tap/httpd.py b/test/app-tap/httpd.py
>> index b4662bc1f..b57ef1e39 100755
>> --- a/test/app-tap/httpd.py
>> +++ b/test/app-tap/httpd.py
>> @@ -6,35 +6,35 @@ from gevent import spawn, sleep, socket
>>     def absent():
>>       code = "500 Server Error"
>> -    headers = [('Content-Type', 'application/json')]
>> +    headers = [("Content-Type", "application/json")]
>>       body = ["No such method"]
>>       return code, body, headers
>>     def hello():
>>       code = "200 OK"
>>       body = ["hello world"]
>> -    headers = [('Content-Type', 'application/json')]
>> +    headers = [("Content-Type", "application/json")]
>>       return code, body, headers
>>     def hello1():
>>       code = "200 OK"
>>       body = [b"abc"]
>> -    headers = [('Content-Type', 'application/json')]
>> +    headers = [("Content-Type", "application/json")]
>>       return code, body, headers
>>     def headers():
>>       code = "200 OK"
>>       body = [b"cookies"]
>> -    headers = [('Content-Type', 'application/json'),
>> -               ('Content-Type', 'application/yaml'),
>> -               ('Set-Cookie', 'likes=cheese; Expires=Wed, 21 Oct 
>> 2015 07:28:00 GMT; Secure; HttpOnly'),
>> -               ('Set-Cookie', 'bad@name=no;'),
>> -               ('Set-Cookie', 'badcookie'),
>> -               ('Set-Cookie', 'good_name=yes;'),
>> -               ('Set-Cookie', 'age = 17; NOSuchOption; 
>> EmptyOption=Value;Secure'),
>> -               ('my_header', 'value1'),
>> -               ('my_header', 'value2'),
>> -               ('very_very_very_long_headers_name1', 'true'),
>> +    headers = [("Content-Type", "application/json"),
>> +               ("Content-Type", "application/yaml"),
>> +               ("Set-Cookie", "likes=cheese; Expires=Wed, 21 Oct 
>> 2015 07:28:00 GMT; Secure; HttpOnly"),
>> +               ("Set-Cookie", "bad@name=no;"),
>> +               ("Set-Cookie", "badcookie"),
>> +               ("Set-Cookie", "good_name=yes;"),
>> +               ("Set-Cookie", "age = 17; NOSuchOption; 
>> EmptyOption=Value;Secure"),
>> +               ("my_header", "value1"),
>> +               ("my_header", "value2"),
>> +               ("very_very_very_long_headers_name1", "true"),
>>                  ]
>>       return code, body, headers
>>   @@ -42,13 +42,13 @@ def long_query():
>>       sleep(0.005)
>>       code = "200 OK"
>>       body = [b"abc"]
>> -    headers = [('Content-Type', 'application/json')]
>> +    headers = [("Content-Type", "application/json")]
>>       return code, body, headers
>>     def redirect():
>>       code = "302 Found"
>>       body = ["redirecting"]
>> -    headers = [('Location', '/')]
>> +    headers = [("Location", "/")]
>>       return code, body, headers
>>     paths = {
>> @@ -63,7 +63,7 @@ paths = {
>>   def read_handle(env, response):
>>       code = "404 Not Found"
>>       headers = []
>> -    body = ['Not Found']
>> +    body = ["Not Found"]
>>       if env["PATH_INFO"] in paths:
>>           code, body, headers = paths[env["PATH_INFO"]]()
>>       for key,value in env.iteritems():
>> @@ -74,7 +74,7 @@ def read_handle(env, response):
>>     def post_handle(env, response):
>>       code = "200 OK"
>> -    body = [env['wsgi.input'].read()]
>> +    body = [env["wsgi.input"].read()]
>>       headers = []
>>       for key,value in env.iteritems():
>>           if "HTTP_" in key:
>> @@ -83,7 +83,7 @@ def post_handle(env, response):
>>       return body
>>     def other_handle(env, response, method, code):
>> -    headers = [('Content-Type', 'text/plain'), ("method", method)]
>> +    headers = [("Content-Type", "text/plain"), ("method", method)]
>>       body = [method]
>>       for key,value in env.iteritems():
>>           if "HTTP_" in key:
>> @@ -119,15 +119,15 @@ def heartbeat():
>>           sys.exit(1)
>>     def usage():
>> -    sys.stderr.write("Usage: %s { --inet HOST:PORT | --unix PATH }\n" %
>> -                     sys.argv[0])
>> +    message = "Usage: {} {{ --inet HOST:PORT | --unix PATH 
>> }}\n".format(sys.argv[0])
>> +    sys.stderr.write(message)
>>       sys.exit(1)
>>     if len(sys.argv) != 3:
>>       usage()
>>     if sys.argv[1] == "--inet":
>> -    host, port = sys.argv[2].split(':')
>> +    host, port = sys.argv[2].split(":")
>>       sock_family = socket.AF_INET
>>       sock_addr = (host, int(port))
>>   elif sys.argv[1] == "--unix":
>> diff --git a/test/box-py/args.test.py b/test/box-py/args.test.py
>> index c0fac9038..f1b840a85 100644
>> --- a/test/box-py/args.test.py
>> +++ b/test/box-py/args.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   import sys
>>   import os
>>   import re
>> @@ -5,7 +7,7 @@ import re
>>   # Disabled on OpenBSD due to fail #XXXX.
>>   import platform
>>   -if platform.system() == 'OpenBSD':
>> +if platform.system() == "OpenBSD":
>>       self.skip = 1
>>     # mask BFD warnings: 
>> https://bugs.launchpad.net/tarantool/+bug/1018356
>> @@ -13,9 +15,9 @@ sys.stdout.push_filter("unable to read unknown load 
>> command 0x2\d+", "")
>>   server.test_option("--help")
>>   server.test_option("-h")
>>   # Replace with the same value for case when builddir inside source dir
>> -sys.stdout.push_filter(re.escape(os.getenv("BUILDDIR")+'/src/tarantool'), 
>> "tarantool")
>> +sys.stdout.push_filter(re.escape(os.getenv("BUILDDIR")+"/src/tarantool"), 
>> "tarantool")
>>   sys.stdout.push_filter(re.escape(os.getenv("BUILDDIR")), 
>> "${SOURCEDIR}")
>> -sys.stdout.push_filter(re.escape(os.getenv("SOURCEDIR")+'/src/tarantool'), 
>> "tarantool")
>> +sys.stdout.push_filter(re.escape(os.getenv("SOURCEDIR")+"/src/tarantool"), 
>> "tarantool")
>>   sys.stdout.push_filter(re.escape(os.getenv("SOURCEDIR")), 
>> "${SOURCEDIR}")
>>   sys.stdout.push_filter("invalid option.*", "invalid option")
>>   sys.stdout.push_filter("unrecognized option.*", "unrecognized option")
>> @@ -44,11 +46,11 @@ server.test_option(script + " --help 1 2 3")
>>   server.test_option("-V " + script + " 1 2 3")
>>     # gh-3966: os.exit() hangs if called by a command from the 
>> argument list.
>> -server.test_option("-e \"print(1) os.exit() print(2)\"")
>> -server.test_option("-e \"print(1)\" -e \"os.exit()\" -e \"print(1)\" 
>> -e \"os.exit()\" -e \"print(1)\"")
>> +server.test_option("-e 'print(1) os.exit() print(2)'")
>> +server.test_option("-e 'print(1)' -e 'os.exit()' -e 'print(1)' -e 
>> 'os.exit()' -e 'print(1)'")
>>     server.test_option("-e \"print('Hello')\" " + script + " 1 2 3")
>> -server.test_option("-e \"a = 10\" " + \
>> +server.test_option("-e 'a = 10' " + \
>>                      "-e print(a) " + \
>>                      script + \
>>                      " 1 2 3 --help")
>> diff --git a/test/box-py/bad_trigger.result 
>> b/test/box-py/bad_trigger.result
>> index 5d064b764..42cd9a7e8 100644
>> --- a/test/box-py/bad_trigger.result
>> +++ b/test/box-py/bad_trigger.result
>> @@ -1,8 +1,6 @@
>> -
>>    #
>>    # if on_connect() trigger raises an exception, the connection is 
>> dropped
>>    #
>> -
>>   nosuchfunction = nil
>>   ---
>>   ...
>> diff --git a/test/box-py/bad_trigger.test.py 
>> b/test/box-py/bad_trigger.test.py
>> index 7d200b921..789fe8045 100644
>> --- a/test/box-py/bad_trigger.test.py
>> +++ b/test/box-py/bad_trigger.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   from lib.box_connection import BoxConnection
>>   from lib.tarantool_connection import TarantoolConnection
>>   from tarantool import NetworkError
>> @@ -6,11 +8,9 @@ from tarantool.const import IPROTO_GREETING_SIZE, 
>> IPROTO_CODE, IPROTO_ERROR, \
>>   import socket
>>   import msgpack
>>   -print """
>> - #
>> - # if on_connect() trigger raises an exception, the connection is 
>> dropped
>> - #
>> - """
>> +print(" #")
>> +print(" # if on_connect() trigger raises an exception, the 
>> connection is dropped")
>> +print(" #")
>>     # silence possible error of strict mode
>>   server.admin("nosuchfunction = nil")
>> @@ -24,12 +24,12 @@ conn.connect()
>>   s = conn.socket
>>     # Read greeting
>> -print 'greeting: ', len(s.recv(IPROTO_GREETING_SIZE)) == 
>> IPROTO_GREETING_SIZE
>> +print("greeting:  {}".format(len(s.recv(IPROTO_GREETING_SIZE)) == 
>> IPROTO_GREETING_SIZE))
>>     # Read error packet
>>   IPROTO_FIXHEADER_SIZE = 5
>>   fixheader = s.recv(IPROTO_FIXHEADER_SIZE)
>> -print 'fixheader: ', len(fixheader) == IPROTO_FIXHEADER_SIZE
>> +print("fixheader:  {}".format(len(fixheader) == IPROTO_FIXHEADER_SIZE))
>>   unpacker.feed(fixheader)
>>   packet_len = unpacker.unpack()
>>   packet = s.recv(packet_len)
>> @@ -38,9 +38,9 @@ unpacker.feed(packet)
>>   # Parse packet
>>   header = unpacker.unpack()
>>   body = unpacker.unpack()
>> -print 'error code', (header[IPROTO_CODE] & (REQUEST_TYPE_ERROR - 1))
>> -print 'error message: ', body[IPROTO_ERROR]
>> -print 'eof:', len(s.recv(1024)) == 0
>> +print("error code {}".format((header[IPROTO_CODE] & 
>> (REQUEST_TYPE_ERROR - 1))))
>> +print("error message:  {}".format(body[IPROTO_ERROR]))
>> +print("eof: {}".format(len(s.recv(1024)) == 0))
>>   s.close()
>>     server.admin("box.session.on_connect(nil, f1)")
>> diff --git a/test/box-py/bootstrap.result b/test/box-py/bootstrap.result
>> index 0876e77a6..865302698 100644
>> --- a/test/box-py/bootstrap.result
>> +++ b/test/box-py/bootstrap.result
>> @@ -165,7 +165,7 @@ box.space._user:select{}
>>     - [3, 1, 'replication', 'role', {}]
>>     - [31, 1, 'super', 'role', {}]
>>   ...
>> -for _, v in box.space._func:pairs{} do r = {} table.insert(r, 
>> v:update({{"=", 18, ""}, {"=", 19, ""}})) return r end
>> +for _, v in box.space._func:pairs{} do r = {} table.insert(r, 
>> v:update({{'=', 18, ''}, {'=', 19, ''}})) return r end
>>   ---
>>   - - [1, 1, 'box.schema.user.info', 1, 'LUA', '', 'function', [], 
>> 'any', 'none', 'none',
>>       false, false, true, ['LUA'], {}, '', '', '']
>> diff --git a/test/box-py/bootstrap.test.py 
>> b/test/box-py/bootstrap.test.py
>> index 63c13e8a4..f7c846bf1 100644
>> --- a/test/box-py/bootstrap.test.py
>> +++ b/test/box-py/bootstrap.test.py
>> @@ -1,11 +1,11 @@
>> -server.admin('box.internal.bootstrap()')
>> -server.admin('box.space._schema:select{}')
>> -server.admin('box.space._cluster:select{}')
>> -server.admin('box.space._space:select{}')
>> -server.admin('box.space._index:select{}')
>> -server.admin('box.space._user:select{}')
>> -server.admin('for _, v in box.space._func:pairs{} do r = {} 
>> table.insert(r, v:update({{"=", 18, ""}, {"=", 19, ""}})) return r end')
>> -server.admin('box.space._priv:select{}')
>> +server.admin("box.internal.bootstrap()")
>> +server.admin("box.space._schema:select{}")
>> +server.admin("box.space._cluster:select{}")
>> +server.admin("box.space._space:select{}")
>> +server.admin("box.space._index:select{}")
>> +server.admin("box.space._user:select{}")
>> +server.admin("for _, v in box.space._func:pairs{} do r = {} 
>> table.insert(r, v:update({{'=', 18, ''}, {'=', 19, ''}})) return r end")
>> +server.admin("box.space._priv:select{}")
>>     # Cleanup
>>   server.stop()
>> diff --git a/test/box-py/call.result b/test/box-py/call.result
>> index d340ed6fa..e6b7b8dc9 100644
>> --- a/test/box-py/call.result
>> +++ b/test/box-py/call.result
>> @@ -536,10 +536,10 @@ function f(...) return ... end
>>   call f({'k2': 'v2', 'k1': 'v1'})
>>   ---
>>   - {'k2': 'v2', 'k1': 'v1'}
>> -eval (return space:auto_increment({"transaction"}))()
>> +eval (return space:auto_increment({'transaction'}))()
>>   ---
>>   - [1, 'transaction']
>> -function f(...) return space:auto_increment({"transaction"}) end
>> +function f(...) return space:auto_increment({'transaction'}) end
>>   ---
>>   ...
>>   call f()
>> @@ -554,11 +554,11 @@ function f(...) return space:select{} end
>>   call f()
>>   ---
>>   - [[1, 'transaction'], [2, 'transaction']]
>> -eval (return box.begin(), space:auto_increment({"failed"}), 
>> box.rollback())()
>> +eval (return box.begin(), space:auto_increment({'failed'}), 
>> box.rollback())()
>>   ---
>>   - None
>>   - [3, 'failed']
>> -function f(...) return box.begin(), 
>> space:auto_increment({"failed"}), box.rollback() end
>> +function f(...) return box.begin(), 
>> space:auto_increment({'failed'}), box.rollback() end
>>   ---
>>   ...
>>   call f()
>> @@ -574,10 +574,10 @@ function f(...) return space:select{} end
>>   call f()
>>   ---
>>   - [[1, 'transaction'], [2, 'transaction']]
>> -eval (return require("fiber").sleep(0))()
>> +eval (return require('fiber').sleep(0))()
>>   ---
>>   -function f(...) return require("fiber").sleep(0) end
>> +function f(...) return require('fiber').sleep(0) end
>>   ---
>>   ...
>>   call f()
>> diff --git a/test/box-py/call.test.py b/test/box-py/call.test.py
>> index 974ba0cac..75ced1dff 100644
>> --- a/test/box-py/call.test.py
>> +++ b/test/box-py/call.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   import os
>>   import sys
>>   @@ -6,9 +8,9 @@ def call(name, *args):
>>     admin("box.schema.user.create('test', { password = 'test' })")
>>   admin("box.schema.user.grant('test', 'execute,read,write', 
>> 'universe')")
>> -iproto.authenticate('test', 'test')
>> +iproto.authenticate("test", "test")
>>   # workaround for gh-770 centos 6 float representation
>> -admin('exp_notation = 1e123')
>> +admin("exp_notation = 1e123")
>>   admin("function f1() return 'testing', 1, false, -1, 1.123, 
>> math.abs(exp_notation - 1e123) < 0.1, nil end")
>>   admin("f1()")
>>   call("f1")
>> @@ -19,13 +21,13 @@ call("f1")
>>     # A test case for https://github.com/tarantool/tarantool/issues/44
>>   # IPROTO required!
>> -call("box.error", 33333, 'Hey!')
>> +call("box.error", 33333, "Hey!")
>>   -print """
>> -# A test case for Bug#103491
>> -# server CALL processing bug with name path longer than two
>> -# https://bugs.launchpad.net/tarantool/+bug/1034912
>> -"""
>> +print("")
>> +print("# A test case for Bug#103491")
>> +print("# server CALL processing bug with name path longer than two")
>> +print("# https://bugs.launchpad.net/tarantool/+bug/1034912")
>> +print("")
>>   admin("f = function() return 'OK' end")
>>   admin("test = {}")
>>   admin("test.f = f")
>> @@ -35,11 +37,11 @@ call("f")
>>   call("test.f")
>>   call("test.test.f")
>>   -print """
>> -# Test for Bug #955226
>> -# Lua Numbers are passed back wrongly as strings
>> -#
>> -"""
>> +print("")
>> +print("# Test for Bug #955226")
>> +print("# Lua Numbers are passed back wrongly as strings")
>> +print("#")
>> +print("")
>>   admin("function foo() return 1, 2, '1', '2' end")
>>   call("foo")
>>   @@ -48,8 +50,8 @@ call("foo")
>>   #
>>   admin("function f1(...) return {...} end")
>>   admin("function f2(...) return f1({...}) end")
>> -call("f1", 'test_', 'test_')
>> -call("f2", 'test_', 'test_')
>> +call("f1", "test_", "test_")
>> +call("f2", "test_", "test_")
>>   call("f1")
>>   call("f2")
>>   #
>> @@ -72,8 +74,8 @@ call("f3")
>>   admin("function f3() return { { test={1,2,3} }, { test2={1,2,3} } } 
>> end")
>>   call("f3")
>>   -call("f1", 'jason')
>> -call("f1", 'jason', 1, 'test', 2, 'stewart')
>> +call("f1", "jason")
>> +call("f1", "jason", 1, "test", 2, "stewart")
>>     admin("space = box.schema.space.create('tweedledum')")
>>   admin("index = space:create_index('primary', { type = 'hash' })")
>> @@ -81,30 +83,30 @@ admin("index = space:create_index('primary', { 
>> type = 'hash' })")
>>   admin("function myreplace(...) return space:replace{...} end")
>>   admin("function myinsert(...) return space:insert{...} end")
>>   -call("myinsert", 1, 'test box delete')
>> +call("myinsert", 1, "test box delete")
>>   call("space:delete", 1)
>> -call("myinsert", 1, 'test box delete')
>> +call("myinsert", 1, "test box delete")
>>   call("space:delete", 1)
>>   call("space:delete", 1)
>> -call("myinsert", 2, 'test box delete')
>> +call("myinsert", 2, "test box delete")
>>   call("space:delete", 1)
>>   call("space:delete", 2)
>>   call("space:delete", 2)
>>   admin("space:delete{2}")
>>   -call("myinsert", 2, 'test box delete')
>> +call("myinsert", 2, "test box delete")
>>   call("space:get", 2)
>>   admin("space:delete{2}")
>>   call("space:get", 2)
>> -call("myinsert", 2, 'test box.select()')
>> +call("myinsert", 2, "test box.select()")
>>   call("space:get", 2)
>>   call("space:select", 2)
>>   admin("space:get{2}")
>>   admin("space:select{2}")
>>   admin("space:get{1}")
>>   admin("space:select{1}")
>> -call("myreplace", 2, 'hello', 'world')
>> -call("myreplace", 2, 'goodbye', 'universe')
>> +call("myreplace", 2, "hello", "world")
>> +call("myreplace", 2, "goodbye", "universe")
>>   call("space:get", 2)
>>   call("space:select", 2)
>>   admin("space:get{2}")
>> @@ -114,9 +116,9 @@ call("space:get", 2)
>>   call("space:select", 2)
>>   call("space:delete", 2)
>>   call("space:delete", 2)
>> -call("myinsert", 3, 'old', 2)
>> +call("myinsert", 3, "old", 2)
>>   # test that insert produces a duplicate key error
>> -call("myinsert", 3, 'old', 2)
>> +call("myinsert", 3, "old", 2)
>>   admin("space:update({3}, {{'=', 1, 4}, {'=', 2, 'new'}})")
>>   admin("space:insert(space:get{3}:update{{'=', 1, 4}, {'=', 2, 
>> 'new'}}) space:delete{3}")
>>   call("space:get", 4)
>> @@ -136,19 +138,19 @@ admin("index = space:create_index('primary', { 
>> type = 'tree' })")
>>       def lua_eval(name, *args):
>> -    print 'eval (%s)(%s)' % (name, ','.join([ str(arg) for arg in 
>> args]))
>> -    print '---'
>> -    print iproto.py_con.eval(name, args)
>> +    print("eval ({})({})".format(name, ",".join([ str(arg) for arg 
>> in args])))
>> +    print("---")
>> +    print(iproto.py_con.eval(name, args))
>>     def lua_call(name, *args):
>> -    print 'call %s(%s)' % (name, ','.join([ str(arg) for arg in args]))
>> -    print '---'
>> -    print iproto.py_con.call(name, args)
>> +    print("call {}({})".format(name, ",".join([ str(arg) for arg in 
>> args])))
>> +    print("---")
>> +    print(iproto.py_con.call(name, args))
>>     def test(expr, *args):
>> -    lua_eval('return ' + expr, *args)
>> -    admin('function f(...) return ' + expr + ' end')
>> -    lua_call('f', *args)
>> +    lua_eval("return " + expr, *args)
>> +    admin("function f(...) return " + expr + " end")
>> +    lua_call("f", *args)
>>     # Return values
>>   test("1")
>> @@ -172,18 +174,18 @@ test("{t}")
>>   test("{t, t, t}")
>>   test("error('exception')")
>>   test("box.error(0)")
>> -test('...')
>> -test('...', 1, 2, 3)
>> -test('...',  None, None, None)
>> -test('...', { 'k1': 'v1', 'k2': 'v2'})
>> +test("...")
>> +test("...", 1, 2, 3)
>> +test("...",  None, None, None)
>> +test("...", { "k1": "v1", "k2": "v2"})
>>   # Transactions
>> -test('space:auto_increment({"transaction"})')
>> -test('space:select{}')
>> -test('box.begin(), space:auto_increment({"failed"}), box.rollback()')
>> -test('space:select{}')
>> -test('require("fiber").sleep(0)')
>> +test("space:auto_increment({'transaction'})")
>> +test("space:select{}")
>> +test("box.begin(), space:auto_increment({'failed'}), box.rollback()")
>> +test("space:select{}")
>> +test("require('fiber').sleep(0)")
>>   # Other
>> -lua_eval('!invalid expression')
>> +lua_eval("!invalid expression")
>>     admin("space:drop()")
>>   admin("box.schema.user.drop('test')")
>> diff --git a/test/box-py/iproto.result b/test/box-py/iproto.result
>> index 04e2e220c..0f2766871 100644
>> --- a/test/box-py/iproto.result
>> +++ b/test/box-py/iproto.result
>> @@ -1,21 +1,15 @@
>>   box.schema.user.grant('guest', 'read,write,execute', 'universe')
>>   ---
>>   ...
>> -
>>   #
>>   # iproto packages test
>>   #
>> -
>> -
>>   # Test bug #899343 (server assertion failure on incorrect packet)
>> -
>>   # send the package with invalid length
>>   12
>>   # check that is server alive
>>   True
>> -
>> -#  Test gh-206 "Segfault if sending IPROTO package without `KEY` field"
>> -
>> +#  Test gh-206 'Segfault if sending IPROTO package without `KEY` field'
>>   IPROTO_SELECT
>>   query {'IPROTO_CODE': 1} {'IPROTO_SPACE_ID': 280}
>>   True
>> @@ -165,10 +159,8 @@ space:drop()
>>   box.schema.user.revoke('guest', 'read,write,execute', 'universe')
>>   ---
>>   ...
>> -
>>   # Test bugs gh-272, gh-1654 if the packet was incorrect, respond with
>>   # an error code and do not close connection
>> -
>>   sync=0, Invalid MsgPack - packet header
>>   sync=1234, Missing mandatory field 'space id' in request
>>   sync=5678, Read access to space '_user' is denied for user 'guest'
>> diff --git a/test/box-py/iproto.test.py b/test/box-py/iproto.test.py
>> index cdd1a71c5..5eccd40d3 100644
>> --- a/test/box-py/iproto.test.py
>> +++ b/test/box-py/iproto.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   import os
>>   import sys
>>   import struct
>> @@ -11,46 +13,42 @@ from lib.tarantool_connection import 
>> TarantoolConnection
>>     admin("box.schema.user.grant('guest', 'read,write,execute', 
>> 'universe')")
>>   -print """
>> -#
>> -# iproto packages test
>> -#
>> -"""
>> +print("#")
>> +print("# iproto packages test")
>> +print("#")
>>   -# opeing new connection to tarantool/box
>> +# opening new connection to tarantool/box
>>   conn = TarantoolConnection(server.iproto.host, server.iproto.port)
>>   conn.connect()
>>   s = conn.socket
>>   -print """
>> -# Test bug #899343 (server assertion failure on incorrect packet)
>> -"""
>> -print "# send the package with invalid length"
>> -invalid_request = struct.pack('<LLL', 1, 4294967290, 1)
>> -print s.send(invalid_request)
>> -print "# check that is server alive"
>> -print iproto.py_con.ping() > 0
>> +print("# Test bug #899343 (server assertion failure on incorrect 
>> packet)")
>> +print("# send the package with invalid length")
>> +invalid_request = struct.pack("<LLL", 1, 4294967290, 1)
>> +print(s.send(invalid_request))
>> +print("# check that is server alive")
>> +print(iproto.py_con.ping() > 0)
>>     # closing connection
>>   s.close()
>>     key_names = {}
>> -for (k,v) in globals().items():
>> -    if type(k) == str and k.startswith('IPROTO_') and type(v) == int:
>> +for (k,v) in list(globals().items()):
>
> 2) Why do you need a "list"?(here and below)
> You don't change the dictionary during iteration.
> If I'm right, please check over such changes.

Because Python 3 raise exception "dictionary changed size during iteration".

Also this change moved to a separate commit.

>
>
>> +    if type(k) == str and k.startswith("IPROTO_") and type(v) == int:
>>           key_names[v] = k
>>     def repr_dict(todump):
>>       d = {}
>> -    for (k, v) in todump.items():
>> +    for (k, v) in list(todump.items()):
>>           k_name = key_names.get(k, k)
>>           d[k_name] = v
>>       return repr(d)
>>     def test(header, body):
>>       # Connect and authenticate
>> -    c = Connection('localhost', server.iproto.port)
>> +    c = Connection("localhost", server.iproto.port)
>>       c.connect()
>> -    print 'query', repr_dict(header), repr_dict(body)
>> +    print("query", repr_dict(header), repr_dict(body))
>>       header = msgpack.dumps(header)
>>       body = msgpack.dumps(body)
>>       query = msgpack.dumps(len(header) + len(body)) + header + body
>> @@ -59,36 +57,34 @@ def test(header, body):
>>       try:
>>           s.send(query)
>>       except OSError as e:
>> -        print '   => ', 'Failed to send request'
>> +        print("   => ", "Failed to send request")
>>       c.close()
>> -    print iproto.py_con.ping() > 0
>> +    print(iproto.py_con.ping() > 0)
>>   -print """
>> -#  Test gh-206 "Segfault if sending IPROTO package without `KEY` field"
>> -"""
>> +print("#  Test gh-206 'Segfault if sending IPROTO package without 
>> `KEY` field'")
>>   -print "IPROTO_SELECT"
>> +print("IPROTO_SELECT")
>>   test({ IPROTO_CODE : REQUEST_TYPE_SELECT }, { IPROTO_SPACE_ID: 280 })
>> -print "\n"
>> +print("\n")
>>   -print "IPROTO_DELETE"
>> +print("IPROTO_DELETE")
>>   test({ IPROTO_CODE : REQUEST_TYPE_DELETE }, { IPROTO_SPACE_ID: 280 })
>> -print "\n"
>> +print("\n")
>>   -print "IPROTO_UPDATE"
>> +print("IPROTO_UPDATE")
>>   test({ IPROTO_CODE : REQUEST_TYPE_UPDATE }, { IPROTO_SPACE_ID: 280 })
>>   test({ IPROTO_CODE : REQUEST_TYPE_UPDATE },
>>        { IPROTO_SPACE_ID: 280, IPROTO_KEY: (1, )})
>> -print "\n"
>> +print("\n")
>>   -print "IPROTO_REPLACE"
>> +print("IPROTO_REPLACE")
>>   test({ IPROTO_CODE : REQUEST_TYPE_REPLACE }, { IPROTO_SPACE_ID: 280 })
>> -print "\n"
>> +print("\n")
>>   -print "IPROTO_CALL"
>> +print("IPROTO_CALL")
>>   test({ IPROTO_CODE : REQUEST_TYPE_CALL }, {})
>> -test({ IPROTO_CODE : REQUEST_TYPE_CALL }, { IPROTO_KEY: ('procname', 
>> )})
>> -print "\n"
>> +test({ IPROTO_CODE : REQUEST_TYPE_CALL }, { IPROTO_KEY: ("procname", 
>> )})
>> +print("\n")
>>     # gh-434 Tarantool crashes on multiple iproto requests with WAL 
>> enabled
>>   admin("box.cfg.wal_mode")
>> @@ -96,7 +92,7 @@ admin("space = box.schema.space.create('test', { id 
>> = 567 })")
>>   admin("index = space:create_index('primary', { type = 'hash' })")
>>   admin("box.schema.user.grant('guest', 'read,write,execute', 
>> 'space', 'test')")
>>   -c = Connection('localhost', server.iproto.port)
>> +c = Connection("localhost", server.iproto.port)
>>   c.connect()
>>   request1 = RequestInsert(c, 567, [1, "baobab"])
>>   request2 = RequestInsert(c, 567, [2, "obbaba"])
>> @@ -104,11 +100,11 @@ s = c._socket
>>   try:
>>       s.send(bytes(request1) + bytes(request2))
>>   except OSError as e:
>> -    print '   => ', 'Failed to send request'
>> +    print("   => ", "Failed to send request")
>>   response1 = Response(c, c._read_response())
>>   response2 = Response(c, c._read_response())
>> -print response1.__str__()
>> -print response2.__str__()
>> +print(response1.__str__())
>> +print(response2.__str__())
>>     request1 = RequestInsert(c, 567, [3, "occama"])
>>   request2 = RequestSelect(c, 567, 0, [1], 0, 1, 0)
>> @@ -116,11 +112,11 @@ s = c._socket
>>   try:
>>       s.send(bytes(request1) + bytes(request2))
>>   except OSError as e:
>> -    print '   => ', 'Failed to send request'
>> +    print("   => ", "Failed to send request")
>>   response1 = Response(c, c._read_response())
>>   response2 = Response(c, c._read_response())
>> -print response1.__str__()
>> -print response2.__str__()
>> +print(response1.__str__())
>> +print(response2.__str__())
>>     request1 = RequestSelect(c, 567, 0, [2], 0, 1, 0)
>>   request2 = RequestInsert(c, 567, [4, "ockham"])
>> @@ -128,11 +124,11 @@ s = c._socket
>>   try:
>>       s.send(bytes(request1) + bytes(request2))
>>   except OSError as e:
>> -    print '   => ', 'Failed to send request'
>> +    print("   => ", "Failed to send request")
>>   response1 = Response(c, c._read_response())
>>   response2 = Response(c, c._read_response())
>> -print response1.__str__()
>> -print response2.__str__()
>> +print(response1.__str__())
>> +print(response2.__str__())
>>     request1 = RequestSelect(c, 567, 0, [1], 0, 1, 0)
>>   request2 = RequestSelect(c, 567, 0, [2], 0, 1, 0)
>> @@ -140,11 +136,11 @@ s = c._socket
>>   try:
>>       s.send(bytes(request1) + bytes(request2))
>>   except OSError as e:
>> -    print '   => ', 'Failed to send request'
>> +    print("   => ", "Failed to send request")
>>   response1 = Response(c, c._read_response())
>>   response2 = Response(c, c._read_response())
>> -print response1.__str__()
>> -print response2.__str__()
>> +print(response1.__str__())
>> +print(response2.__str__())
>>     c.close()
>>   @@ -176,7 +172,7 @@ class RawSelect(Request):
>>           self._body = request_body
>>     c = iproto.py_con
>> -space = c.space('test')
>> +space = c.space("test")
>>   space_id = space.space_no
>>     TESTS = [
>> @@ -192,34 +188,34 @@ TESTS = [
>>   for test in TESTS:
>>       it = iter(test)
>>       size = next(it)
>> -    print 'STR', size
>> -    print '--'
>> +    print("STR", size)
>> +    print("--")
>>       for fmt in it:
>> -        print '0x' + fmt.encode('hex'), '=>',
>> -        field = '*' * size
>> +        print("0x" + fmt.encode("hex"), "=>", end=" ")
>> +        field = "*" * size
>>           c._send_request(RawInsert(c, space_id, "\x91" + fmt + field))
>>           tuple = space.select(field)[0]
>> -        print len(tuple[0])== size and 'ok' or 'fail',
>> +        print(len(tuple[0])== size and "ok" or "fail", end=" ")
>>           it2 = iter(test)
>>           next(it2)
>>           for fmt2 in it2:
>>               tuple = c._send_request(RawSelect(c, space_id,
>>                   "\x91" + fmt2 + field))[0]
>> -            print len(tuple[0]) == size and 'ok' or 'fail',
>> +            print(len(tuple[0]) == size and "ok" or "fail", end=" ")
>>           tuple = space.delete(field)[0]
>> -        print len(tuple[0]) == size and 'ok' or 'fail',
>> -        print
>> -    print
>> +        print(len(tuple[0]) == size and "ok" or "fail", end="")
>> +        print()
>> +    print()
>>     -print 'Test of schema_id in iproto.'
>> -c = Connection('localhost', server.iproto.port)
>> +print("Test of schema_id in iproto.")
>> +c = Connection("localhost", server.iproto.port)
>>   c.connect()
>>   s = c._socket
>>     def receive_response():
>> -    resp_len = ''
>> -    resp_headerbody = ''
>> +    resp_len = ""
>> +    resp_headerbody = ""
>>       resp_header = {}
>>       resp_body = {}
>>       try:
>> @@ -235,10 +231,10 @@ def receive_response():
>>           resp_header = unpacker.unpack()
>>           resp_body = unpacker.unpack()
>>       except OSError as e:
>> -        print '   => ', 'Failed to recv response'
>> +        print("   => ", "Failed to recv response")
>>       res = {}
>> -    res['header'] = resp_header
>> -    res['body'] = resp_body
>> +    res["header"] = resp_header
>> +    res["body"] = resp_body
>>       return res
>>     def test_request(req_header, req_body):
>> @@ -249,7 +245,7 @@ def test_request(req_header, req_body):
>>       try:
>>           s.send(query)
>>       except OSError as e:
>> -        print '   => ', 'Failed to send request'
>> +        print("   => ", "Failed to send request")
>>       return receive_response()
>>     header = { IPROTO_CODE : REQUEST_TYPE_SELECT}
>> @@ -260,62 +256,62 @@ body = { IPROTO_SPACE_ID: space_id,
>>       IPROTO_OFFSET: 0,
>>       IPROTO_LIMIT: 1 }
>>   resp = test_request(header, body)
>> -print 'Normal connect done w/o errors:', resp['header'][0] == 0
>> -print 'Got schema_id:', resp['header'][5] > 0
>> -schema_id = resp['header'][5]
>> +print("Normal connect done w/o errors:", resp["header"][0] == 0)
>> +print("Got schema_id:", resp["header"][5] > 0)
>> +schema_id = resp["header"][5]
>>     header = { IPROTO_CODE : REQUEST_TYPE_SELECT, 5 : 0 }
>>   resp = test_request(header, body)
>> -print 'Zero-schema_id connect done w/o errors:', resp['header'][0] == 0
>> -print 'Same schema_id:', resp['header'][5] == schema_id
>> +print("Zero-schema_id connect done w/o errors:", resp["header"][0] 
>> == 0)
>> +print("Same schema_id:", resp["header"][5] == schema_id)
>>     header = { IPROTO_CODE : REQUEST_TYPE_SELECT, 5 : schema_id }
>>   resp = test_request(header, body)
>> -print 'Normal connect done w/o errors:', resp['header'][0] == 0
>> -print 'Same schema_id:', resp['header'][5] == schema_id
>> +print("Normal connect done w/o errors:", resp["header"][0] == 0)
>> +print("Same schema_id:", resp["header"][5] == schema_id)
>>     header = { IPROTO_CODE : REQUEST_TYPE_SELECT, 5 : schema_id + 1 }
>>   resp = test_request(header, body)
>> -print 'Wrong schema_id leads to error:', resp['header'][0] != 0
>> -print 'Same schema_id:', resp['header'][5] == schema_id
>> +print("Wrong schema_id leads to error:", resp["header"][0] != 0)
>> +print("Same schema_id:", resp["header"][5] == schema_id)
>>     admin("space2 = box.schema.create_space('test2')")
>>     header = { IPROTO_CODE : REQUEST_TYPE_SELECT, 5 : schema_id }
>>   resp = test_request(header, body)
>> -print 'Schema changed -> error:', resp['header'][0] != 0
>> -print 'Got another schema_id:', resp['header'][5] != schema_id
>> +print("Schema changed -> error:", resp["header"][0] != 0)
>> +print("Got another schema_id:", resp["header"][5] != schema_id)
>>     #
>>   # gh-2334 Lost SYNC in JOIN response.
>>   #
>> -uuid = '0d5bd431-7f3e-4695-a5c2-82de0a9cbc95'
>> +uuid = "0d5bd431-7f3e-4695-a5c2-82de0a9cbc95"
>>   header = { IPROTO_CODE: REQUEST_TYPE_JOIN, IPROTO_SYNC: 2334 }
>>   body = { IPROTO_SERVER_UUID: uuid }
>>   resp = test_request(header, body)
>> -if resp['header'][IPROTO_SYNC] == 2334:
>> +if resp["header"][IPROTO_SYNC] == 2334:
>>       i = 1
>>       while i < 3:
>>           resp = receive_response()
>> -        if resp['header'][IPROTO_SYNC] != 2334:
>> -            print 'Bad sync on response with number ', i
>> +        if resp["header"][IPROTO_SYNC] != 2334:
>> +            print("Bad sync on response with number ", i)
>>               break
>> -        if resp['header'][IPROTO_CODE] == REQUEST_TYPE_OK:
>> +        if resp["header"][IPROTO_CODE] == REQUEST_TYPE_OK:
>>               i += 1
>>       else:
>> -        print 'Sync ok'
>> +        print("Sync ok")
>>   else:
>> -    print 'Bad first sync'
>> +    print("Bad first sync")
>>     #
>>   # Try incorrect JOIN. SYNC must be also returned.
>>   #
>> -body[IPROTO_SERVER_UUID] = 'unknown'
>> +body[IPROTO_SERVER_UUID] = "unknown"
>>   resp = test_request(header, body)
>> -if resp['header'][IPROTO_SYNC] == 2334:
>> -    print('Sync on error is ok')
>> +if resp["header"][IPROTO_SYNC] == 2334:
>> +    print("Sync on error is ok")
>>   else:
>> -    print('Sync on error is not ok')
>> +    print("Sync on error is not ok")
>>     c.close()
>>   @@ -332,8 +328,8 @@ admin("space:insert({1})")
>>   admin("space:insert({2, 'Music'})")
>>   admin("space:insert({3, 'Length', 93})")
>>   -iproto.py_con.space('gh1280').select([])
>> -iproto.py_con.space('gh1280').select(list())
>> +iproto.py_con.space("gh1280").select([])
>> +iproto.py_con.space("gh1280").select(list())
>>       admin("space:drop()")
>> @@ -344,26 +340,24 @@ admin("box.schema.user.revoke('guest', 
>> 'read,write,execute', 'universe')")
>>   # gh-272 if the packet was incorrect, respond with an error code
>>   # gh-1654 do not close connnection on invalid request
>>   #
>> -print """
>> -# Test bugs gh-272, gh-1654 if the packet was incorrect, respond with
>> -# an error code and do not close connection
>> -"""
>> +print("# Test bugs gh-272, gh-1654 if the packet was incorrect, 
>> respond with")
>> +print("# an error code and do not close connection")
>>   -c = Connection('localhost', server.iproto.port)
>> +c = Connection("localhost", server.iproto.port)
>>   c.connect()
>>   s = c._socket
>>   header = { "hello": "world"}
>>   body = { "bug": 272 }
>>   resp = test_request(header, body)
>> -print 'sync=%d, %s' % (resp['header'][IPROTO_SYNC], 
>> resp['body'].get(IPROTO_ERROR))
>> +print("sync={}, {}".format(resp["header"][IPROTO_SYNC], 
>> resp["body"].get(IPROTO_ERROR)))
>>   header = { IPROTO_CODE : REQUEST_TYPE_SELECT }
>>   header[IPROTO_SYNC] = 1234
>>   resp = test_request(header, body)
>> -print 'sync=%d, %s' % (resp['header'][IPROTO_SYNC], 
>> resp['body'].get(IPROTO_ERROR))
>> +print("sync={}, {}".format(resp["header"][IPROTO_SYNC], 
>> resp["body"].get(IPROTO_ERROR)))
>>   header[IPROTO_SYNC] = 5678
>>   body = { IPROTO_SPACE_ID: 304, IPROTO_KEY: [], IPROTO_LIMIT: 1 }
>>   resp = test_request(header, body)
>> -print 'sync=%d, %s' % (resp['header'][IPROTO_SYNC], 
>> resp['body'].get(IPROTO_ERROR))
>> +print("sync={}, {}".format(resp["header"][IPROTO_SYNC], 
>> resp["body"].get(IPROTO_ERROR)))
>>   c.close()
>>     @@ -371,7 +365,7 @@ admin("space = 
>> box.schema.space.create('test_index_base', { id = 568 })")
>>   admin("index = space:create_index('primary', { type = 'hash' })")
>>   admin("box.schema.user.grant('guest', 'read,write,execute', 
>> 'space', 'test_index_base')")
>>   -c = Connection('localhost', server.iproto.port)
>> +c = Connection("localhost", server.iproto.port)
>>   c.connect()
>>   s = c._socket
>>   @@ -379,32 +373,32 @@ request = RequestInsert(c, 568, [1, 0, 0, 0])
>>   try:
>>       s.send(bytes(request))
>>   except OSError as e:
>> -    print '   => ', 'Failed to send request'
>> +    print("   => ", "Failed to send request")
>>   response = Response(c, c._read_response())
>> -print response.__str__()
>> +print(response.__str__())
>>   -request = RequestUpdate(c, 568, 0, [1], [['+', 2, 1], ['-', 3, 1]])
>> +request = RequestUpdate(c, 568, 0, [1], [["+", 2, 1], ["-", 3, 1]])
>>   try:
>>       s.send(bytes(request))
>>   except OSError as e:
>> -    print '   => ', 'Failed to send request'
>> +    print("   => ", "Failed to send request")
>>   response = Response(c, c._read_response())
>> -print response.__str__()
>> +print(response.__str__())
>>   -request = RequestUpsert(c, 568, 0, [1, 0, 0, 0], [['+', 2, 1], 
>> ['-', 3, 1]])
>> +request = RequestUpsert(c, 568, 0, [1, 0, 0, 0], [["+", 2, 1], ["-", 
>> 3, 1]])
>>   try:
>>       s.send(bytes(request))
>>   except OSError as e:
>> -    print '   => ', 'Failed to send request'
>> +    print("   => ", "Failed to send request")
>>   response = Response(c, c._read_response())
>>     request = RequestSelect(c, 568, 0, [1], 0, 1, 0)
>>   try:
>>       s.send(bytes(request))
>>   except OSError as e:
>> -    print '   => ', 'Failed to send request'
>> +    print("   => ", "Failed to send request")
>>   response = Response(c, c._read_response())
>> -print response.__str__()
>> +print(response.__str__())
>>     c.close()
>>   @@ -414,15 +408,15 @@ c.close()
>>   admin("function kek() return 'kek' end")
>>   admin("box.schema.user.grant('guest', 'read,write,execute', 
>> 'universe')")
>>   -c = Connection('localhost', server.iproto.port)
>> +c = Connection("localhost", server.iproto.port)
>>   c.connect()
>>   s = c._socket
>>     header = { IPROTO_CODE: REQUEST_TYPE_CALL, IPROTO_SYNC: 100 }
>> -body = { IPROTO_FUNCTION_NAME: 'kek' }
>> +body = { IPROTO_FUNCTION_NAME: "kek" }
>>   resp = test_request(header, body)
>> -print "Sync: ", resp['header'][IPROTO_SYNC]
>> -print "Retcode: ", resp['body'][IPROTO_DATA]
>> +print("Sync: ", resp["header"][IPROTO_SYNC])
>> +print("Retcode: ", resp["body"][IPROTO_DATA])
>>     c.close()
>>   diff --git a/test/box-py/print.result b/test/box-py/print.result
>> index b2d58d7de..7a3282d79 100644
>> --- a/test/box-py/print.result
>> +++ b/test/box-py/print.result
>> @@ -1,4 +1,4 @@
>> -print("Hello, world")
>> +print('Hello, world')
>>   ---
>>   ...
>>   io = require('io')
>> @@ -17,9 +17,9 @@ require('fiber').sleep(0.01)
>>   ...
>>   Check log line (Hello):
>>   ---
>> -- "logfile contains "Hello""
>> +- 'logfile contains 'Hello''
>>   ...
>>   Check log line (Ehllo):
>>   ---
>> -- "logfile contains "Ehllo""
>> +- 'logfile contains 'Ehllo''
>>   ...
>> diff --git a/test/box-py/print.test.py b/test/box-py/print.test.py
>> index 5083bdf42..37f07cab8 100644
>> --- a/test/box-py/print.test.py
>> +++ b/test/box-py/print.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   import tarantool
>>     import sys
>> @@ -6,7 +8,7 @@ import re
>>     log = server.get_log()
>>   -admin('print("Hello, world")')
>> +admin("print('Hello, world')")
>>   admin("io = require('io')")
>>     admin("""local f = require('fiber').create(
>> @@ -18,17 +20,17 @@ admin("""local f = require('fiber').create(
>>   admin("require('fiber').sleep(0.01)")
>>     print("Check log line (Hello):")
>> -print('---')
>> -if log.seek_once('Hello') >= 0:
>> -    print('- "logfile contains "Hello""')
>> +print("---")
>> +if log.seek_once("Hello") >= 0:
>> +    print("- 'logfile contains \'Hello\''")
>
> 3) \ - not necessary. (here and below)

reverted

--- a/test/box-py/print.test.py
+++ b/test/box-py/print.test.py
@@ -22,15 +22,15 @@ admin("require('fiber').sleep(0.01)")
  print("Check log line (Hello):")
  print("---")
  if log.seek_once("Hello") >= 0:
-    print("- 'logfile contains \'Hello\''")
+    print("- 'logfile contains 'Hello''")
  else:
-    print("- 'logfile does not contain \'Hello\''")
+    print("- 'logfile does not contain 'Hello''")
  print("...")

  print("Check log line (Ehllo):")
  print("---")
  if log.seek_once("Ehllo") >= 0:
-    print("- 'logfile contains \'Ehllo\''")
+    print("- 'logfile contains 'Ehllo''")
  else:
-    print("- 'logfile does not contain \'Ehllo\''")
+    print("- 'logfile does not contain 'Ehllo''")
  print("...")

>
>>   else:
>> -    print('- "logfile does not contain "Hello""')
>> -print('...')
>> +    print("- 'logfile does not contain \'Hello\''")
>> +print("...")
>>     print("Check log line (Ehllo):")
>> -print('---')
>> -if log.seek_once('Ehllo') >= 0:
>> -    print('- "logfile contains "Ehllo""')
>> +print("---")
>> +if log.seek_once("Ehllo") >= 0:
>> +    print("- 'logfile contains \'Ehllo\''")
>>   else:
>> -    print('- "logfile does not contain "Ehllo""')
>> -print('...')
>> +    print("- 'logfile does not contain \'Ehllo\''")
>> +print("...")
>> diff --git a/test/box-py/snapshot.result b/test/box-py/snapshot.result
>> index fbaab912f..dfd1a00a2 100644
>> --- a/test/box-py/snapshot.result
>> +++ b/test/box-py/snapshot.result
>> @@ -10,7 +10,6 @@ index = space:create_index('primary', { type = 
>> 'hash' })
>>   # file that already exists. Verify also that any other
>>   # error that happens when saving snapshot is propagated
>>   # to the caller.
>> -
>>   space:insert{1, 'first tuple'}
>>   ---
>>   - [1, 'first tuple']
>> @@ -44,9 +43,8 @@ space:delete{2}
>>   ...
>>   #
>>   # A test case for http://bugs.launchpad.net/bugs/727174
>> -# "tarantool_box crashes when saving snapshot on SIGUSR1"
>> +# 'tarantool_box crashes when saving snapshot on SIGUSR1'
>>   #
>> -
>>   # Increment the lsn number, to make sure there is no such snapshot yet
>>   #
>>   space:insert{1, 'Test tuple'}
>> diff --git a/test/box-py/snapshot.test.py b/test/box-py/snapshot.test.py
>> index 2bfb8f621..91ff0c5dd 100644
>> --- a/test/box-py/snapshot.test.py
>> +++ b/test/box-py/snapshot.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   import os
>>   import sys
>>   import yaml
>> @@ -9,13 +11,13 @@ sys.stdout.push_filter(server.vardir, "<dir>")
>>   admin("space = box.schema.space.create('tweedledum')")
>>   admin("index = space:create_index('primary', { type = 'hash' })")
>>   -print """#
>> -# A test case for: http://bugs.launchpad.net/bugs/686411
>> -# Check that 'box.snapshot()' does not overwrite a snapshot
>> -# file that already exists. Verify also that any other
>> -# error that happens when saving snapshot is propagated
>> -# to the caller.
>> -"""
>> +print("#")
>> +print("# A test case for: http://bugs.launchpad.net/bugs/686411")
>> +print("# Check that 'box.snapshot()' does not overwrite a snapshot")
>> +print("# file that already exists. Verify also that any other")
>> +print("# error that happens when saving snapshot is propagated")
>> +print("# to the caller.")
>> +
>>   admin("space:insert{1, 'first tuple'}")
>>   admin("box.snapshot()")
>>   #
>> @@ -38,14 +40,13 @@ os.rmdir(snapshot)
>>   admin("space:delete{1}")
>>   admin("space:delete{2}")
>>   -print """#
>> -# A test case for http://bugs.launchpad.net/bugs/727174
>> -# "tarantool_box crashes when saving snapshot on SIGUSR1"
>> -#"""
>> +print("#")
>> +print("# A test case for http://bugs.launchpad.net/bugs/727174")
>> +print("# 'tarantool_box crashes when saving snapshot on SIGUSR1'")
>> +print("#")
>>   -print """
>> -# Increment the lsn number, to make sure there is no such snapshot yet
>> -#"""
>> +print("# Increment the lsn number, to make sure there is no such 
>> snapshot yet")
>> +print("#")
>>     admin("space:insert{1, 'Test tuple'}")
>>   @@ -65,9 +66,9 @@ while not os.access(snapshot, os.F_OK) and 
>> iteration < MAX_ITERATIONS:
>>     iteration = iteration + 1
>>     if iteration == 0 or iteration >= MAX_ITERATIONS:
>> -  print "Snapshot is missing."
>> +  print("Snapshot is missing.")
>>   else:
>> -  print "Snapshot exists."
>> +  print("Snapshot exists.")
>>     admin("space:drop()")
>>   diff --git a/test/long_run-py/finalizers.result 
>> b/test/long_run-py/finalizers.result
>> index 29313694c..2d2866b35 100644
>> --- a/test/long_run-py/finalizers.result
>> +++ b/test/long_run-py/finalizers.result
>> @@ -1 +1 @@
>> -Expected error: <class 'lib.tarantool_server.TarantoolStartError'>
>> +('Expected error:', <class 'lib.tarantool_server.TarantoolStartError'>)
>> diff --git a/test/long_run-py/finalizers.test.py 
>> b/test/long_run-py/finalizers.test.py
>> index 96118e607..07bceb6b9 100644
>> --- a/test/long_run-py/finalizers.test.py
>> +++ b/test/long_run-py/finalizers.test.py
>> @@ -5,12 +5,12 @@ import yaml
>>   from lib.tarantool_server import TarantoolServer
>>     server = TarantoolServer(server.ini)
>> -server.script = 'long_run-py/lua/finalizers.lua'
>> -server.vardir = os.path.join(server.vardir, 'finalizers')
>> +server.script = "long_run-py/lua/finalizers.lua"
>> +server.vardir = os.path.join(server.vardir, "finalizers")
>>   server.crash_expected = True
>>   try:
>>       server.deploy()
>>   except:
>> -    print "Expected error:", sys.exc_info()[0]
>> +    print("Expected error:", sys.exc_info()[0])
>>   else:
>> -    print "Error! exception did not occur"
>> +    print("Error! exception did not occur")
>> diff --git a/test/replication-py/cluster.result 
>> b/test/replication-py/cluster.result
>> index f68a6af7c..9bc8a7393 100644
>> --- a/test/replication-py/cluster.result
>> +++ b/test/replication-py/cluster.result
>> @@ -93,7 +93,7 @@ box.info.vclock[2] == nil
>>   -------------------------------------------------------------
>>   Modify data to bump LSN and check box.info
>>   -------------------------------------------------------------
>> -box.space._schema:insert{"test", 48}
>> +box.space._schema:insert{'test', 48}
>>   ---
>>   - ['test', 48]
>>   ...
>> @@ -114,7 +114,7 @@ box.cfg{ replication_source = 
>> '<replication_source>' }
>>   -------------------------------------------------------------
>>   Disconnect replica from master
>>   -------------------------------------------------------------
>> -box.cfg { replication_source = "" }
>> +box.cfg { replication_source = '' }
>>   ---
>>   ...
>>   -------------------------------------------------------------
>> @@ -131,7 +131,7 @@ box.info.vclock[2] == 1
>>   -------------------------------------------------------------
>>   Modify data to bump LSN on replica
>>   -------------------------------------------------------------
>> -box.space._schema:insert{"tost", 49}
>> +box.space._schema:insert{'tost', 49}
>>   ---
>>   - ['tost', 49]
>>   ...
>> diff --git a/test/replication-py/cluster.test.py 
>> b/test/replication-py/cluster.test.py
>> index 088ca9c34..c770a9bc9 100644
>> --- a/test/replication-py/cluster.test.py
>> +++ b/test/replication-py/cluster.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   import os
>>   import sys
>>   import re
>> @@ -7,19 +9,19 @@ import glob
>>   from lib.tarantool_server import TarantoolServer
>>     ## Get cluster uuid
>> -cluster_uuid = ''
>> +cluster_uuid = ""
>>   try:
>>       cluster_uuid = 
>> yaml.safe_load(server.admin("box.space._schema:get('cluster')",
>>           silent = True))[0][1]
>> -    uuid.UUID('{' + cluster_uuid + '}')
>> -    print 'ok - cluster uuid'
>> +    uuid.UUID("{" + cluster_uuid + "}")
>> +    print("ok - cluster uuid")
>>   except Exception as e:
>> -    print 'not ok - invalid cluster uuid', e
>> +    print("not ok - invalid cluster uuid", e)
>>     server.iproto.reconnect() # re-connect with new permissions
>> -print '-------------------------------------------------------------'
>> -print ' gh-696: Check global READ permissions for replication'
>> -print '-------------------------------------------------------------'
>> +print("-------------------------------------------------------------")
>> +print(" gh-696: Check global READ permissions for replication")
>> +print("-------------------------------------------------------------")
>>       # Generate replica cluster UUID
>> @@ -27,56 +29,59 @@ replica_uuid = str(uuid.uuid4())
>>     ## Universal read permission is required to perform JOIN/SUBSCRIBE
>>   rows = list(server.iproto.py_con.join(replica_uuid))
>> -print len(rows) == 1 and rows[0].return_message.find('Read access') 
>> >= 0 and \
>> -    'ok' or 'not ok', '-', 'join without read permissions on universe'
>> +status = len(rows) == 1 and rows[0].return_message.find("Read 
>> access") >= 0 and \
>> +        "ok" or "not ok"
>> +print("{} - join without read permissions on universe".format(status))
>>   rows = list(server.iproto.py_con.subscribe(cluster_uuid, 
>> replica_uuid))
>> -print len(rows) == 1 and rows[0].return_message.find('Read access') 
>> >= 0 and \
>> -    'ok' or 'not ok', '-', 'subscribe without read permissions on 
>> universe'
>> +status = len(rows) == 1 and rows[0].return_message.find("Read 
>> access") >= 0 and \
>> +        "ok" or "not ok"
>> +print("{} - subscribe without read permissions on 
>> universe".format(status))
>>   ## Write permission to space `_cluster` is required to perform JOIN
>>   server.admin("box.schema.user.grant('guest', 'read', 'universe')")
>>   server.iproto.reconnect() # re-connect with new permissions
>>   rows = list(server.iproto.py_con.join(replica_uuid))
>> -print len(rows) == 1 and rows[0].return_message.find('Write access') 
>> >= 0 and \
>> -    'ok' or 'not ok', '-', 'join without write permissions to _cluster'
>> +status = len(rows) == 1 and rows[0].return_message.find("Write 
>> access") >= 0 and \
>> +        "ok" or "not ok"
>> +print("{} - join without write permissions to _cluster".format(status))
>>     def check_join(msg):
>>       ok = True
>>       for resp in server.iproto.py_con.join(replica_uuid):
>>           if resp._return_code != 0:
>> -            print 'not ok', '-', msg, resp.return_message
>> +            print("not ok - {} {}".format(msg, resp.return_message))
>>               ok = False
>>         server.iproto.reconnect() # the only way to stop JOIN
>>       if not ok:
>>           return
>> -    tuples = 
>> server.iproto.py_con.space('_cluster').select(replica_uuid, index = 1)
>> +    tuples = 
>> server.iproto.py_con.space("_cluster").select(replica_uuid, index = 1)
>>       if len(tuples) == 0:
>> -        print 'not ok', '-', msg, 'missing entry in _cluster'
>> +        print("not ok - {} missing entry in _cluster".format(msg))
>>           return
>>       server_id = tuples[0][0]
>> -    print 'ok', '-', msg
>> +    print("ok - {}".format(msg))
>>       return server_id
>>     ## JOIN with permissions
>>   server.admin("box.schema.user.grant('guest', 'write', 'space', 
>> '_cluster')")
>>   server.iproto.reconnect() # re-connect with new permissions
>> -server_id = check_join('join with granted permissions')
>> -server.iproto.py_con.space('_cluster').delete(server_id)
>> +server_id = check_join("join with granted permissions")
>> +server.iproto.py_con.space("_cluster").delete(server_id)
>>     # JOIN with granted role
>>   server.admin("box.schema.user.revoke('guest', 'read', 'universe')")
>>   server.admin("box.schema.user.revoke('guest', 'write', 'space', 
>> '_cluster')")
>>   server.admin("box.schema.user.grant('guest', 'replication')")
>>   server.iproto.reconnect() # re-connect with new permissions
>> -server_id = check_join('join with granted role')
>> -server.iproto.py_con.space('_cluster').delete(server_id)
>> +server_id = check_join("join with granted role")
>> +server.iproto.py_con.space("_cluster").delete(server_id)
>>   -print '-------------------------------------------------------------'
>> -print 'gh-434: Assertion if replace _cluster tuple for local server'
>> -print '-------------------------------------------------------------'
>> +print("-------------------------------------------------------------")
>> +print("gh-434: Assertion if replace _cluster tuple for local server")
>> +print("-------------------------------------------------------------")
>>   -master_uuid = server.get_param('uuid')
>> -sys.stdout.push_filter(master_uuid, '<master uuid>')
>> +master_uuid = server.get_param("uuid")
>> +sys.stdout.push_filter(master_uuid, "<master uuid>")
>>     # Invalid UUID
>>   server.admin("box.space._cluster:replace{1, 
>> require('uuid').NULL:str()}")
>> @@ -87,19 +92,19 @@ server.admin("box.space._cluster:replace{1, 
>> require('uuid').str()}")
>>   # Update of tail is OK
>>   server.admin("box.space._cluster:update(1, {{'=', 3, 'test'}})")
>>   -print '-------------------------------------------------------------'
>> -print 'gh-1140: Assertion if replace _cluster tuple for remote server'
>> -print '-------------------------------------------------------------'
>> +print("-------------------------------------------------------------")
>> +print("gh-1140: Assertion if replace _cluster tuple for remote server")
>> +print("-------------------------------------------------------------")
>>     # Test that insert is OK
>> -new_uuid = '0d5bd431-7f3e-4695-a5c2-82de0a9cbc95'
>> +new_uuid = "0d5bd431-7f3e-4695-a5c2-82de0a9cbc95"
>>   server.admin("box.space._cluster:insert{{5, '{0}'}}".format(new_uuid))
>>   server.admin("box.info.vclock[5] == nil")
>>     # Replace with the same UUID is OK
>>   server.admin("box.space._cluster:replace{{5, 
>> '{0}'}}".format(new_uuid))
>>   # Replace with a new UUID is not OK
>> -new_uuid = 'a48a19a3-26c0-4f8c-a5b5-77377bab389b'
>> +new_uuid = "a48a19a3-26c0-4f8c-a5b5-77377bab389b"
>>   server.admin("box.space._cluster:replace{{5, 
>> '{0}'}}".format(new_uuid))
>>   # Update of tail is OK
>>   server.admin("box.space._cluster:update(5, {{'=', 3, 'test'}})")
>> @@ -112,83 +117,83 @@ server.admin("box.info.vclock[5] == nil")
>>   server.stop()
>>   server.deploy()
>>   -print '-------------------------------------------------------------'
>> -print 'Start a new replica and check box.info on the start'
>> -print '-------------------------------------------------------------'
>> +print("-------------------------------------------------------------")
>> +print("Start a new replica and check box.info on the start")
>> +print("-------------------------------------------------------------")
>>   # master server
>>   master = server
>> -master_id = master.get_param('id')
>> +master_id = master.get_param("id")
>>     master.admin("box.schema.user.grant('guest', 'replication')")
>>     replica = TarantoolServer(server.ini)
>> -replica.script = 'replication-py/replica.lua'
>> +replica.script = "replication-py/replica.lua"
>>   replica.vardir = server.vardir
>>   replica.rpl_master = master
>>   replica.deploy()
>> -replica_id = replica.get_param('id')
>> -replica_uuid = replica.get_param('uuid')
>> -sys.stdout.push_filter(replica_uuid, '<replica uuid>')
>> -
>> -replica.admin('box.info.id == %d' % replica_id)
>> -replica.admin('not box.info.ro')
>> -replica.admin('box.info.lsn == 0')
>> -replica.admin('box.info.vclock[%d] == nil' % replica_id)
>> -
>> -print '-------------------------------------------------------------'
>> -print 'Modify data to bump LSN and check box.info'
>> -print '-------------------------------------------------------------'
>> -replica.admin('box.space._schema:insert{"test", 48}')
>> -replica.admin('box.info.lsn == 1')
>> -replica.admin('box.info.vclock[%d] == 1' % replica_id)
>> -
>> -print '-------------------------------------------------------------'
>> -print 'Connect master to replica'
>> -print '-------------------------------------------------------------'
>> -replication_source = yaml.safe_load(replica.admin('box.cfg.listen', 
>> silent = True))[0]
>> -sys.stdout.push_filter(replication_source, '<replication_source>')
>> -master.admin("box.cfg{ replication_source = '%s' }" % 
>> replication_source)
>> +replica_id = replica.get_param("id")
>> +replica_uuid = replica.get_param("uuid")
>> +sys.stdout.push_filter(replica_uuid, "<replica uuid>")
>> +
>> +replica.admin("box.info.id == {}".format(replica_id))
>> +replica.admin("not box.info.ro")
>> +replica.admin("box.info.lsn == 0")
>> +replica.admin("box.info.vclock[{}] == nil".format(replica_id))
>> +
>> +print("-------------------------------------------------------------")
>> +print("Modify data to bump LSN and check box.info")
>> +print("-------------------------------------------------------------")
>> +replica.admin("box.space._schema:insert{'test', 48}")
>> +replica.admin("box.info.lsn == 1")
>> +replica.admin("box.info.vclock[{}] == 1".format(replica_id))
>> +
>> +print("-------------------------------------------------------------")
>> +print("Connect master to replica")
>> +print("-------------------------------------------------------------")
>> +replication_source = yaml.safe_load(replica.admin("box.cfg.listen", 
>> silent = True))[0]
>> +sys.stdout.push_filter(replication_source, "<replication_source>")
>> +master.admin("box.cfg{{ replication_source = '{}' 
>> }}".format(replication_source))
>>   master.wait_lsn(replica_id, replica.get_lsn(replica_id))
>>   -print '-------------------------------------------------------------'
>> -print 'Disconnect replica from master'
>> -print '-------------------------------------------------------------'
>> -replica.admin('box.cfg { replication_source = "" }')
>> +print("-------------------------------------------------------------")
>> +print("Disconnect replica from master")
>> +print("-------------------------------------------------------------")
>> +replica.admin("box.cfg { replication_source = '' }")
>>   -print '-------------------------------------------------------------'
>> -print 'Unregister replica'
>> -print '-------------------------------------------------------------'
>> +print("-------------------------------------------------------------")
>> +print("Unregister replica")
>> +print("-------------------------------------------------------------")
>>   -master.admin('box.space._cluster:delete{%d} ~= nil' % replica_id)
>> +master.admin("box.space._cluster:delete{{{}}} ~= 
>> nil".format(replica_id))
>>     # gh-1219: LSN must not be removed from vclock on unregister
>> -master.admin('box.info.vclock[%d] == 1' % replica_id)
>> +master.admin("box.info.vclock[{}] == 1".format(replica_id))
>>   -print '-------------------------------------------------------------'
>> -print 'Modify data to bump LSN on replica'
>> -print '-------------------------------------------------------------'
>> -replica.admin('box.space._schema:insert{"tost", 49}')
>> -replica.admin('box.info.lsn == 2')
>> -replica.admin('box.info.vclock[%d] == 2' % replica_id)
>> +print("-------------------------------------------------------------")
>> +print("Modify data to bump LSN on replica")
>> +print("-------------------------------------------------------------")
>> +replica.admin("box.space._schema:insert{'tost', 49}")
>> +replica.admin("box.info.lsn == 2")
>> +replica.admin("box.info.vclock[{}] == 2".format(replica_id))
>>   -print '-------------------------------------------------------------'
>> -print 'Master must not crash then receives orphan rows from replica'
>> -print '-------------------------------------------------------------'
>> +print("-------------------------------------------------------------")
>> +print("Master must not crash then receives orphan rows from replica")
>> +print("-------------------------------------------------------------")
>>   -replication_source = 
>> yaml.safe_load(replica.admin('box.cfg.listen', silent = True))[0]
>> -sys.stdout.push_filter(replication_source, '<replication>')
>> -master.admin("box.cfg{ replication = '%s' }" % replication_source)
>> +replication_source = yaml.safe_load(replica.admin("box.cfg.listen", 
>> silent = True))[0]
>> +sys.stdout.push_filter(replication_source, "<replication>")
>> +master.admin("box.cfg{{ replication = '{}' 
>> }}".format(replication_source))
>>     master.wait_lsn(replica_id, replica.get_lsn(replica_id))
>> -master.admin('box.info.vclock[%d] == 2' % replica_id)
>> +master.admin("box.info.vclock[{}] == 2".format(replica_id))
>>     master.admin("box.cfg{ replication = '' }")
>>   replica.stop()
>>   replica.cleanup()
>>   -print '-------------------------------------------------------------'
>> -print 'Start a new replica and check that server_id, LSN is re-used'
>> -print '-------------------------------------------------------------'
>> +print("-------------------------------------------------------------")
>> +print("Start a new replica and check that server_id, LSN is re-used")
>> +print("-------------------------------------------------------------")
>>     #
>>   # gh-1219: Proper removal of servers with non-zero LSN from _cluster
>> @@ -196,36 +201,36 @@ print 
>> '-------------------------------------------------------------'
>>   # Snapshot is required. Otherwise a relay will skip records made by 
>> previous
>>   # replica with the re-used id.
>>   master.admin("box.snapshot()")
>> -master.admin('box.info.vclock[%d] == 2' % replica_id)
>> +master.admin("box.info.vclock[{}] == 2".format(replica_id))
>>     replica = TarantoolServer(server.ini)
>> -replica.script = 'replication-py/replica.lua'
>> +replica.script = "replication-py/replica.lua"
>>   replica.vardir = server.vardir
>>   replica.rpl_master = master
>>   replica.deploy()
>>   replica.wait_lsn(master_id, master.get_lsn(master_id))
>>   # Check that replica_id was re-used
>> -replica.admin('box.info.id == %d' % replica_id)
>> -replica.admin('not box.info.ro')
>> +replica.admin("box.info.id == {}".format(replica_id))
>> +replica.admin("not box.info.ro")
>>   # All records were succesfully recovered.
>>   # Replica should have the same vclock as master.
>> -master.admin('box.info.vclock[%d] == 2' % replica_id)
>> -replica.admin('box.info.vclock[%d] == 2' % replica_id)
>> +master.admin("box.info.vclock[{}] == 2".format(replica_id))
>> +replica.admin("box.info.vclock[{}] == 2".format(replica_id))
>>     replica.stop()
>>   replica.cleanup()
>> -master.admin('box.space._cluster:delete{%d} ~= nil' % replica_id)
>> +master.admin("box.space._cluster:delete{{{}}} ~= 
>> nil".format(replica_id))
>>   -print '-------------------------------------------------------------'
>> -print 'JOIN replica to read-only master'
>> -print '-------------------------------------------------------------'
>> +print("-------------------------------------------------------------")
>> +print("JOIN replica to read-only master")
>> +print("-------------------------------------------------------------")
>>     # master server
>>   master = server
>> -master.admin('box.cfg { read_only = true }')
>> +master.admin("box.cfg { read_only = true }")
>>   #gh-1230 Assertion vclock_has on attempt to JOIN read-only master
>>   failed = TarantoolServer(server.ini)
>> -failed.script = 'replication-py/failed.lua'
>> +failed.script = "replication-py/failed.lua"
>>   failed.vardir = server.vardir
>>   failed.rpl_master = master
>>   failed.name = "failed"
>> @@ -235,16 +240,16 @@ try:
>>   except Exception as e:
>>       line = "ER_READONLY"
>>       if failed.logfile_pos.seek_once(line) >= 0:
>> -        print "'%s' exists in server log" % line
>> +        print("\'{}\' exists in server log".format(line))
>>   -master.admin('box.cfg { read_only = false }')
>> +master.admin("box.cfg { read_only = false }")
>>   -print '-------------------------------------------------------------'
>> -print 'JOIN replica with different replica set UUID'
>> -print '-------------------------------------------------------------'
>> +print("-------------------------------------------------------------")
>> +print("JOIN replica with different replica set UUID")
>> +print("-------------------------------------------------------------")
>>     failed = TarantoolServer(server.ini)
>> -failed.script = 'replication-py/uuid_mismatch.lua'
>> +failed.script = "replication-py/uuid_mismatch.lua"
>>   failed.vardir = server.vardir
>>   failed.rpl_master = master
>>   failed.name = "uuid_mismatch"
>> @@ -254,15 +259,15 @@ try:
>>   except Exception as e:
>>       line = "ER_REPLICASET_UUID_MISMATCH"
>>       if failed.logfile_pos.seek_once(line) >= 0:
>> -        print "'%s' exists in server log" % line
>> +        print("\'{}\' exists in server log".format(line))
>>     failed.cleanup()
>>   -print '-------------------------------------------------------------'
>> -print 'Cleanup'
>> -print '-------------------------------------------------------------'
>> +print("-------------------------------------------------------------")
>> +print("Cleanup")
>> +print("-------------------------------------------------------------")
>>     # Cleanup
>>   sys.stdout.pop_filter()
>>   master.admin("box.schema.user.revoke('guest', 'replication')")
>> -master.admin('box.space._cluster:delete{2} ~= nil')
>> +master.admin("box.space._cluster:delete{2} ~= nil")
>> diff --git a/test/replication-py/conflict.test.py 
>> b/test/replication-py/conflict.test.py
>> index 1dcd66765..5e19d0c40 100644
>> --- a/test/replication-py/conflict.test.py
>> +++ b/test/replication-py/conflict.test.py
>> @@ -1,35 +1,37 @@
>> +from __future__ import print_function
>> +
>>   from lib.tarantool_server import TarantoolServer
>>   from time import sleep
>>   import yaml
>>   -def check_replication(nodes, select_args=''):
>> +def check_replication(nodes, select_args=""):
>>       for node in nodes:
>> -        node.admin('box.space.test:select{%s}' % select_args)
>> + node.admin("box.space.test:select{{{}}}".format(select_args))
>>     master = server
>>   master.admin("box.schema.user.grant('guest', 'replication')")
>>     replica = TarantoolServer(server.ini)
>> -replica.script = 'replication-py/replica.lua'
>> +replica.script = "replication-py/replica.lua"
>>   replica.vardir = server.vardir
>>   replica.rpl_master = master
>>   replica.deploy()
>>     def parallel_run(cmd1, cmd2, compare):
>> -    print 'parallel send: %s' % cmd1
>> -    print 'parallel send: %s' % cmd2
>> -    master.admin.socket.sendall('%s\n' % cmd1)
>> -    replica.admin.socket.sendall('%s\n' % cmd2)
>> +    print("parallel send: {}".format(cmd1))
>> +    print("parallel send: {}".format(cmd2))
>> +    master.admin.socket.sendall("{}\n".format(cmd1))
>> +    replica.admin.socket.sendall("{}\n".format(cmd2))
>>         master.admin.socket.recv(2048)
>>       replica.admin.socket.recv(2048)
>>         # wait for status changing in tarantool
>>       master_status = yaml.safe_load(master.admin(
>> -        'box.info().replication[2].upstream.status', silent=True
>> +        "box.info().replication[2].upstream.status", silent=True
>>       ))[0]
>>       replica_status = yaml.safe_load(replica.admin(
>> -        'box.info().replication[1].upstream.status', silent=True
>> +        "box.info().replication[1].upstream.status", silent=True
>>       ))[0]
>>         # wait for status
>> @@ -37,11 +39,11 @@ def parallel_run(cmd1, cmd2, compare):
>>       while True:
>>           sleep(0.01)
>>           if any(results):
>> -            print 'replication state is correct'
>> +            print("replication state is correct")
>>               break
>>     def prepare_cluster():
>> -    print 'reset master-master replication'
>> +    print("reset master-master replication")
>>       master.stop()
>>       master.cleanup()
>>       master.start()
>> @@ -51,13 +53,13 @@ def prepare_cluster():
>>       replica.cleanup()
>>       replica.start()
>>   -    master.admin("box.cfg{replication='%s'}" % replica.iproto.uri, 
>> silent=True)
>> -    r1_id = replica.get_param('id')
>> -    r2_id = master.get_param('id')
>> + 
>> master.admin("box.cfg{{replication='{}'}}".format(replica.iproto.uri), 
>> silent=True)
>> +    r1_id = replica.get_param("id")
>> +    r2_id = master.get_param("id")
>>         master.admin("space = box.schema.space.create('test')", 
>> silent=True)
>>       master.admin("index = space:create_index('primary', { type = 
>> 'tree'})", silent=True)
>> -    master.admin('for k = 1, 9 do space:insert{k, k*k} end', 
>> silent=True)
>> +    master.admin("for k = 1, 9 do space:insert{k, k*k} end", 
>> silent=True)
>>         # wait lsn
>>       replica.wait_lsn(r2_id, master.get_lsn(r2_id))
>> @@ -69,20 +71,20 @@ parallel_run(
>>       "box.space.test:update(1, {{'#', 2, 1}})",
>>       "box.space.test:update(1, {{'#', 2, 1}})",
>>       [
>> -        lambda x,y: x == 'stopped' or y == 'stopped',
>> -        lambda x,y: x == 'follow' and y == 'follow',
>> +        lambda x,y: x == "stopped" or y == "stopped",
>> +        lambda x,y: x == "follow" and y == "follow",
>>       ]
>>   )
>> -check_replication([master, replica], '1')
>> +check_replication([master, replica], "1")
>>     # test2: insert different values with single id
>>   prepare_cluster()
>>   parallel_run(
>> -    'box.space.test:insert{20, 1}',
>> -    'box.space.test:insert{20, 2}',
>> +    "box.space.test:insert{20, 1}",
>> +    "box.space.test:insert{20, 2}",
>>       [
>> -        lambda x,y: x == 'stopped' or y == 'stopped',
>> -        lambda x,y: x == 'follow' and y == 'follow',
>> +        lambda x,y: x == "stopped" or y == "stopped",
>> +        lambda x,y: x == "follow" and y == "follow",
>>       ]
>>   )
>>   @@ -91,7 +93,7 @@ prepare_cluster()
>>   parallel_run(
>>       "box.space.test:update(2, {{'=', 2, 1}})",
>>       "box.space.test:update(2, {{'=', 2, 2}})",
>> -    [lambda x,y: x == 'follow' and y == 'follow',]
>> +    [lambda x,y: x == "follow" and y == "follow",]
>>   )
>>     # test4: CRDT increment with update
>> @@ -99,16 +101,16 @@ prepare_cluster()
>>   parallel_run(
>>       "box.space.test:update(1, {{'+', 2, 1}})",
>>       "box.space.test:update(1, {{'+', 2, 2}})",
>> -    [lambda x,y: x == 'follow' and y == 'follow',]
>> +    [lambda x,y: x == "follow" and y == "follow",]
>>   )
>> -check_replication([master, replica], '1')
>> +check_replication([master, replica], "1")
>>     # test5: delete not existing key
>>   prepare_cluster()
>>   parallel_run(
>>       "box.space.test:delete(999)",
>>       "box.space.test:delete(999)",
>> -    [lambda x,y: x == 'follow' and y == 'follow',]
>> +    [lambda x,y: x == "follow" and y == "follow",]
>>   )
>>   check_replication([master, replica])
>>   diff --git a/test/replication-py/init_storage.test.py 
>> b/test/replication-py/init_storage.test.py
>> index 4be531f8d..30ba75405 100644
>> --- a/test/replication-py/init_storage.test.py
>> +++ b/test/replication-py/init_storage.test.py
>> @@ -1,80 +1,82 @@
>> +from __future__ import print_function
>> +
>>   import os
>>   import glob
>>   from lib.tarantool_server import TarantoolServer
>>     # master server
>>   master = server
>> -master_id = master.get_param('id')
>> +master_id = master.get_param("id")
>>   master.admin("box.schema.user.grant('guest', 'replication')")
>>   -print '-------------------------------------------------------------'
>> -print 'gh-484: JOIN doesn\'t save data to snapshot with TREE index'
>> -print '-------------------------------------------------------------'
>> +print("-------------------------------------------------------------")
>> +print("gh-484: JOIN doesn't save data to snapshot with TREE index")
>> +print("-------------------------------------------------------------")
>>     master.admin("space = box.schema.space.create('test', {id = 42})")
>>   master.admin("index = space:create_index('primary', { type = 
>> 'tree'})")
>>   -master.admin('for k = 1, 9 do space:insert{k, k*k} end')
>> +master.admin("for k = 1, 9 do space:insert{k, k*k} end")
>>     replica = TarantoolServer(server.ini)
>> -replica.script = 'replication-py/replica.lua'
>> +replica.script = "replication-py/replica.lua"
>>   replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
>>   replica.rpl_master = master
>>   replica.deploy()
>> -replica.admin('box.space.test:select()')
>> +replica.admin("box.space.test:select()")
>>     replica.restart()
>> -replica.admin('box.space.test:select()')
>> +replica.admin("box.space.test:select()")
>>   replica.stop()
>>   replica.cleanup()
>>   -print '-------------------------------------------------------------'
>> -print 'replica test 2 (must be ok)'
>> -print '-------------------------------------------------------------'
>> +print("-------------------------------------------------------------")
>> +print("replica test 2 (must be ok)")
>> +print("-------------------------------------------------------------")
>>     master.restart()
>> -master.admin('for k = 10, 19 do box.space[42]:insert{k, k*k*k} end')
>> +master.admin("for k = 10, 19 do box.space[42]:insert{k, k*k*k} end")
>>   master.admin("for k = 20, 29 do box.space[42]:upsert({k}, {}) end")
>>   lsn = master.get_lsn(master_id)
>>     replica = TarantoolServer(server.ini)
>> -replica.script = 'replication-py/replica.lua'
>> +replica.script = "replication-py/replica.lua"
>>   replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
>>   replica.rpl_master = master
>>   replica.deploy()
>>   -replica.admin('space = box.space.test');
>> +replica.admin("space = box.space.test");
>>   replica.wait_lsn(master_id, lsn)
>>   for i in range(1, 20):
>> -    replica.admin('space:get{%d}' % i)
>> +    replica.admin("space:get{{{}}}".format(i))
>>     replica.stop()
>>   replica.cleanup()
>>   -print '-------------------------------------------------------------'
>> -print 'reconnect on JOIN/SUBSCRIBE'
>> -print '-------------------------------------------------------------'
>> +print("-------------------------------------------------------------")
>> +print("reconnect on JOIN/SUBSCRIBE")
>> +print("-------------------------------------------------------------")
>>     server.stop()
>>   replica = TarantoolServer(server.ini)
>> -replica.script = 'replication-py/replica.lua'
>> +replica.script = "replication-py/replica.lua"
>>   replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
>>   replica.rpl_master = master
>>   replica.deploy(wait=False)
>>   -print 'waiting reconnect on JOIN...'
>> +print("waiting reconnect on JOIN...")
>>   server.start()
>>   replica.wait_until_started()
>> -print 'ok'
>> +print("ok")
>>     replica.stop()
>>   server.stop()
>>   -print 'waiting reconnect on SUBSCRIBE...'
>> +print("waiting reconnect on SUBSCRIBE...")
>>   replica.start(wait=False)
>>   server.start()
>>   replica.wait_until_started()
>> -print 'ok'
>> +print("ok")
>>     replica.stop()
>>   replica.cleanup()
>> diff --git a/test/replication-py/multi.test.py 
>> b/test/replication-py/multi.test.py
>> index 233802458..a346fd560 100644
>> --- a/test/replication-py/multi.test.py
>> +++ b/test/replication-py/multi.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   import sys
>>   import os
>>   from lib.tarantool_server import TarantoolServer
>> @@ -14,17 +16,17 @@ master.admin("fiber = require('fiber')")
>>   master.admin("box.schema.user.grant('guest', 'replication')")
>>   master.admin("box.schema.user.grant('guest', 'execute', 'universe')")
>>   -print 
>> '----------------------------------------------------------------------'
>> -print 'Bootstrap replicas'
>> -print 
>> '----------------------------------------------------------------------'
>> +print("----------------------------------------------------------------------") 
>>
>> +print("Bootstrap replicas")
>> +print("----------------------------------------------------------------------") 
>>
>>     # Start replicas
>> -master.id = master.get_param('id')
>> +master.id = master.get_param("id")
>>   cluster = [ master ]
>>   for i in range(REPLICA_N - 1):
>>       server = TarantoolServer(server.ini)
>> -    server.script = 'replication-py/replica.lua'
>> -    server.vardir = os.path.join(server.vardir, 'replica', 
>> str(master.id + i))
>> +    server.script = "replication-py/replica.lua"
>> +    server.vardir = os.path.join(server.vardir, "replica", 
>> str(master.id + i))
>>       server.rpl_master = master
>>       server.deploy()
>>       # Wait replica to fully bootstrap.
>> @@ -34,14 +36,14 @@ for i in range(REPLICA_N - 1):
>>   # Make a list of servers
>>   sources = []
>>   for server in cluster:
>> - sources.append(yaml.safe_load(server.admin('box.cfg.listen', silent 
>> = True))[0])
>> -    server.id = server.get_param('id')
>> + sources.append(yaml.safe_load(server.admin("box.cfg.listen", silent 
>> = True))[0])
>> +    server.id = server.get_param("id")
>>   -print 'done'
>> +print("done")
>>   -print 
>> '----------------------------------------------------------------------'
>> -print 'Make a full mesh'
>> -print 
>> '----------------------------------------------------------------------'
>> +print("----------------------------------------------------------------------") 
>>
>> +print("Make a full mesh")
>> +print("----------------------------------------------------------------------") 
>>
>>     # Connect each server to each other to make full mesh
>>   for server in cluster:
>> @@ -54,55 +56,55 @@ for server in cluster:
>>               while #box.info.vclock[...] ~= nil do
>>                   fiber.sleep(0.01)
>>               end;""", server2.id)
>> -        print 'server', server.id, "connected"
>> +        print("server {} connected".format(server.id))
>>   -print 'done'
>> +print("done")
>>   -print 
>> '----------------------------------------------------------------------'
>> -print 'Test inserts'
>> -print 
>> '----------------------------------------------------------------------'
>> +print("----------------------------------------------------------------------") 
>>
>> +print("Test inserts")
>> +print("----------------------------------------------------------------------") 
>>
>>   -print 'Create a test space'
>> +print("Create a test space")
>>   master.admin("_ = box.schema.space.create('test')")
>>   master.admin("_ = box.space.test:create_index('primary')")
>>   master_lsn = master.get_lsn(master.id)
>>   # Wait changes to propagate to replicas
>>   for server in cluster:
>>       server.wait_lsn(master.id, master_lsn)
>> -    print 'server', server.id, 'is ok'
>> -print
>> +    print("server {} is ok".format(server.id))
>> +print("")
>>   -print 'Insert records'
>> +print("Insert records")
>>   for i in range(ROW_N):
>>       server = cluster[i % REPLICA_N]
>> -    server.admin("box.space.test:insert{%d, %s}" % (i, server.id), 
>> silent = True)
>> -print 'inserted %d records' % ROW_N
>> -print
>> +    server.admin("box.space.test:insert{{{}, {}}}".format(i, 
>> server.id), silent = True)
>> +print("inserted {} records".format(ROW_N))
>> +print("")
>>   -print 'Synchronize'
>> +print("Synchronize")
>>   for server1 in cluster:
>>       for server2 in cluster:
>>           server1.wait_lsn(server2.id, server2.get_lsn(server2.id))
>> -    print 'server', server1.id, 'done'
>> -print 'done'
>> -print
>> +    print("server {} done".format(server1.id))
>> +print("done")
>> +print("")
>>   -print 'Check data'
>> +print("Check data")
>>   for server in cluster:
>>       cnt = yaml.safe_load(server.admin("box.space.test:len()", 
>> silent = True))[0]
>> -    print 'server', server.id, 'is', cnt == ROW_N and 'ok' or 'not ok'
>> -print 'Done'
>> -print
>> +    print("server {} is {}".format(server.id, cnt == ROW_N and "ok" 
>> or "not ok"))
>> +print("Done")
>> +print("")
>>   -print
>> -print 
>> '----------------------------------------------------------------------'
>> -print 'Cleanup'
>> -print 
>> '----------------------------------------------------------------------'
>> +print("")
>> +print("----------------------------------------------------------------------") 
>>
>> +print("Cleanup")
>> +print("----------------------------------------------------------------------") 
>>
>>     for server in cluster:
>>       server.stop()
>> -    print 'server', server.id, 'done'
>> -print
>> +    print("server {} done".format(server.id))
>> +print("")
>>     master.cleanup()
>>   master.deploy()
>> diff --git a/test/replication-py/swap.result 
>> b/test/replication-py/swap.result
>> index 7e6e66483..f96da95e4 100644
>> --- a/test/replication-py/swap.result
>> +++ b/test/replication-py/swap.result
>> @@ -23,34 +23,34 @@ index = s:create_index('primary', {type = 'tree'})
>>   ---
>>   ...
>>   test 0 iteration
>> -box.space.memtx:insert{0, "tuple 0"}
>> +box.space.memtx:insert{0, 'tuple 0'}
>>   -
>>   - [0, 'tuple 0']
>> -box.space.memtx:insert{1, "tuple 1"}
>> +box.space.memtx:insert{1, 'tuple 1'}
>>   -
>>   - [1, 'tuple 1']
>> -box.space.memtx:insert{2, "tuple 2"}
>> +box.space.memtx:insert{2, 'tuple 2'}
>>   -
>>   - [2, 'tuple 2']
>> -box.space.memtx:insert{3, "tuple 3"}
>> +box.space.memtx:insert{3, 'tuple 3'}
>>   -
>>   - [3, 'tuple 3']
>> -box.space.memtx:insert{4, "tuple 4"}
>> +box.space.memtx:insert{4, 'tuple 4'}
>>   -
>>   - [4, 'tuple 4']
>> -box.space.vinyl:insert{0, "tuple 0"}
>> +box.space.vinyl:insert{0, 'tuple 0'}
>>   -
>>   - [0, 'tuple 0']
>> -box.space.vinyl:insert{1, "tuple 1"}
>> +box.space.vinyl:insert{1, 'tuple 1'}
>>   -
>>   - [1, 'tuple 1']
>> -box.space.vinyl:insert{2, "tuple 2"}
>> +box.space.vinyl:insert{2, 'tuple 2'}
>>   -
>>   - [2, 'tuple 2']
>> -box.space.vinyl:insert{3, "tuple 3"}
>> +box.space.vinyl:insert{3, 'tuple 3'}
>>   -
>>   - [3, 'tuple 3']
>> -box.space.vinyl:insert{4, "tuple 4"}
>> +box.space.vinyl:insert{4, 'tuple 4'}
>>   -
>>   - [4, 'tuple 4']
>>   box.space.memtx:select{0}
>> @@ -83,34 +83,34 @@ box.space.vinyl:select{3}
>>   box.space.vinyl:select{4}
>>   -
>>   - [4, 'tuple 4']
>> -box.space.memtx:insert{5, "tuple 5"}
>> +box.space.memtx:insert{5, 'tuple 5'}
>>   -
>>   - [5, 'tuple 5']
>> -box.space.memtx:insert{6, "tuple 6"}
>> +box.space.memtx:insert{6, 'tuple 6'}
>>   -
>>   - [6, 'tuple 6']
>> -box.space.memtx:insert{7, "tuple 7"}
>> +box.space.memtx:insert{7, 'tuple 7'}
>>   -
>>   - [7, 'tuple 7']
>> -box.space.memtx:insert{8, "tuple 8"}
>> +box.space.memtx:insert{8, 'tuple 8'}
>>   -
>>   - [8, 'tuple 8']
>> -box.space.memtx:insert{9, "tuple 9"}
>> +box.space.memtx:insert{9, 'tuple 9'}
>>   -
>>   - [9, 'tuple 9']
>> -box.space.vinyl:insert{5, "tuple 5"}
>> +box.space.vinyl:insert{5, 'tuple 5'}
>>   -
>>   - [5, 'tuple 5']
>> -box.space.vinyl:insert{6, "tuple 6"}
>> +box.space.vinyl:insert{6, 'tuple 6'}
>>   -
>>   - [6, 'tuple 6']
>> -box.space.vinyl:insert{7, "tuple 7"}
>> +box.space.vinyl:insert{7, 'tuple 7'}
>>   -
>>   - [7, 'tuple 7']
>> -box.space.vinyl:insert{8, "tuple 8"}
>> +box.space.vinyl:insert{8, 'tuple 8'}
>>   -
>>   - [8, 'tuple 8']
>> -box.space.vinyl:insert{9, "tuple 9"}
>> +box.space.vinyl:insert{9, 'tuple 9'}
>>   -
>>   - [9, 'tuple 9']
>>   box.space.memtx:select{5}
>> @@ -149,34 +149,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{10, "tuple 10"}
>> +box.space.memtx:insert{10, 'tuple 10'}
>>   -
>>   - [10, 'tuple 10']
>> -box.space.memtx:insert{11, "tuple 11"}
>> +box.space.memtx:insert{11, 'tuple 11'}
>>   -
>>   - [11, 'tuple 11']
>> -box.space.memtx:insert{12, "tuple 12"}
>> +box.space.memtx:insert{12, 'tuple 12'}
>>   -
>>   - [12, 'tuple 12']
>> -box.space.memtx:insert{13, "tuple 13"}
>> +box.space.memtx:insert{13, 'tuple 13'}
>>   -
>>   - [13, 'tuple 13']
>> -box.space.memtx:insert{14, "tuple 14"}
>> +box.space.memtx:insert{14, 'tuple 14'}
>>   -
>>   - [14, 'tuple 14']
>> -box.space.vinyl:insert{10, "tuple 10"}
>> +box.space.vinyl:insert{10, 'tuple 10'}
>>   -
>>   - [10, 'tuple 10']
>> -box.space.vinyl:insert{11, "tuple 11"}
>> +box.space.vinyl:insert{11, 'tuple 11'}
>>   -
>>   - [11, 'tuple 11']
>> -box.space.vinyl:insert{12, "tuple 12"}
>> +box.space.vinyl:insert{12, 'tuple 12'}
>>   -
>>   - [12, 'tuple 12']
>> -box.space.vinyl:insert{13, "tuple 13"}
>> +box.space.vinyl:insert{13, 'tuple 13'}
>>   -
>>   - [13, 'tuple 13']
>> -box.space.vinyl:insert{14, "tuple 14"}
>> +box.space.vinyl:insert{14, 'tuple 14'}
>>   -
>>   - [14, 'tuple 14']
>>   box.space.memtx:select{10}
>> @@ -209,34 +209,34 @@ box.space.vinyl:select{13}
>>   box.space.vinyl:select{14}
>>   -
>>   - [14, 'tuple 14']
>> -box.space.memtx:insert{15, "tuple 15"}
>> +box.space.memtx:insert{15, 'tuple 15'}
>>   -
>>   - [15, 'tuple 15']
>> -box.space.memtx:insert{16, "tuple 16"}
>> +box.space.memtx:insert{16, 'tuple 16'}
>>   -
>>   - [16, 'tuple 16']
>> -box.space.memtx:insert{17, "tuple 17"}
>> +box.space.memtx:insert{17, 'tuple 17'}
>>   -
>>   - [17, 'tuple 17']
>> -box.space.memtx:insert{18, "tuple 18"}
>> +box.space.memtx:insert{18, 'tuple 18'}
>>   -
>>   - [18, 'tuple 18']
>> -box.space.memtx:insert{19, "tuple 19"}
>> +box.space.memtx:insert{19, 'tuple 19'}
>>   -
>>   - [19, 'tuple 19']
>> -box.space.vinyl:insert{15, "tuple 15"}
>> +box.space.vinyl:insert{15, 'tuple 15'}
>>   -
>>   - [15, 'tuple 15']
>> -box.space.vinyl:insert{16, "tuple 16"}
>> +box.space.vinyl:insert{16, 'tuple 16'}
>>   -
>>   - [16, 'tuple 16']
>> -box.space.vinyl:insert{17, "tuple 17"}
>> +box.space.vinyl:insert{17, 'tuple 17'}
>>   -
>>   - [17, 'tuple 17']
>> -box.space.vinyl:insert{18, "tuple 18"}
>> +box.space.vinyl:insert{18, 'tuple 18'}
>>   -
>>   - [18, 'tuple 18']
>> -box.space.vinyl:insert{19, "tuple 19"}
>> +box.space.vinyl:insert{19, 'tuple 19'}
>>   -
>>   - [19, 'tuple 19']
>>   box.space.memtx:select{15}
>> @@ -276,34 +276,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 1 iteration
>> -box.space.memtx:insert{20, "tuple 20"}
>> +box.space.memtx:insert{20, 'tuple 20'}
>>   -
>>   - [20, 'tuple 20']
>> -box.space.memtx:insert{21, "tuple 21"}
>> +box.space.memtx:insert{21, 'tuple 21'}
>>   -
>>   - [21, 'tuple 21']
>> -box.space.memtx:insert{22, "tuple 22"}
>> +box.space.memtx:insert{22, 'tuple 22'}
>>   -
>>   - [22, 'tuple 22']
>> -box.space.memtx:insert{23, "tuple 23"}
>> +box.space.memtx:insert{23, 'tuple 23'}
>>   -
>>   - [23, 'tuple 23']
>> -box.space.memtx:insert{24, "tuple 24"}
>> +box.space.memtx:insert{24, 'tuple 24'}
>>   -
>>   - [24, 'tuple 24']
>> -box.space.vinyl:insert{20, "tuple 20"}
>> +box.space.vinyl:insert{20, 'tuple 20'}
>>   -
>>   - [20, 'tuple 20']
>> -box.space.vinyl:insert{21, "tuple 21"}
>> +box.space.vinyl:insert{21, 'tuple 21'}
>>   -
>>   - [21, 'tuple 21']
>> -box.space.vinyl:insert{22, "tuple 22"}
>> +box.space.vinyl:insert{22, 'tuple 22'}
>>   -
>>   - [22, 'tuple 22']
>> -box.space.vinyl:insert{23, "tuple 23"}
>> +box.space.vinyl:insert{23, 'tuple 23'}
>>   -
>>   - [23, 'tuple 23']
>> -box.space.vinyl:insert{24, "tuple 24"}
>> +box.space.vinyl:insert{24, 'tuple 24'}
>>   -
>>   - [24, 'tuple 24']
>>   box.space.memtx:select{20}
>> @@ -336,34 +336,34 @@ box.space.vinyl:select{23}
>>   box.space.vinyl:select{24}
>>   -
>>   - [24, 'tuple 24']
>> -box.space.memtx:insert{25, "tuple 25"}
>> +box.space.memtx:insert{25, 'tuple 25'}
>>   -
>>   - [25, 'tuple 25']
>> -box.space.memtx:insert{26, "tuple 26"}
>> +box.space.memtx:insert{26, 'tuple 26'}
>>   -
>>   - [26, 'tuple 26']
>> -box.space.memtx:insert{27, "tuple 27"}
>> +box.space.memtx:insert{27, 'tuple 27'}
>>   -
>>   - [27, 'tuple 27']
>> -box.space.memtx:insert{28, "tuple 28"}
>> +box.space.memtx:insert{28, 'tuple 28'}
>>   -
>>   - [28, 'tuple 28']
>> -box.space.memtx:insert{29, "tuple 29"}
>> +box.space.memtx:insert{29, 'tuple 29'}
>>   -
>>   - [29, 'tuple 29']
>> -box.space.vinyl:insert{25, "tuple 25"}
>> +box.space.vinyl:insert{25, 'tuple 25'}
>>   -
>>   - [25, 'tuple 25']
>> -box.space.vinyl:insert{26, "tuple 26"}
>> +box.space.vinyl:insert{26, 'tuple 26'}
>>   -
>>   - [26, 'tuple 26']
>> -box.space.vinyl:insert{27, "tuple 27"}
>> +box.space.vinyl:insert{27, 'tuple 27'}
>>   -
>>   - [27, 'tuple 27']
>> -box.space.vinyl:insert{28, "tuple 28"}
>> +box.space.vinyl:insert{28, 'tuple 28'}
>>   -
>>   - [28, 'tuple 28']
>> -box.space.vinyl:insert{29, "tuple 29"}
>> +box.space.vinyl:insert{29, 'tuple 29'}
>>   -
>>   - [29, 'tuple 29']
>>   box.space.memtx:select{25}
>> @@ -402,34 +402,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{30, "tuple 30"}
>> +box.space.memtx:insert{30, 'tuple 30'}
>>   -
>>   - [30, 'tuple 30']
>> -box.space.memtx:insert{31, "tuple 31"}
>> +box.space.memtx:insert{31, 'tuple 31'}
>>   -
>>   - [31, 'tuple 31']
>> -box.space.memtx:insert{32, "tuple 32"}
>> +box.space.memtx:insert{32, 'tuple 32'}
>>   -
>>   - [32, 'tuple 32']
>> -box.space.memtx:insert{33, "tuple 33"}
>> +box.space.memtx:insert{33, 'tuple 33'}
>>   -
>>   - [33, 'tuple 33']
>> -box.space.memtx:insert{34, "tuple 34"}
>> +box.space.memtx:insert{34, 'tuple 34'}
>>   -
>>   - [34, 'tuple 34']
>> -box.space.vinyl:insert{30, "tuple 30"}
>> +box.space.vinyl:insert{30, 'tuple 30'}
>>   -
>>   - [30, 'tuple 30']
>> -box.space.vinyl:insert{31, "tuple 31"}
>> +box.space.vinyl:insert{31, 'tuple 31'}
>>   -
>>   - [31, 'tuple 31']
>> -box.space.vinyl:insert{32, "tuple 32"}
>> +box.space.vinyl:insert{32, 'tuple 32'}
>>   -
>>   - [32, 'tuple 32']
>> -box.space.vinyl:insert{33, "tuple 33"}
>> +box.space.vinyl:insert{33, 'tuple 33'}
>>   -
>>   - [33, 'tuple 33']
>> -box.space.vinyl:insert{34, "tuple 34"}
>> +box.space.vinyl:insert{34, 'tuple 34'}
>>   -
>>   - [34, 'tuple 34']
>>   box.space.memtx:select{30}
>> @@ -462,34 +462,34 @@ box.space.vinyl:select{33}
>>   box.space.vinyl:select{34}
>>   -
>>   - [34, 'tuple 34']
>> -box.space.memtx:insert{35, "tuple 35"}
>> +box.space.memtx:insert{35, 'tuple 35'}
>>   -
>>   - [35, 'tuple 35']
>> -box.space.memtx:insert{36, "tuple 36"}
>> +box.space.memtx:insert{36, 'tuple 36'}
>>   -
>>   - [36, 'tuple 36']
>> -box.space.memtx:insert{37, "tuple 37"}
>> +box.space.memtx:insert{37, 'tuple 37'}
>>   -
>>   - [37, 'tuple 37']
>> -box.space.memtx:insert{38, "tuple 38"}
>> +box.space.memtx:insert{38, 'tuple 38'}
>>   -
>>   - [38, 'tuple 38']
>> -box.space.memtx:insert{39, "tuple 39"}
>> +box.space.memtx:insert{39, 'tuple 39'}
>>   -
>>   - [39, 'tuple 39']
>> -box.space.vinyl:insert{35, "tuple 35"}
>> +box.space.vinyl:insert{35, 'tuple 35'}
>>   -
>>   - [35, 'tuple 35']
>> -box.space.vinyl:insert{36, "tuple 36"}
>> +box.space.vinyl:insert{36, 'tuple 36'}
>>   -
>>   - [36, 'tuple 36']
>> -box.space.vinyl:insert{37, "tuple 37"}
>> +box.space.vinyl:insert{37, 'tuple 37'}
>>   -
>>   - [37, 'tuple 37']
>> -box.space.vinyl:insert{38, "tuple 38"}
>> +box.space.vinyl:insert{38, 'tuple 38'}
>>   -
>>   - [38, 'tuple 38']
>> -box.space.vinyl:insert{39, "tuple 39"}
>> +box.space.vinyl:insert{39, 'tuple 39'}
>>   -
>>   - [39, 'tuple 39']
>>   box.space.memtx:select{35}
>> @@ -529,34 +529,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 2 iteration
>> -box.space.memtx:insert{40, "tuple 40"}
>> +box.space.memtx:insert{40, 'tuple 40'}
>>   -
>>   - [40, 'tuple 40']
>> -box.space.memtx:insert{41, "tuple 41"}
>> +box.space.memtx:insert{41, 'tuple 41'}
>>   -
>>   - [41, 'tuple 41']
>> -box.space.memtx:insert{42, "tuple 42"}
>> +box.space.memtx:insert{42, 'tuple 42'}
>>   -
>>   - [42, 'tuple 42']
>> -box.space.memtx:insert{43, "tuple 43"}
>> +box.space.memtx:insert{43, 'tuple 43'}
>>   -
>>   - [43, 'tuple 43']
>> -box.space.memtx:insert{44, "tuple 44"}
>> +box.space.memtx:insert{44, 'tuple 44'}
>>   -
>>   - [44, 'tuple 44']
>> -box.space.vinyl:insert{40, "tuple 40"}
>> +box.space.vinyl:insert{40, 'tuple 40'}
>>   -
>>   - [40, 'tuple 40']
>> -box.space.vinyl:insert{41, "tuple 41"}
>> +box.space.vinyl:insert{41, 'tuple 41'}
>>   -
>>   - [41, 'tuple 41']
>> -box.space.vinyl:insert{42, "tuple 42"}
>> +box.space.vinyl:insert{42, 'tuple 42'}
>>   -
>>   - [42, 'tuple 42']
>> -box.space.vinyl:insert{43, "tuple 43"}
>> +box.space.vinyl:insert{43, 'tuple 43'}
>>   -
>>   - [43, 'tuple 43']
>> -box.space.vinyl:insert{44, "tuple 44"}
>> +box.space.vinyl:insert{44, 'tuple 44'}
>>   -
>>   - [44, 'tuple 44']
>>   box.space.memtx:select{40}
>> @@ -589,34 +589,34 @@ box.space.vinyl:select{43}
>>   box.space.vinyl:select{44}
>>   -
>>   - [44, 'tuple 44']
>> -box.space.memtx:insert{45, "tuple 45"}
>> +box.space.memtx:insert{45, 'tuple 45'}
>>   -
>>   - [45, 'tuple 45']
>> -box.space.memtx:insert{46, "tuple 46"}
>> +box.space.memtx:insert{46, 'tuple 46'}
>>   -
>>   - [46, 'tuple 46']
>> -box.space.memtx:insert{47, "tuple 47"}
>> +box.space.memtx:insert{47, 'tuple 47'}
>>   -
>>   - [47, 'tuple 47']
>> -box.space.memtx:insert{48, "tuple 48"}
>> +box.space.memtx:insert{48, 'tuple 48'}
>>   -
>>   - [48, 'tuple 48']
>> -box.space.memtx:insert{49, "tuple 49"}
>> +box.space.memtx:insert{49, 'tuple 49'}
>>   -
>>   - [49, 'tuple 49']
>> -box.space.vinyl:insert{45, "tuple 45"}
>> +box.space.vinyl:insert{45, 'tuple 45'}
>>   -
>>   - [45, 'tuple 45']
>> -box.space.vinyl:insert{46, "tuple 46"}
>> +box.space.vinyl:insert{46, 'tuple 46'}
>>   -
>>   - [46, 'tuple 46']
>> -box.space.vinyl:insert{47, "tuple 47"}
>> +box.space.vinyl:insert{47, 'tuple 47'}
>>   -
>>   - [47, 'tuple 47']
>> -box.space.vinyl:insert{48, "tuple 48"}
>> +box.space.vinyl:insert{48, 'tuple 48'}
>>   -
>>   - [48, 'tuple 48']
>> -box.space.vinyl:insert{49, "tuple 49"}
>> +box.space.vinyl:insert{49, 'tuple 49'}
>>   -
>>   - [49, 'tuple 49']
>>   box.space.memtx:select{45}
>> @@ -655,34 +655,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{50, "tuple 50"}
>> +box.space.memtx:insert{50, 'tuple 50'}
>>   -
>>   - [50, 'tuple 50']
>> -box.space.memtx:insert{51, "tuple 51"}
>> +box.space.memtx:insert{51, 'tuple 51'}
>>   -
>>   - [51, 'tuple 51']
>> -box.space.memtx:insert{52, "tuple 52"}
>> +box.space.memtx:insert{52, 'tuple 52'}
>>   -
>>   - [52, 'tuple 52']
>> -box.space.memtx:insert{53, "tuple 53"}
>> +box.space.memtx:insert{53, 'tuple 53'}
>>   -
>>   - [53, 'tuple 53']
>> -box.space.memtx:insert{54, "tuple 54"}
>> +box.space.memtx:insert{54, 'tuple 54'}
>>   -
>>   - [54, 'tuple 54']
>> -box.space.vinyl:insert{50, "tuple 50"}
>> +box.space.vinyl:insert{50, 'tuple 50'}
>>   -
>>   - [50, 'tuple 50']
>> -box.space.vinyl:insert{51, "tuple 51"}
>> +box.space.vinyl:insert{51, 'tuple 51'}
>>   -
>>   - [51, 'tuple 51']
>> -box.space.vinyl:insert{52, "tuple 52"}
>> +box.space.vinyl:insert{52, 'tuple 52'}
>>   -
>>   - [52, 'tuple 52']
>> -box.space.vinyl:insert{53, "tuple 53"}
>> +box.space.vinyl:insert{53, 'tuple 53'}
>>   -
>>   - [53, 'tuple 53']
>> -box.space.vinyl:insert{54, "tuple 54"}
>> +box.space.vinyl:insert{54, 'tuple 54'}
>>   -
>>   - [54, 'tuple 54']
>>   box.space.memtx:select{50}
>> @@ -715,34 +715,34 @@ box.space.vinyl:select{53}
>>   box.space.vinyl:select{54}
>>   -
>>   - [54, 'tuple 54']
>> -box.space.memtx:insert{55, "tuple 55"}
>> +box.space.memtx:insert{55, 'tuple 55'}
>>   -
>>   - [55, 'tuple 55']
>> -box.space.memtx:insert{56, "tuple 56"}
>> +box.space.memtx:insert{56, 'tuple 56'}
>>   -
>>   - [56, 'tuple 56']
>> -box.space.memtx:insert{57, "tuple 57"}
>> +box.space.memtx:insert{57, 'tuple 57'}
>>   -
>>   - [57, 'tuple 57']
>> -box.space.memtx:insert{58, "tuple 58"}
>> +box.space.memtx:insert{58, 'tuple 58'}
>>   -
>>   - [58, 'tuple 58']
>> -box.space.memtx:insert{59, "tuple 59"}
>> +box.space.memtx:insert{59, 'tuple 59'}
>>   -
>>   - [59, 'tuple 59']
>> -box.space.vinyl:insert{55, "tuple 55"}
>> +box.space.vinyl:insert{55, 'tuple 55'}
>>   -
>>   - [55, 'tuple 55']
>> -box.space.vinyl:insert{56, "tuple 56"}
>> +box.space.vinyl:insert{56, 'tuple 56'}
>>   -
>>   - [56, 'tuple 56']
>> -box.space.vinyl:insert{57, "tuple 57"}
>> +box.space.vinyl:insert{57, 'tuple 57'}
>>   -
>>   - [57, 'tuple 57']
>> -box.space.vinyl:insert{58, "tuple 58"}
>> +box.space.vinyl:insert{58, 'tuple 58'}
>>   -
>>   - [58, 'tuple 58']
>> -box.space.vinyl:insert{59, "tuple 59"}
>> +box.space.vinyl:insert{59, 'tuple 59'}
>>   -
>>   - [59, 'tuple 59']
>>   box.space.memtx:select{55}
>> @@ -782,34 +782,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 3 iteration
>> -box.space.memtx:insert{60, "tuple 60"}
>> +box.space.memtx:insert{60, 'tuple 60'}
>>   -
>>   - [60, 'tuple 60']
>> -box.space.memtx:insert{61, "tuple 61"}
>> +box.space.memtx:insert{61, 'tuple 61'}
>>   -
>>   - [61, 'tuple 61']
>> -box.space.memtx:insert{62, "tuple 62"}
>> +box.space.memtx:insert{62, 'tuple 62'}
>>   -
>>   - [62, 'tuple 62']
>> -box.space.memtx:insert{63, "tuple 63"}
>> +box.space.memtx:insert{63, 'tuple 63'}
>>   -
>>   - [63, 'tuple 63']
>> -box.space.memtx:insert{64, "tuple 64"}
>> +box.space.memtx:insert{64, 'tuple 64'}
>>   -
>>   - [64, 'tuple 64']
>> -box.space.vinyl:insert{60, "tuple 60"}
>> +box.space.vinyl:insert{60, 'tuple 60'}
>>   -
>>   - [60, 'tuple 60']
>> -box.space.vinyl:insert{61, "tuple 61"}
>> +box.space.vinyl:insert{61, 'tuple 61'}
>>   -
>>   - [61, 'tuple 61']
>> -box.space.vinyl:insert{62, "tuple 62"}
>> +box.space.vinyl:insert{62, 'tuple 62'}
>>   -
>>   - [62, 'tuple 62']
>> -box.space.vinyl:insert{63, "tuple 63"}
>> +box.space.vinyl:insert{63, 'tuple 63'}
>>   -
>>   - [63, 'tuple 63']
>> -box.space.vinyl:insert{64, "tuple 64"}
>> +box.space.vinyl:insert{64, 'tuple 64'}
>>   -
>>   - [64, 'tuple 64']
>>   box.space.memtx:select{60}
>> @@ -842,34 +842,34 @@ box.space.vinyl:select{63}
>>   box.space.vinyl:select{64}
>>   -
>>   - [64, 'tuple 64']
>> -box.space.memtx:insert{65, "tuple 65"}
>> +box.space.memtx:insert{65, 'tuple 65'}
>>   -
>>   - [65, 'tuple 65']
>> -box.space.memtx:insert{66, "tuple 66"}
>> +box.space.memtx:insert{66, 'tuple 66'}
>>   -
>>   - [66, 'tuple 66']
>> -box.space.memtx:insert{67, "tuple 67"}
>> +box.space.memtx:insert{67, 'tuple 67'}
>>   -
>>   - [67, 'tuple 67']
>> -box.space.memtx:insert{68, "tuple 68"}
>> +box.space.memtx:insert{68, 'tuple 68'}
>>   -
>>   - [68, 'tuple 68']
>> -box.space.memtx:insert{69, "tuple 69"}
>> +box.space.memtx:insert{69, 'tuple 69'}
>>   -
>>   - [69, 'tuple 69']
>> -box.space.vinyl:insert{65, "tuple 65"}
>> +box.space.vinyl:insert{65, 'tuple 65'}
>>   -
>>   - [65, 'tuple 65']
>> -box.space.vinyl:insert{66, "tuple 66"}
>> +box.space.vinyl:insert{66, 'tuple 66'}
>>   -
>>   - [66, 'tuple 66']
>> -box.space.vinyl:insert{67, "tuple 67"}
>> +box.space.vinyl:insert{67, 'tuple 67'}
>>   -
>>   - [67, 'tuple 67']
>> -box.space.vinyl:insert{68, "tuple 68"}
>> +box.space.vinyl:insert{68, 'tuple 68'}
>>   -
>>   - [68, 'tuple 68']
>> -box.space.vinyl:insert{69, "tuple 69"}
>> +box.space.vinyl:insert{69, 'tuple 69'}
>>   -
>>   - [69, 'tuple 69']
>>   box.space.memtx:select{65}
>> @@ -908,34 +908,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{70, "tuple 70"}
>> +box.space.memtx:insert{70, 'tuple 70'}
>>   -
>>   - [70, 'tuple 70']
>> -box.space.memtx:insert{71, "tuple 71"}
>> +box.space.memtx:insert{71, 'tuple 71'}
>>   -
>>   - [71, 'tuple 71']
>> -box.space.memtx:insert{72, "tuple 72"}
>> +box.space.memtx:insert{72, 'tuple 72'}
>>   -
>>   - [72, 'tuple 72']
>> -box.space.memtx:insert{73, "tuple 73"}
>> +box.space.memtx:insert{73, 'tuple 73'}
>>   -
>>   - [73, 'tuple 73']
>> -box.space.memtx:insert{74, "tuple 74"}
>> +box.space.memtx:insert{74, 'tuple 74'}
>>   -
>>   - [74, 'tuple 74']
>> -box.space.vinyl:insert{70, "tuple 70"}
>> +box.space.vinyl:insert{70, 'tuple 70'}
>>   -
>>   - [70, 'tuple 70']
>> -box.space.vinyl:insert{71, "tuple 71"}
>> +box.space.vinyl:insert{71, 'tuple 71'}
>>   -
>>   - [71, 'tuple 71']
>> -box.space.vinyl:insert{72, "tuple 72"}
>> +box.space.vinyl:insert{72, 'tuple 72'}
>>   -
>>   - [72, 'tuple 72']
>> -box.space.vinyl:insert{73, "tuple 73"}
>> +box.space.vinyl:insert{73, 'tuple 73'}
>>   -
>>   - [73, 'tuple 73']
>> -box.space.vinyl:insert{74, "tuple 74"}
>> +box.space.vinyl:insert{74, 'tuple 74'}
>>   -
>>   - [74, 'tuple 74']
>>   box.space.memtx:select{70}
>> @@ -968,34 +968,34 @@ box.space.vinyl:select{73}
>>   box.space.vinyl:select{74}
>>   -
>>   - [74, 'tuple 74']
>> -box.space.memtx:insert{75, "tuple 75"}
>> +box.space.memtx:insert{75, 'tuple 75'}
>>   -
>>   - [75, 'tuple 75']
>> -box.space.memtx:insert{76, "tuple 76"}
>> +box.space.memtx:insert{76, 'tuple 76'}
>>   -
>>   - [76, 'tuple 76']
>> -box.space.memtx:insert{77, "tuple 77"}
>> +box.space.memtx:insert{77, 'tuple 77'}
>>   -
>>   - [77, 'tuple 77']
>> -box.space.memtx:insert{78, "tuple 78"}
>> +box.space.memtx:insert{78, 'tuple 78'}
>>   -
>>   - [78, 'tuple 78']
>> -box.space.memtx:insert{79, "tuple 79"}
>> +box.space.memtx:insert{79, 'tuple 79'}
>>   -
>>   - [79, 'tuple 79']
>> -box.space.vinyl:insert{75, "tuple 75"}
>> +box.space.vinyl:insert{75, 'tuple 75'}
>>   -
>>   - [75, 'tuple 75']
>> -box.space.vinyl:insert{76, "tuple 76"}
>> +box.space.vinyl:insert{76, 'tuple 76'}
>>   -
>>   - [76, 'tuple 76']
>> -box.space.vinyl:insert{77, "tuple 77"}
>> +box.space.vinyl:insert{77, 'tuple 77'}
>>   -
>>   - [77, 'tuple 77']
>> -box.space.vinyl:insert{78, "tuple 78"}
>> +box.space.vinyl:insert{78, 'tuple 78'}
>>   -
>>   - [78, 'tuple 78']
>> -box.space.vinyl:insert{79, "tuple 79"}
>> +box.space.vinyl:insert{79, 'tuple 79'}
>>   -
>>   - [79, 'tuple 79']
>>   box.space.memtx:select{75}
>> @@ -1035,34 +1035,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 4 iteration
>> -box.space.memtx:insert{80, "tuple 80"}
>> +box.space.memtx:insert{80, 'tuple 80'}
>>   -
>>   - [80, 'tuple 80']
>> -box.space.memtx:insert{81, "tuple 81"}
>> +box.space.memtx:insert{81, 'tuple 81'}
>>   -
>>   - [81, 'tuple 81']
>> -box.space.memtx:insert{82, "tuple 82"}
>> +box.space.memtx:insert{82, 'tuple 82'}
>>   -
>>   - [82, 'tuple 82']
>> -box.space.memtx:insert{83, "tuple 83"}
>> +box.space.memtx:insert{83, 'tuple 83'}
>>   -
>>   - [83, 'tuple 83']
>> -box.space.memtx:insert{84, "tuple 84"}
>> +box.space.memtx:insert{84, 'tuple 84'}
>>   -
>>   - [84, 'tuple 84']
>> -box.space.vinyl:insert{80, "tuple 80"}
>> +box.space.vinyl:insert{80, 'tuple 80'}
>>   -
>>   - [80, 'tuple 80']
>> -box.space.vinyl:insert{81, "tuple 81"}
>> +box.space.vinyl:insert{81, 'tuple 81'}
>>   -
>>   - [81, 'tuple 81']
>> -box.space.vinyl:insert{82, "tuple 82"}
>> +box.space.vinyl:insert{82, 'tuple 82'}
>>   -
>>   - [82, 'tuple 82']
>> -box.space.vinyl:insert{83, "tuple 83"}
>> +box.space.vinyl:insert{83, 'tuple 83'}
>>   -
>>   - [83, 'tuple 83']
>> -box.space.vinyl:insert{84, "tuple 84"}
>> +box.space.vinyl:insert{84, 'tuple 84'}
>>   -
>>   - [84, 'tuple 84']
>>   box.space.memtx:select{80}
>> @@ -1095,34 +1095,34 @@ box.space.vinyl:select{83}
>>   box.space.vinyl:select{84}
>>   -
>>   - [84, 'tuple 84']
>> -box.space.memtx:insert{85, "tuple 85"}
>> +box.space.memtx:insert{85, 'tuple 85'}
>>   -
>>   - [85, 'tuple 85']
>> -box.space.memtx:insert{86, "tuple 86"}
>> +box.space.memtx:insert{86, 'tuple 86'}
>>   -
>>   - [86, 'tuple 86']
>> -box.space.memtx:insert{87, "tuple 87"}
>> +box.space.memtx:insert{87, 'tuple 87'}
>>   -
>>   - [87, 'tuple 87']
>> -box.space.memtx:insert{88, "tuple 88"}
>> +box.space.memtx:insert{88, 'tuple 88'}
>>   -
>>   - [88, 'tuple 88']
>> -box.space.memtx:insert{89, "tuple 89"}
>> +box.space.memtx:insert{89, 'tuple 89'}
>>   -
>>   - [89, 'tuple 89']
>> -box.space.vinyl:insert{85, "tuple 85"}
>> +box.space.vinyl:insert{85, 'tuple 85'}
>>   -
>>   - [85, 'tuple 85']
>> -box.space.vinyl:insert{86, "tuple 86"}
>> +box.space.vinyl:insert{86, 'tuple 86'}
>>   -
>>   - [86, 'tuple 86']
>> -box.space.vinyl:insert{87, "tuple 87"}
>> +box.space.vinyl:insert{87, 'tuple 87'}
>>   -
>>   - [87, 'tuple 87']
>> -box.space.vinyl:insert{88, "tuple 88"}
>> +box.space.vinyl:insert{88, 'tuple 88'}
>>   -
>>   - [88, 'tuple 88']
>> -box.space.vinyl:insert{89, "tuple 89"}
>> +box.space.vinyl:insert{89, 'tuple 89'}
>>   -
>>   - [89, 'tuple 89']
>>   box.space.memtx:select{85}
>> @@ -1161,34 +1161,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{90, "tuple 90"}
>> +box.space.memtx:insert{90, 'tuple 90'}
>>   -
>>   - [90, 'tuple 90']
>> -box.space.memtx:insert{91, "tuple 91"}
>> +box.space.memtx:insert{91, 'tuple 91'}
>>   -
>>   - [91, 'tuple 91']
>> -box.space.memtx:insert{92, "tuple 92"}
>> +box.space.memtx:insert{92, 'tuple 92'}
>>   -
>>   - [92, 'tuple 92']
>> -box.space.memtx:insert{93, "tuple 93"}
>> +box.space.memtx:insert{93, 'tuple 93'}
>>   -
>>   - [93, 'tuple 93']
>> -box.space.memtx:insert{94, "tuple 94"}
>> +box.space.memtx:insert{94, 'tuple 94'}
>>   -
>>   - [94, 'tuple 94']
>> -box.space.vinyl:insert{90, "tuple 90"}
>> +box.space.vinyl:insert{90, 'tuple 90'}
>>   -
>>   - [90, 'tuple 90']
>> -box.space.vinyl:insert{91, "tuple 91"}
>> +box.space.vinyl:insert{91, 'tuple 91'}
>>   -
>>   - [91, 'tuple 91']
>> -box.space.vinyl:insert{92, "tuple 92"}
>> +box.space.vinyl:insert{92, 'tuple 92'}
>>   -
>>   - [92, 'tuple 92']
>> -box.space.vinyl:insert{93, "tuple 93"}
>> +box.space.vinyl:insert{93, 'tuple 93'}
>>   -
>>   - [93, 'tuple 93']
>> -box.space.vinyl:insert{94, "tuple 94"}
>> +box.space.vinyl:insert{94, 'tuple 94'}
>>   -
>>   - [94, 'tuple 94']
>>   box.space.memtx:select{90}
>> @@ -1221,34 +1221,34 @@ box.space.vinyl:select{93}
>>   box.space.vinyl:select{94}
>>   -
>>   - [94, 'tuple 94']
>> -box.space.memtx:insert{95, "tuple 95"}
>> +box.space.memtx:insert{95, 'tuple 95'}
>>   -
>>   - [95, 'tuple 95']
>> -box.space.memtx:insert{96, "tuple 96"}
>> +box.space.memtx:insert{96, 'tuple 96'}
>>   -
>>   - [96, 'tuple 96']
>> -box.space.memtx:insert{97, "tuple 97"}
>> +box.space.memtx:insert{97, 'tuple 97'}
>>   -
>>   - [97, 'tuple 97']
>> -box.space.memtx:insert{98, "tuple 98"}
>> +box.space.memtx:insert{98, 'tuple 98'}
>>   -
>>   - [98, 'tuple 98']
>> -box.space.memtx:insert{99, "tuple 99"}
>> +box.space.memtx:insert{99, 'tuple 99'}
>>   -
>>   - [99, 'tuple 99']
>> -box.space.vinyl:insert{95, "tuple 95"}
>> +box.space.vinyl:insert{95, 'tuple 95'}
>>   -
>>   - [95, 'tuple 95']
>> -box.space.vinyl:insert{96, "tuple 96"}
>> +box.space.vinyl:insert{96, 'tuple 96'}
>>   -
>>   - [96, 'tuple 96']
>> -box.space.vinyl:insert{97, "tuple 97"}
>> +box.space.vinyl:insert{97, 'tuple 97'}
>>   -
>>   - [97, 'tuple 97']
>> -box.space.vinyl:insert{98, "tuple 98"}
>> +box.space.vinyl:insert{98, 'tuple 98'}
>>   -
>>   - [98, 'tuple 98']
>> -box.space.vinyl:insert{99, "tuple 99"}
>> +box.space.vinyl:insert{99, 'tuple 99'}
>>   -
>>   - [99, 'tuple 99']
>>   box.space.memtx:select{95}
>> @@ -1288,34 +1288,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 5 iteration
>> -box.space.memtx:insert{100, "tuple 100"}
>> +box.space.memtx:insert{100, 'tuple 100'}
>>   -
>>   - [100, 'tuple 100']
>> -box.space.memtx:insert{101, "tuple 101"}
>> +box.space.memtx:insert{101, 'tuple 101'}
>>   -
>>   - [101, 'tuple 101']
>> -box.space.memtx:insert{102, "tuple 102"}
>> +box.space.memtx:insert{102, 'tuple 102'}
>>   -
>>   - [102, 'tuple 102']
>> -box.space.memtx:insert{103, "tuple 103"}
>> +box.space.memtx:insert{103, 'tuple 103'}
>>   -
>>   - [103, 'tuple 103']
>> -box.space.memtx:insert{104, "tuple 104"}
>> +box.space.memtx:insert{104, 'tuple 104'}
>>   -
>>   - [104, 'tuple 104']
>> -box.space.vinyl:insert{100, "tuple 100"}
>> +box.space.vinyl:insert{100, 'tuple 100'}
>>   -
>>   - [100, 'tuple 100']
>> -box.space.vinyl:insert{101, "tuple 101"}
>> +box.space.vinyl:insert{101, 'tuple 101'}
>>   -
>>   - [101, 'tuple 101']
>> -box.space.vinyl:insert{102, "tuple 102"}
>> +box.space.vinyl:insert{102, 'tuple 102'}
>>   -
>>   - [102, 'tuple 102']
>> -box.space.vinyl:insert{103, "tuple 103"}
>> +box.space.vinyl:insert{103, 'tuple 103'}
>>   -
>>   - [103, 'tuple 103']
>> -box.space.vinyl:insert{104, "tuple 104"}
>> +box.space.vinyl:insert{104, 'tuple 104'}
>>   -
>>   - [104, 'tuple 104']
>>   box.space.memtx:select{100}
>> @@ -1348,34 +1348,34 @@ box.space.vinyl:select{103}
>>   box.space.vinyl:select{104}
>>   -
>>   - [104, 'tuple 104']
>> -box.space.memtx:insert{105, "tuple 105"}
>> +box.space.memtx:insert{105, 'tuple 105'}
>>   -
>>   - [105, 'tuple 105']
>> -box.space.memtx:insert{106, "tuple 106"}
>> +box.space.memtx:insert{106, 'tuple 106'}
>>   -
>>   - [106, 'tuple 106']
>> -box.space.memtx:insert{107, "tuple 107"}
>> +box.space.memtx:insert{107, 'tuple 107'}
>>   -
>>   - [107, 'tuple 107']
>> -box.space.memtx:insert{108, "tuple 108"}
>> +box.space.memtx:insert{108, 'tuple 108'}
>>   -
>>   - [108, 'tuple 108']
>> -box.space.memtx:insert{109, "tuple 109"}
>> +box.space.memtx:insert{109, 'tuple 109'}
>>   -
>>   - [109, 'tuple 109']
>> -box.space.vinyl:insert{105, "tuple 105"}
>> +box.space.vinyl:insert{105, 'tuple 105'}
>>   -
>>   - [105, 'tuple 105']
>> -box.space.vinyl:insert{106, "tuple 106"}
>> +box.space.vinyl:insert{106, 'tuple 106'}
>>   -
>>   - [106, 'tuple 106']
>> -box.space.vinyl:insert{107, "tuple 107"}
>> +box.space.vinyl:insert{107, 'tuple 107'}
>>   -
>>   - [107, 'tuple 107']
>> -box.space.vinyl:insert{108, "tuple 108"}
>> +box.space.vinyl:insert{108, 'tuple 108'}
>>   -
>>   - [108, 'tuple 108']
>> -box.space.vinyl:insert{109, "tuple 109"}
>> +box.space.vinyl:insert{109, 'tuple 109'}
>>   -
>>   - [109, 'tuple 109']
>>   box.space.memtx:select{105}
>> @@ -1414,34 +1414,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{110, "tuple 110"}
>> +box.space.memtx:insert{110, 'tuple 110'}
>>   -
>>   - [110, 'tuple 110']
>> -box.space.memtx:insert{111, "tuple 111"}
>> +box.space.memtx:insert{111, 'tuple 111'}
>>   -
>>   - [111, 'tuple 111']
>> -box.space.memtx:insert{112, "tuple 112"}
>> +box.space.memtx:insert{112, 'tuple 112'}
>>   -
>>   - [112, 'tuple 112']
>> -box.space.memtx:insert{113, "tuple 113"}
>> +box.space.memtx:insert{113, 'tuple 113'}
>>   -
>>   - [113, 'tuple 113']
>> -box.space.memtx:insert{114, "tuple 114"}
>> +box.space.memtx:insert{114, 'tuple 114'}
>>   -
>>   - [114, 'tuple 114']
>> -box.space.vinyl:insert{110, "tuple 110"}
>> +box.space.vinyl:insert{110, 'tuple 110'}
>>   -
>>   - [110, 'tuple 110']
>> -box.space.vinyl:insert{111, "tuple 111"}
>> +box.space.vinyl:insert{111, 'tuple 111'}
>>   -
>>   - [111, 'tuple 111']
>> -box.space.vinyl:insert{112, "tuple 112"}
>> +box.space.vinyl:insert{112, 'tuple 112'}
>>   -
>>   - [112, 'tuple 112']
>> -box.space.vinyl:insert{113, "tuple 113"}
>> +box.space.vinyl:insert{113, 'tuple 113'}
>>   -
>>   - [113, 'tuple 113']
>> -box.space.vinyl:insert{114, "tuple 114"}
>> +box.space.vinyl:insert{114, 'tuple 114'}
>>   -
>>   - [114, 'tuple 114']
>>   box.space.memtx:select{110}
>> @@ -1474,34 +1474,34 @@ box.space.vinyl:select{113}
>>   box.space.vinyl:select{114}
>>   -
>>   - [114, 'tuple 114']
>> -box.space.memtx:insert{115, "tuple 115"}
>> +box.space.memtx:insert{115, 'tuple 115'}
>>   -
>>   - [115, 'tuple 115']
>> -box.space.memtx:insert{116, "tuple 116"}
>> +box.space.memtx:insert{116, 'tuple 116'}
>>   -
>>   - [116, 'tuple 116']
>> -box.space.memtx:insert{117, "tuple 117"}
>> +box.space.memtx:insert{117, 'tuple 117'}
>>   -
>>   - [117, 'tuple 117']
>> -box.space.memtx:insert{118, "tuple 118"}
>> +box.space.memtx:insert{118, 'tuple 118'}
>>   -
>>   - [118, 'tuple 118']
>> -box.space.memtx:insert{119, "tuple 119"}
>> +box.space.memtx:insert{119, 'tuple 119'}
>>   -
>>   - [119, 'tuple 119']
>> -box.space.vinyl:insert{115, "tuple 115"}
>> +box.space.vinyl:insert{115, 'tuple 115'}
>>   -
>>   - [115, 'tuple 115']
>> -box.space.vinyl:insert{116, "tuple 116"}
>> +box.space.vinyl:insert{116, 'tuple 116'}
>>   -
>>   - [116, 'tuple 116']
>> -box.space.vinyl:insert{117, "tuple 117"}
>> +box.space.vinyl:insert{117, 'tuple 117'}
>>   -
>>   - [117, 'tuple 117']
>> -box.space.vinyl:insert{118, "tuple 118"}
>> +box.space.vinyl:insert{118, 'tuple 118'}
>>   -
>>   - [118, 'tuple 118']
>> -box.space.vinyl:insert{119, "tuple 119"}
>> +box.space.vinyl:insert{119, 'tuple 119'}
>>   -
>>   - [119, 'tuple 119']
>>   box.space.memtx:select{115}
>> @@ -1541,34 +1541,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 6 iteration
>> -box.space.memtx:insert{120, "tuple 120"}
>> +box.space.memtx:insert{120, 'tuple 120'}
>>   -
>>   - [120, 'tuple 120']
>> -box.space.memtx:insert{121, "tuple 121"}
>> +box.space.memtx:insert{121, 'tuple 121'}
>>   -
>>   - [121, 'tuple 121']
>> -box.space.memtx:insert{122, "tuple 122"}
>> +box.space.memtx:insert{122, 'tuple 122'}
>>   -
>>   - [122, 'tuple 122']
>> -box.space.memtx:insert{123, "tuple 123"}
>> +box.space.memtx:insert{123, 'tuple 123'}
>>   -
>>   - [123, 'tuple 123']
>> -box.space.memtx:insert{124, "tuple 124"}
>> +box.space.memtx:insert{124, 'tuple 124'}
>>   -
>>   - [124, 'tuple 124']
>> -box.space.vinyl:insert{120, "tuple 120"}
>> +box.space.vinyl:insert{120, 'tuple 120'}
>>   -
>>   - [120, 'tuple 120']
>> -box.space.vinyl:insert{121, "tuple 121"}
>> +box.space.vinyl:insert{121, 'tuple 121'}
>>   -
>>   - [121, 'tuple 121']
>> -box.space.vinyl:insert{122, "tuple 122"}
>> +box.space.vinyl:insert{122, 'tuple 122'}
>>   -
>>   - [122, 'tuple 122']
>> -box.space.vinyl:insert{123, "tuple 123"}
>> +box.space.vinyl:insert{123, 'tuple 123'}
>>   -
>>   - [123, 'tuple 123']
>> -box.space.vinyl:insert{124, "tuple 124"}
>> +box.space.vinyl:insert{124, 'tuple 124'}
>>   -
>>   - [124, 'tuple 124']
>>   box.space.memtx:select{120}
>> @@ -1601,34 +1601,34 @@ box.space.vinyl:select{123}
>>   box.space.vinyl:select{124}
>>   -
>>   - [124, 'tuple 124']
>> -box.space.memtx:insert{125, "tuple 125"}
>> +box.space.memtx:insert{125, 'tuple 125'}
>>   -
>>   - [125, 'tuple 125']
>> -box.space.memtx:insert{126, "tuple 126"}
>> +box.space.memtx:insert{126, 'tuple 126'}
>>   -
>>   - [126, 'tuple 126']
>> -box.space.memtx:insert{127, "tuple 127"}
>> +box.space.memtx:insert{127, 'tuple 127'}
>>   -
>>   - [127, 'tuple 127']
>> -box.space.memtx:insert{128, "tuple 128"}
>> +box.space.memtx:insert{128, 'tuple 128'}
>>   -
>>   - [128, 'tuple 128']
>> -box.space.memtx:insert{129, "tuple 129"}
>> +box.space.memtx:insert{129, 'tuple 129'}
>>   -
>>   - [129, 'tuple 129']
>> -box.space.vinyl:insert{125, "tuple 125"}
>> +box.space.vinyl:insert{125, 'tuple 125'}
>>   -
>>   - [125, 'tuple 125']
>> -box.space.vinyl:insert{126, "tuple 126"}
>> +box.space.vinyl:insert{126, 'tuple 126'}
>>   -
>>   - [126, 'tuple 126']
>> -box.space.vinyl:insert{127, "tuple 127"}
>> +box.space.vinyl:insert{127, 'tuple 127'}
>>   -
>>   - [127, 'tuple 127']
>> -box.space.vinyl:insert{128, "tuple 128"}
>> +box.space.vinyl:insert{128, 'tuple 128'}
>>   -
>>   - [128, 'tuple 128']
>> -box.space.vinyl:insert{129, "tuple 129"}
>> +box.space.vinyl:insert{129, 'tuple 129'}
>>   -
>>   - [129, 'tuple 129']
>>   box.space.memtx:select{125}
>> @@ -1667,34 +1667,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{130, "tuple 130"}
>> +box.space.memtx:insert{130, 'tuple 130'}
>>   -
>>   - [130, 'tuple 130']
>> -box.space.memtx:insert{131, "tuple 131"}
>> +box.space.memtx:insert{131, 'tuple 131'}
>>   -
>>   - [131, 'tuple 131']
>> -box.space.memtx:insert{132, "tuple 132"}
>> +box.space.memtx:insert{132, 'tuple 132'}
>>   -
>>   - [132, 'tuple 132']
>> -box.space.memtx:insert{133, "tuple 133"}
>> +box.space.memtx:insert{133, 'tuple 133'}
>>   -
>>   - [133, 'tuple 133']
>> -box.space.memtx:insert{134, "tuple 134"}
>> +box.space.memtx:insert{134, 'tuple 134'}
>>   -
>>   - [134, 'tuple 134']
>> -box.space.vinyl:insert{130, "tuple 130"}
>> +box.space.vinyl:insert{130, 'tuple 130'}
>>   -
>>   - [130, 'tuple 130']
>> -box.space.vinyl:insert{131, "tuple 131"}
>> +box.space.vinyl:insert{131, 'tuple 131'}
>>   -
>>   - [131, 'tuple 131']
>> -box.space.vinyl:insert{132, "tuple 132"}
>> +box.space.vinyl:insert{132, 'tuple 132'}
>>   -
>>   - [132, 'tuple 132']
>> -box.space.vinyl:insert{133, "tuple 133"}
>> +box.space.vinyl:insert{133, 'tuple 133'}
>>   -
>>   - [133, 'tuple 133']
>> -box.space.vinyl:insert{134, "tuple 134"}
>> +box.space.vinyl:insert{134, 'tuple 134'}
>>   -
>>   - [134, 'tuple 134']
>>   box.space.memtx:select{130}
>> @@ -1727,34 +1727,34 @@ box.space.vinyl:select{133}
>>   box.space.vinyl:select{134}
>>   -
>>   - [134, 'tuple 134']
>> -box.space.memtx:insert{135, "tuple 135"}
>> +box.space.memtx:insert{135, 'tuple 135'}
>>   -
>>   - [135, 'tuple 135']
>> -box.space.memtx:insert{136, "tuple 136"}
>> +box.space.memtx:insert{136, 'tuple 136'}
>>   -
>>   - [136, 'tuple 136']
>> -box.space.memtx:insert{137, "tuple 137"}
>> +box.space.memtx:insert{137, 'tuple 137'}
>>   -
>>   - [137, 'tuple 137']
>> -box.space.memtx:insert{138, "tuple 138"}
>> +box.space.memtx:insert{138, 'tuple 138'}
>>   -
>>   - [138, 'tuple 138']
>> -box.space.memtx:insert{139, "tuple 139"}
>> +box.space.memtx:insert{139, 'tuple 139'}
>>   -
>>   - [139, 'tuple 139']
>> -box.space.vinyl:insert{135, "tuple 135"}
>> +box.space.vinyl:insert{135, 'tuple 135'}
>>   -
>>   - [135, 'tuple 135']
>> -box.space.vinyl:insert{136, "tuple 136"}
>> +box.space.vinyl:insert{136, 'tuple 136'}
>>   -
>>   - [136, 'tuple 136']
>> -box.space.vinyl:insert{137, "tuple 137"}
>> +box.space.vinyl:insert{137, 'tuple 137'}
>>   -
>>   - [137, 'tuple 137']
>> -box.space.vinyl:insert{138, "tuple 138"}
>> +box.space.vinyl:insert{138, 'tuple 138'}
>>   -
>>   - [138, 'tuple 138']
>> -box.space.vinyl:insert{139, "tuple 139"}
>> +box.space.vinyl:insert{139, 'tuple 139'}
>>   -
>>   - [139, 'tuple 139']
>>   box.space.memtx:select{135}
>> @@ -1794,34 +1794,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 7 iteration
>> -box.space.memtx:insert{140, "tuple 140"}
>> +box.space.memtx:insert{140, 'tuple 140'}
>>   -
>>   - [140, 'tuple 140']
>> -box.space.memtx:insert{141, "tuple 141"}
>> +box.space.memtx:insert{141, 'tuple 141'}
>>   -
>>   - [141, 'tuple 141']
>> -box.space.memtx:insert{142, "tuple 142"}
>> +box.space.memtx:insert{142, 'tuple 142'}
>>   -
>>   - [142, 'tuple 142']
>> -box.space.memtx:insert{143, "tuple 143"}
>> +box.space.memtx:insert{143, 'tuple 143'}
>>   -
>>   - [143, 'tuple 143']
>> -box.space.memtx:insert{144, "tuple 144"}
>> +box.space.memtx:insert{144, 'tuple 144'}
>>   -
>>   - [144, 'tuple 144']
>> -box.space.vinyl:insert{140, "tuple 140"}
>> +box.space.vinyl:insert{140, 'tuple 140'}
>>   -
>>   - [140, 'tuple 140']
>> -box.space.vinyl:insert{141, "tuple 141"}
>> +box.space.vinyl:insert{141, 'tuple 141'}
>>   -
>>   - [141, 'tuple 141']
>> -box.space.vinyl:insert{142, "tuple 142"}
>> +box.space.vinyl:insert{142, 'tuple 142'}
>>   -
>>   - [142, 'tuple 142']
>> -box.space.vinyl:insert{143, "tuple 143"}
>> +box.space.vinyl:insert{143, 'tuple 143'}
>>   -
>>   - [143, 'tuple 143']
>> -box.space.vinyl:insert{144, "tuple 144"}
>> +box.space.vinyl:insert{144, 'tuple 144'}
>>   -
>>   - [144, 'tuple 144']
>>   box.space.memtx:select{140}
>> @@ -1854,34 +1854,34 @@ box.space.vinyl:select{143}
>>   box.space.vinyl:select{144}
>>   -
>>   - [144, 'tuple 144']
>> -box.space.memtx:insert{145, "tuple 145"}
>> +box.space.memtx:insert{145, 'tuple 145'}
>>   -
>>   - [145, 'tuple 145']
>> -box.space.memtx:insert{146, "tuple 146"}
>> +box.space.memtx:insert{146, 'tuple 146'}
>>   -
>>   - [146, 'tuple 146']
>> -box.space.memtx:insert{147, "tuple 147"}
>> +box.space.memtx:insert{147, 'tuple 147'}
>>   -
>>   - [147, 'tuple 147']
>> -box.space.memtx:insert{148, "tuple 148"}
>> +box.space.memtx:insert{148, 'tuple 148'}
>>   -
>>   - [148, 'tuple 148']
>> -box.space.memtx:insert{149, "tuple 149"}
>> +box.space.memtx:insert{149, 'tuple 149'}
>>   -
>>   - [149, 'tuple 149']
>> -box.space.vinyl:insert{145, "tuple 145"}
>> +box.space.vinyl:insert{145, 'tuple 145'}
>>   -
>>   - [145, 'tuple 145']
>> -box.space.vinyl:insert{146, "tuple 146"}
>> +box.space.vinyl:insert{146, 'tuple 146'}
>>   -
>>   - [146, 'tuple 146']
>> -box.space.vinyl:insert{147, "tuple 147"}
>> +box.space.vinyl:insert{147, 'tuple 147'}
>>   -
>>   - [147, 'tuple 147']
>> -box.space.vinyl:insert{148, "tuple 148"}
>> +box.space.vinyl:insert{148, 'tuple 148'}
>>   -
>>   - [148, 'tuple 148']
>> -box.space.vinyl:insert{149, "tuple 149"}
>> +box.space.vinyl:insert{149, 'tuple 149'}
>>   -
>>   - [149, 'tuple 149']
>>   box.space.memtx:select{145}
>> @@ -1920,34 +1920,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{150, "tuple 150"}
>> +box.space.memtx:insert{150, 'tuple 150'}
>>   -
>>   - [150, 'tuple 150']
>> -box.space.memtx:insert{151, "tuple 151"}
>> +box.space.memtx:insert{151, 'tuple 151'}
>>   -
>>   - [151, 'tuple 151']
>> -box.space.memtx:insert{152, "tuple 152"}
>> +box.space.memtx:insert{152, 'tuple 152'}
>>   -
>>   - [152, 'tuple 152']
>> -box.space.memtx:insert{153, "tuple 153"}
>> +box.space.memtx:insert{153, 'tuple 153'}
>>   -
>>   - [153, 'tuple 153']
>> -box.space.memtx:insert{154, "tuple 154"}
>> +box.space.memtx:insert{154, 'tuple 154'}
>>   -
>>   - [154, 'tuple 154']
>> -box.space.vinyl:insert{150, "tuple 150"}
>> +box.space.vinyl:insert{150, 'tuple 150'}
>>   -
>>   - [150, 'tuple 150']
>> -box.space.vinyl:insert{151, "tuple 151"}
>> +box.space.vinyl:insert{151, 'tuple 151'}
>>   -
>>   - [151, 'tuple 151']
>> -box.space.vinyl:insert{152, "tuple 152"}
>> +box.space.vinyl:insert{152, 'tuple 152'}
>>   -
>>   - [152, 'tuple 152']
>> -box.space.vinyl:insert{153, "tuple 153"}
>> +box.space.vinyl:insert{153, 'tuple 153'}
>>   -
>>   - [153, 'tuple 153']
>> -box.space.vinyl:insert{154, "tuple 154"}
>> +box.space.vinyl:insert{154, 'tuple 154'}
>>   -
>>   - [154, 'tuple 154']
>>   box.space.memtx:select{150}
>> @@ -1980,34 +1980,34 @@ box.space.vinyl:select{153}
>>   box.space.vinyl:select{154}
>>   -
>>   - [154, 'tuple 154']
>> -box.space.memtx:insert{155, "tuple 155"}
>> +box.space.memtx:insert{155, 'tuple 155'}
>>   -
>>   - [155, 'tuple 155']
>> -box.space.memtx:insert{156, "tuple 156"}
>> +box.space.memtx:insert{156, 'tuple 156'}
>>   -
>>   - [156, 'tuple 156']
>> -box.space.memtx:insert{157, "tuple 157"}
>> +box.space.memtx:insert{157, 'tuple 157'}
>>   -
>>   - [157, 'tuple 157']
>> -box.space.memtx:insert{158, "tuple 158"}
>> +box.space.memtx:insert{158, 'tuple 158'}
>>   -
>>   - [158, 'tuple 158']
>> -box.space.memtx:insert{159, "tuple 159"}
>> +box.space.memtx:insert{159, 'tuple 159'}
>>   -
>>   - [159, 'tuple 159']
>> -box.space.vinyl:insert{155, "tuple 155"}
>> +box.space.vinyl:insert{155, 'tuple 155'}
>>   -
>>   - [155, 'tuple 155']
>> -box.space.vinyl:insert{156, "tuple 156"}
>> +box.space.vinyl:insert{156, 'tuple 156'}
>>   -
>>   - [156, 'tuple 156']
>> -box.space.vinyl:insert{157, "tuple 157"}
>> +box.space.vinyl:insert{157, 'tuple 157'}
>>   -
>>   - [157, 'tuple 157']
>> -box.space.vinyl:insert{158, "tuple 158"}
>> +box.space.vinyl:insert{158, 'tuple 158'}
>>   -
>>   - [158, 'tuple 158']
>> -box.space.vinyl:insert{159, "tuple 159"}
>> +box.space.vinyl:insert{159, 'tuple 159'}
>>   -
>>   - [159, 'tuple 159']
>>   box.space.memtx:select{155}
>> @@ -2047,34 +2047,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 8 iteration
>> -box.space.memtx:insert{160, "tuple 160"}
>> +box.space.memtx:insert{160, 'tuple 160'}
>>   -
>>   - [160, 'tuple 160']
>> -box.space.memtx:insert{161, "tuple 161"}
>> +box.space.memtx:insert{161, 'tuple 161'}
>>   -
>>   - [161, 'tuple 161']
>> -box.space.memtx:insert{162, "tuple 162"}
>> +box.space.memtx:insert{162, 'tuple 162'}
>>   -
>>   - [162, 'tuple 162']
>> -box.space.memtx:insert{163, "tuple 163"}
>> +box.space.memtx:insert{163, 'tuple 163'}
>>   -
>>   - [163, 'tuple 163']
>> -box.space.memtx:insert{164, "tuple 164"}
>> +box.space.memtx:insert{164, 'tuple 164'}
>>   -
>>   - [164, 'tuple 164']
>> -box.space.vinyl:insert{160, "tuple 160"}
>> +box.space.vinyl:insert{160, 'tuple 160'}
>>   -
>>   - [160, 'tuple 160']
>> -box.space.vinyl:insert{161, "tuple 161"}
>> +box.space.vinyl:insert{161, 'tuple 161'}
>>   -
>>   - [161, 'tuple 161']
>> -box.space.vinyl:insert{162, "tuple 162"}
>> +box.space.vinyl:insert{162, 'tuple 162'}
>>   -
>>   - [162, 'tuple 162']
>> -box.space.vinyl:insert{163, "tuple 163"}
>> +box.space.vinyl:insert{163, 'tuple 163'}
>>   -
>>   - [163, 'tuple 163']
>> -box.space.vinyl:insert{164, "tuple 164"}
>> +box.space.vinyl:insert{164, 'tuple 164'}
>>   -
>>   - [164, 'tuple 164']
>>   box.space.memtx:select{160}
>> @@ -2107,34 +2107,34 @@ box.space.vinyl:select{163}
>>   box.space.vinyl:select{164}
>>   -
>>   - [164, 'tuple 164']
>> -box.space.memtx:insert{165, "tuple 165"}
>> +box.space.memtx:insert{165, 'tuple 165'}
>>   -
>>   - [165, 'tuple 165']
>> -box.space.memtx:insert{166, "tuple 166"}
>> +box.space.memtx:insert{166, 'tuple 166'}
>>   -
>>   - [166, 'tuple 166']
>> -box.space.memtx:insert{167, "tuple 167"}
>> +box.space.memtx:insert{167, 'tuple 167'}
>>   -
>>   - [167, 'tuple 167']
>> -box.space.memtx:insert{168, "tuple 168"}
>> +box.space.memtx:insert{168, 'tuple 168'}
>>   -
>>   - [168, 'tuple 168']
>> -box.space.memtx:insert{169, "tuple 169"}
>> +box.space.memtx:insert{169, 'tuple 169'}
>>   -
>>   - [169, 'tuple 169']
>> -box.space.vinyl:insert{165, "tuple 165"}
>> +box.space.vinyl:insert{165, 'tuple 165'}
>>   -
>>   - [165, 'tuple 165']
>> -box.space.vinyl:insert{166, "tuple 166"}
>> +box.space.vinyl:insert{166, 'tuple 166'}
>>   -
>>   - [166, 'tuple 166']
>> -box.space.vinyl:insert{167, "tuple 167"}
>> +box.space.vinyl:insert{167, 'tuple 167'}
>>   -
>>   - [167, 'tuple 167']
>> -box.space.vinyl:insert{168, "tuple 168"}
>> +box.space.vinyl:insert{168, 'tuple 168'}
>>   -
>>   - [168, 'tuple 168']
>> -box.space.vinyl:insert{169, "tuple 169"}
>> +box.space.vinyl:insert{169, 'tuple 169'}
>>   -
>>   - [169, 'tuple 169']
>>   box.space.memtx:select{165}
>> @@ -2173,34 +2173,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{170, "tuple 170"}
>> +box.space.memtx:insert{170, 'tuple 170'}
>>   -
>>   - [170, 'tuple 170']
>> -box.space.memtx:insert{171, "tuple 171"}
>> +box.space.memtx:insert{171, 'tuple 171'}
>>   -
>>   - [171, 'tuple 171']
>> -box.space.memtx:insert{172, "tuple 172"}
>> +box.space.memtx:insert{172, 'tuple 172'}
>>   -
>>   - [172, 'tuple 172']
>> -box.space.memtx:insert{173, "tuple 173"}
>> +box.space.memtx:insert{173, 'tuple 173'}
>>   -
>>   - [173, 'tuple 173']
>> -box.space.memtx:insert{174, "tuple 174"}
>> +box.space.memtx:insert{174, 'tuple 174'}
>>   -
>>   - [174, 'tuple 174']
>> -box.space.vinyl:insert{170, "tuple 170"}
>> +box.space.vinyl:insert{170, 'tuple 170'}
>>   -
>>   - [170, 'tuple 170']
>> -box.space.vinyl:insert{171, "tuple 171"}
>> +box.space.vinyl:insert{171, 'tuple 171'}
>>   -
>>   - [171, 'tuple 171']
>> -box.space.vinyl:insert{172, "tuple 172"}
>> +box.space.vinyl:insert{172, 'tuple 172'}
>>   -
>>   - [172, 'tuple 172']
>> -box.space.vinyl:insert{173, "tuple 173"}
>> +box.space.vinyl:insert{173, 'tuple 173'}
>>   -
>>   - [173, 'tuple 173']
>> -box.space.vinyl:insert{174, "tuple 174"}
>> +box.space.vinyl:insert{174, 'tuple 174'}
>>   -
>>   - [174, 'tuple 174']
>>   box.space.memtx:select{170}
>> @@ -2233,34 +2233,34 @@ box.space.vinyl:select{173}
>>   box.space.vinyl:select{174}
>>   -
>>   - [174, 'tuple 174']
>> -box.space.memtx:insert{175, "tuple 175"}
>> +box.space.memtx:insert{175, 'tuple 175'}
>>   -
>>   - [175, 'tuple 175']
>> -box.space.memtx:insert{176, "tuple 176"}
>> +box.space.memtx:insert{176, 'tuple 176'}
>>   -
>>   - [176, 'tuple 176']
>> -box.space.memtx:insert{177, "tuple 177"}
>> +box.space.memtx:insert{177, 'tuple 177'}
>>   -
>>   - [177, 'tuple 177']
>> -box.space.memtx:insert{178, "tuple 178"}
>> +box.space.memtx:insert{178, 'tuple 178'}
>>   -
>>   - [178, 'tuple 178']
>> -box.space.memtx:insert{179, "tuple 179"}
>> +box.space.memtx:insert{179, 'tuple 179'}
>>   -
>>   - [179, 'tuple 179']
>> -box.space.vinyl:insert{175, "tuple 175"}
>> +box.space.vinyl:insert{175, 'tuple 175'}
>>   -
>>   - [175, 'tuple 175']
>> -box.space.vinyl:insert{176, "tuple 176"}
>> +box.space.vinyl:insert{176, 'tuple 176'}
>>   -
>>   - [176, 'tuple 176']
>> -box.space.vinyl:insert{177, "tuple 177"}
>> +box.space.vinyl:insert{177, 'tuple 177'}
>>   -
>>   - [177, 'tuple 177']
>> -box.space.vinyl:insert{178, "tuple 178"}
>> +box.space.vinyl:insert{178, 'tuple 178'}
>>   -
>>   - [178, 'tuple 178']
>> -box.space.vinyl:insert{179, "tuple 179"}
>> +box.space.vinyl:insert{179, 'tuple 179'}
>>   -
>>   - [179, 'tuple 179']
>>   box.space.memtx:select{175}
>> @@ -2300,34 +2300,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 9 iteration
>> -box.space.memtx:insert{180, "tuple 180"}
>> +box.space.memtx:insert{180, 'tuple 180'}
>>   -
>>   - [180, 'tuple 180']
>> -box.space.memtx:insert{181, "tuple 181"}
>> +box.space.memtx:insert{181, 'tuple 181'}
>>   -
>>   - [181, 'tuple 181']
>> -box.space.memtx:insert{182, "tuple 182"}
>> +box.space.memtx:insert{182, 'tuple 182'}
>>   -
>>   - [182, 'tuple 182']
>> -box.space.memtx:insert{183, "tuple 183"}
>> +box.space.memtx:insert{183, 'tuple 183'}
>>   -
>>   - [183, 'tuple 183']
>> -box.space.memtx:insert{184, "tuple 184"}
>> +box.space.memtx:insert{184, 'tuple 184'}
>>   -
>>   - [184, 'tuple 184']
>> -box.space.vinyl:insert{180, "tuple 180"}
>> +box.space.vinyl:insert{180, 'tuple 180'}
>>   -
>>   - [180, 'tuple 180']
>> -box.space.vinyl:insert{181, "tuple 181"}
>> +box.space.vinyl:insert{181, 'tuple 181'}
>>   -
>>   - [181, 'tuple 181']
>> -box.space.vinyl:insert{182, "tuple 182"}
>> +box.space.vinyl:insert{182, 'tuple 182'}
>>   -
>>   - [182, 'tuple 182']
>> -box.space.vinyl:insert{183, "tuple 183"}
>> +box.space.vinyl:insert{183, 'tuple 183'}
>>   -
>>   - [183, 'tuple 183']
>> -box.space.vinyl:insert{184, "tuple 184"}
>> +box.space.vinyl:insert{184, 'tuple 184'}
>>   -
>>   - [184, 'tuple 184']
>>   box.space.memtx:select{180}
>> @@ -2360,34 +2360,34 @@ box.space.vinyl:select{183}
>>   box.space.vinyl:select{184}
>>   -
>>   - [184, 'tuple 184']
>> -box.space.memtx:insert{185, "tuple 185"}
>> +box.space.memtx:insert{185, 'tuple 185'}
>>   -
>>   - [185, 'tuple 185']
>> -box.space.memtx:insert{186, "tuple 186"}
>> +box.space.memtx:insert{186, 'tuple 186'}
>>   -
>>   - [186, 'tuple 186']
>> -box.space.memtx:insert{187, "tuple 187"}
>> +box.space.memtx:insert{187, 'tuple 187'}
>>   -
>>   - [187, 'tuple 187']
>> -box.space.memtx:insert{188, "tuple 188"}
>> +box.space.memtx:insert{188, 'tuple 188'}
>>   -
>>   - [188, 'tuple 188']
>> -box.space.memtx:insert{189, "tuple 189"}
>> +box.space.memtx:insert{189, 'tuple 189'}
>>   -
>>   - [189, 'tuple 189']
>> -box.space.vinyl:insert{185, "tuple 185"}
>> +box.space.vinyl:insert{185, 'tuple 185'}
>>   -
>>   - [185, 'tuple 185']
>> -box.space.vinyl:insert{186, "tuple 186"}
>> +box.space.vinyl:insert{186, 'tuple 186'}
>>   -
>>   - [186, 'tuple 186']
>> -box.space.vinyl:insert{187, "tuple 187"}
>> +box.space.vinyl:insert{187, 'tuple 187'}
>>   -
>>   - [187, 'tuple 187']
>> -box.space.vinyl:insert{188, "tuple 188"}
>> +box.space.vinyl:insert{188, 'tuple 188'}
>>   -
>>   - [188, 'tuple 188']
>> -box.space.vinyl:insert{189, "tuple 189"}
>> +box.space.vinyl:insert{189, 'tuple 189'}
>>   -
>>   - [189, 'tuple 189']
>>   box.space.memtx:select{185}
>> @@ -2426,34 +2426,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{190, "tuple 190"}
>> +box.space.memtx:insert{190, 'tuple 190'}
>>   -
>>   - [190, 'tuple 190']
>> -box.space.memtx:insert{191, "tuple 191"}
>> +box.space.memtx:insert{191, 'tuple 191'}
>>   -
>>   - [191, 'tuple 191']
>> -box.space.memtx:insert{192, "tuple 192"}
>> +box.space.memtx:insert{192, 'tuple 192'}
>>   -
>>   - [192, 'tuple 192']
>> -box.space.memtx:insert{193, "tuple 193"}
>> +box.space.memtx:insert{193, 'tuple 193'}
>>   -
>>   - [193, 'tuple 193']
>> -box.space.memtx:insert{194, "tuple 194"}
>> +box.space.memtx:insert{194, 'tuple 194'}
>>   -
>>   - [194, 'tuple 194']
>> -box.space.vinyl:insert{190, "tuple 190"}
>> +box.space.vinyl:insert{190, 'tuple 190'}
>>   -
>>   - [190, 'tuple 190']
>> -box.space.vinyl:insert{191, "tuple 191"}
>> +box.space.vinyl:insert{191, 'tuple 191'}
>>   -
>>   - [191, 'tuple 191']
>> -box.space.vinyl:insert{192, "tuple 192"}
>> +box.space.vinyl:insert{192, 'tuple 192'}
>>   -
>>   - [192, 'tuple 192']
>> -box.space.vinyl:insert{193, "tuple 193"}
>> +box.space.vinyl:insert{193, 'tuple 193'}
>>   -
>>   - [193, 'tuple 193']
>> -box.space.vinyl:insert{194, "tuple 194"}
>> +box.space.vinyl:insert{194, 'tuple 194'}
>>   -
>>   - [194, 'tuple 194']
>>   box.space.memtx:select{190}
>> @@ -2486,34 +2486,34 @@ box.space.vinyl:select{193}
>>   box.space.vinyl:select{194}
>>   -
>>   - [194, 'tuple 194']
>> -box.space.memtx:insert{195, "tuple 195"}
>> +box.space.memtx:insert{195, 'tuple 195'}
>>   -
>>   - [195, 'tuple 195']
>> -box.space.memtx:insert{196, "tuple 196"}
>> +box.space.memtx:insert{196, 'tuple 196'}
>>   -
>>   - [196, 'tuple 196']
>> -box.space.memtx:insert{197, "tuple 197"}
>> +box.space.memtx:insert{197, 'tuple 197'}
>>   -
>>   - [197, 'tuple 197']
>> -box.space.memtx:insert{198, "tuple 198"}
>> +box.space.memtx:insert{198, 'tuple 198'}
>>   -
>>   - [198, 'tuple 198']
>> -box.space.memtx:insert{199, "tuple 199"}
>> +box.space.memtx:insert{199, 'tuple 199'}
>>   -
>>   - [199, 'tuple 199']
>> -box.space.vinyl:insert{195, "tuple 195"}
>> +box.space.vinyl:insert{195, 'tuple 195'}
>>   -
>>   - [195, 'tuple 195']
>> -box.space.vinyl:insert{196, "tuple 196"}
>> +box.space.vinyl:insert{196, 'tuple 196'}
>>   -
>>   - [196, 'tuple 196']
>> -box.space.vinyl:insert{197, "tuple 197"}
>> +box.space.vinyl:insert{197, 'tuple 197'}
>>   -
>>   - [197, 'tuple 197']
>> -box.space.vinyl:insert{198, "tuple 198"}
>> +box.space.vinyl:insert{198, 'tuple 198'}
>>   -
>>   - [198, 'tuple 198']
>> -box.space.vinyl:insert{199, "tuple 199"}
>> +box.space.vinyl:insert{199, 'tuple 199'}
>>   -
>>   - [199, 'tuple 199']
>>   box.space.memtx:select{195}
>> @@ -2553,34 +2553,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 10 iteration
>> -box.space.memtx:insert{200, "tuple 200"}
>> +box.space.memtx:insert{200, 'tuple 200'}
>>   -
>>   - [200, 'tuple 200']
>> -box.space.memtx:insert{201, "tuple 201"}
>> +box.space.memtx:insert{201, 'tuple 201'}
>>   -
>>   - [201, 'tuple 201']
>> -box.space.memtx:insert{202, "tuple 202"}
>> +box.space.memtx:insert{202, 'tuple 202'}
>>   -
>>   - [202, 'tuple 202']
>> -box.space.memtx:insert{203, "tuple 203"}
>> +box.space.memtx:insert{203, 'tuple 203'}
>>   -
>>   - [203, 'tuple 203']
>> -box.space.memtx:insert{204, "tuple 204"}
>> +box.space.memtx:insert{204, 'tuple 204'}
>>   -
>>   - [204, 'tuple 204']
>> -box.space.vinyl:insert{200, "tuple 200"}
>> +box.space.vinyl:insert{200, 'tuple 200'}
>>   -
>>   - [200, 'tuple 200']
>> -box.space.vinyl:insert{201, "tuple 201"}
>> +box.space.vinyl:insert{201, 'tuple 201'}
>>   -
>>   - [201, 'tuple 201']
>> -box.space.vinyl:insert{202, "tuple 202"}
>> +box.space.vinyl:insert{202, 'tuple 202'}
>>   -
>>   - [202, 'tuple 202']
>> -box.space.vinyl:insert{203, "tuple 203"}
>> +box.space.vinyl:insert{203, 'tuple 203'}
>>   -
>>   - [203, 'tuple 203']
>> -box.space.vinyl:insert{204, "tuple 204"}
>> +box.space.vinyl:insert{204, 'tuple 204'}
>>   -
>>   - [204, 'tuple 204']
>>   box.space.memtx:select{200}
>> @@ -2613,34 +2613,34 @@ box.space.vinyl:select{203}
>>   box.space.vinyl:select{204}
>>   -
>>   - [204, 'tuple 204']
>> -box.space.memtx:insert{205, "tuple 205"}
>> +box.space.memtx:insert{205, 'tuple 205'}
>>   -
>>   - [205, 'tuple 205']
>> -box.space.memtx:insert{206, "tuple 206"}
>> +box.space.memtx:insert{206, 'tuple 206'}
>>   -
>>   - [206, 'tuple 206']
>> -box.space.memtx:insert{207, "tuple 207"}
>> +box.space.memtx:insert{207, 'tuple 207'}
>>   -
>>   - [207, 'tuple 207']
>> -box.space.memtx:insert{208, "tuple 208"}
>> +box.space.memtx:insert{208, 'tuple 208'}
>>   -
>>   - [208, 'tuple 208']
>> -box.space.memtx:insert{209, "tuple 209"}
>> +box.space.memtx:insert{209, 'tuple 209'}
>>   -
>>   - [209, 'tuple 209']
>> -box.space.vinyl:insert{205, "tuple 205"}
>> +box.space.vinyl:insert{205, 'tuple 205'}
>>   -
>>   - [205, 'tuple 205']
>> -box.space.vinyl:insert{206, "tuple 206"}
>> +box.space.vinyl:insert{206, 'tuple 206'}
>>   -
>>   - [206, 'tuple 206']
>> -box.space.vinyl:insert{207, "tuple 207"}
>> +box.space.vinyl:insert{207, 'tuple 207'}
>>   -
>>   - [207, 'tuple 207']
>> -box.space.vinyl:insert{208, "tuple 208"}
>> +box.space.vinyl:insert{208, 'tuple 208'}
>>   -
>>   - [208, 'tuple 208']
>> -box.space.vinyl:insert{209, "tuple 209"}
>> +box.space.vinyl:insert{209, 'tuple 209'}
>>   -
>>   - [209, 'tuple 209']
>>   box.space.memtx:select{205}
>> @@ -2679,34 +2679,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{210, "tuple 210"}
>> +box.space.memtx:insert{210, 'tuple 210'}
>>   -
>>   - [210, 'tuple 210']
>> -box.space.memtx:insert{211, "tuple 211"}
>> +box.space.memtx:insert{211, 'tuple 211'}
>>   -
>>   - [211, 'tuple 211']
>> -box.space.memtx:insert{212, "tuple 212"}
>> +box.space.memtx:insert{212, 'tuple 212'}
>>   -
>>   - [212, 'tuple 212']
>> -box.space.memtx:insert{213, "tuple 213"}
>> +box.space.memtx:insert{213, 'tuple 213'}
>>   -
>>   - [213, 'tuple 213']
>> -box.space.memtx:insert{214, "tuple 214"}
>> +box.space.memtx:insert{214, 'tuple 214'}
>>   -
>>   - [214, 'tuple 214']
>> -box.space.vinyl:insert{210, "tuple 210"}
>> +box.space.vinyl:insert{210, 'tuple 210'}
>>   -
>>   - [210, 'tuple 210']
>> -box.space.vinyl:insert{211, "tuple 211"}
>> +box.space.vinyl:insert{211, 'tuple 211'}
>>   -
>>   - [211, 'tuple 211']
>> -box.space.vinyl:insert{212, "tuple 212"}
>> +box.space.vinyl:insert{212, 'tuple 212'}
>>   -
>>   - [212, 'tuple 212']
>> -box.space.vinyl:insert{213, "tuple 213"}
>> +box.space.vinyl:insert{213, 'tuple 213'}
>>   -
>>   - [213, 'tuple 213']
>> -box.space.vinyl:insert{214, "tuple 214"}
>> +box.space.vinyl:insert{214, 'tuple 214'}
>>   -
>>   - [214, 'tuple 214']
>>   box.space.memtx:select{210}
>> @@ -2739,34 +2739,34 @@ box.space.vinyl:select{213}
>>   box.space.vinyl:select{214}
>>   -
>>   - [214, 'tuple 214']
>> -box.space.memtx:insert{215, "tuple 215"}
>> +box.space.memtx:insert{215, 'tuple 215'}
>>   -
>>   - [215, 'tuple 215']
>> -box.space.memtx:insert{216, "tuple 216"}
>> +box.space.memtx:insert{216, 'tuple 216'}
>>   -
>>   - [216, 'tuple 216']
>> -box.space.memtx:insert{217, "tuple 217"}
>> +box.space.memtx:insert{217, 'tuple 217'}
>>   -
>>   - [217, 'tuple 217']
>> -box.space.memtx:insert{218, "tuple 218"}
>> +box.space.memtx:insert{218, 'tuple 218'}
>>   -
>>   - [218, 'tuple 218']
>> -box.space.memtx:insert{219, "tuple 219"}
>> +box.space.memtx:insert{219, 'tuple 219'}
>>   -
>>   - [219, 'tuple 219']
>> -box.space.vinyl:insert{215, "tuple 215"}
>> +box.space.vinyl:insert{215, 'tuple 215'}
>>   -
>>   - [215, 'tuple 215']
>> -box.space.vinyl:insert{216, "tuple 216"}
>> +box.space.vinyl:insert{216, 'tuple 216'}
>>   -
>>   - [216, 'tuple 216']
>> -box.space.vinyl:insert{217, "tuple 217"}
>> +box.space.vinyl:insert{217, 'tuple 217'}
>>   -
>>   - [217, 'tuple 217']
>> -box.space.vinyl:insert{218, "tuple 218"}
>> +box.space.vinyl:insert{218, 'tuple 218'}
>>   -
>>   - [218, 'tuple 218']
>> -box.space.vinyl:insert{219, "tuple 219"}
>> +box.space.vinyl:insert{219, 'tuple 219'}
>>   -
>>   - [219, 'tuple 219']
>>   box.space.memtx:select{215}
>> @@ -2806,34 +2806,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 11 iteration
>> -box.space.memtx:insert{220, "tuple 220"}
>> +box.space.memtx:insert{220, 'tuple 220'}
>>   -
>>   - [220, 'tuple 220']
>> -box.space.memtx:insert{221, "tuple 221"}
>> +box.space.memtx:insert{221, 'tuple 221'}
>>   -
>>   - [221, 'tuple 221']
>> -box.space.memtx:insert{222, "tuple 222"}
>> +box.space.memtx:insert{222, 'tuple 222'}
>>   -
>>   - [222, 'tuple 222']
>> -box.space.memtx:insert{223, "tuple 223"}
>> +box.space.memtx:insert{223, 'tuple 223'}
>>   -
>>   - [223, 'tuple 223']
>> -box.space.memtx:insert{224, "tuple 224"}
>> +box.space.memtx:insert{224, 'tuple 224'}
>>   -
>>   - [224, 'tuple 224']
>> -box.space.vinyl:insert{220, "tuple 220"}
>> +box.space.vinyl:insert{220, 'tuple 220'}
>>   -
>>   - [220, 'tuple 220']
>> -box.space.vinyl:insert{221, "tuple 221"}
>> +box.space.vinyl:insert{221, 'tuple 221'}
>>   -
>>   - [221, 'tuple 221']
>> -box.space.vinyl:insert{222, "tuple 222"}
>> +box.space.vinyl:insert{222, 'tuple 222'}
>>   -
>>   - [222, 'tuple 222']
>> -box.space.vinyl:insert{223, "tuple 223"}
>> +box.space.vinyl:insert{223, 'tuple 223'}
>>   -
>>   - [223, 'tuple 223']
>> -box.space.vinyl:insert{224, "tuple 224"}
>> +box.space.vinyl:insert{224, 'tuple 224'}
>>   -
>>   - [224, 'tuple 224']
>>   box.space.memtx:select{220}
>> @@ -2866,34 +2866,34 @@ box.space.vinyl:select{223}
>>   box.space.vinyl:select{224}
>>   -
>>   - [224, 'tuple 224']
>> -box.space.memtx:insert{225, "tuple 225"}
>> +box.space.memtx:insert{225, 'tuple 225'}
>>   -
>>   - [225, 'tuple 225']
>> -box.space.memtx:insert{226, "tuple 226"}
>> +box.space.memtx:insert{226, 'tuple 226'}
>>   -
>>   - [226, 'tuple 226']
>> -box.space.memtx:insert{227, "tuple 227"}
>> +box.space.memtx:insert{227, 'tuple 227'}
>>   -
>>   - [227, 'tuple 227']
>> -box.space.memtx:insert{228, "tuple 228"}
>> +box.space.memtx:insert{228, 'tuple 228'}
>>   -
>>   - [228, 'tuple 228']
>> -box.space.memtx:insert{229, "tuple 229"}
>> +box.space.memtx:insert{229, 'tuple 229'}
>>   -
>>   - [229, 'tuple 229']
>> -box.space.vinyl:insert{225, "tuple 225"}
>> +box.space.vinyl:insert{225, 'tuple 225'}
>>   -
>>   - [225, 'tuple 225']
>> -box.space.vinyl:insert{226, "tuple 226"}
>> +box.space.vinyl:insert{226, 'tuple 226'}
>>   -
>>   - [226, 'tuple 226']
>> -box.space.vinyl:insert{227, "tuple 227"}
>> +box.space.vinyl:insert{227, 'tuple 227'}
>>   -
>>   - [227, 'tuple 227']
>> -box.space.vinyl:insert{228, "tuple 228"}
>> +box.space.vinyl:insert{228, 'tuple 228'}
>>   -
>>   - [228, 'tuple 228']
>> -box.space.vinyl:insert{229, "tuple 229"}
>> +box.space.vinyl:insert{229, 'tuple 229'}
>>   -
>>   - [229, 'tuple 229']
>>   box.space.memtx:select{225}
>> @@ -2932,34 +2932,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{230, "tuple 230"}
>> +box.space.memtx:insert{230, 'tuple 230'}
>>   -
>>   - [230, 'tuple 230']
>> -box.space.memtx:insert{231, "tuple 231"}
>> +box.space.memtx:insert{231, 'tuple 231'}
>>   -
>>   - [231, 'tuple 231']
>> -box.space.memtx:insert{232, "tuple 232"}
>> +box.space.memtx:insert{232, 'tuple 232'}
>>   -
>>   - [232, 'tuple 232']
>> -box.space.memtx:insert{233, "tuple 233"}
>> +box.space.memtx:insert{233, 'tuple 233'}
>>   -
>>   - [233, 'tuple 233']
>> -box.space.memtx:insert{234, "tuple 234"}
>> +box.space.memtx:insert{234, 'tuple 234'}
>>   -
>>   - [234, 'tuple 234']
>> -box.space.vinyl:insert{230, "tuple 230"}
>> +box.space.vinyl:insert{230, 'tuple 230'}
>>   -
>>   - [230, 'tuple 230']
>> -box.space.vinyl:insert{231, "tuple 231"}
>> +box.space.vinyl:insert{231, 'tuple 231'}
>>   -
>>   - [231, 'tuple 231']
>> -box.space.vinyl:insert{232, "tuple 232"}
>> +box.space.vinyl:insert{232, 'tuple 232'}
>>   -
>>   - [232, 'tuple 232']
>> -box.space.vinyl:insert{233, "tuple 233"}
>> +box.space.vinyl:insert{233, 'tuple 233'}
>>   -
>>   - [233, 'tuple 233']
>> -box.space.vinyl:insert{234, "tuple 234"}
>> +box.space.vinyl:insert{234, 'tuple 234'}
>>   -
>>   - [234, 'tuple 234']
>>   box.space.memtx:select{230}
>> @@ -2992,34 +2992,34 @@ box.space.vinyl:select{233}
>>   box.space.vinyl:select{234}
>>   -
>>   - [234, 'tuple 234']
>> -box.space.memtx:insert{235, "tuple 235"}
>> +box.space.memtx:insert{235, 'tuple 235'}
>>   -
>>   - [235, 'tuple 235']
>> -box.space.memtx:insert{236, "tuple 236"}
>> +box.space.memtx:insert{236, 'tuple 236'}
>>   -
>>   - [236, 'tuple 236']
>> -box.space.memtx:insert{237, "tuple 237"}
>> +box.space.memtx:insert{237, 'tuple 237'}
>>   -
>>   - [237, 'tuple 237']
>> -box.space.memtx:insert{238, "tuple 238"}
>> +box.space.memtx:insert{238, 'tuple 238'}
>>   -
>>   - [238, 'tuple 238']
>> -box.space.memtx:insert{239, "tuple 239"}
>> +box.space.memtx:insert{239, 'tuple 239'}
>>   -
>>   - [239, 'tuple 239']
>> -box.space.vinyl:insert{235, "tuple 235"}
>> +box.space.vinyl:insert{235, 'tuple 235'}
>>   -
>>   - [235, 'tuple 235']
>> -box.space.vinyl:insert{236, "tuple 236"}
>> +box.space.vinyl:insert{236, 'tuple 236'}
>>   -
>>   - [236, 'tuple 236']
>> -box.space.vinyl:insert{237, "tuple 237"}
>> +box.space.vinyl:insert{237, 'tuple 237'}
>>   -
>>   - [237, 'tuple 237']
>> -box.space.vinyl:insert{238, "tuple 238"}
>> +box.space.vinyl:insert{238, 'tuple 238'}
>>   -
>>   - [238, 'tuple 238']
>> -box.space.vinyl:insert{239, "tuple 239"}
>> +box.space.vinyl:insert{239, 'tuple 239'}
>>   -
>>   - [239, 'tuple 239']
>>   box.space.memtx:select{235}
>> @@ -3059,34 +3059,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 12 iteration
>> -box.space.memtx:insert{240, "tuple 240"}
>> +box.space.memtx:insert{240, 'tuple 240'}
>>   -
>>   - [240, 'tuple 240']
>> -box.space.memtx:insert{241, "tuple 241"}
>> +box.space.memtx:insert{241, 'tuple 241'}
>>   -
>>   - [241, 'tuple 241']
>> -box.space.memtx:insert{242, "tuple 242"}
>> +box.space.memtx:insert{242, 'tuple 242'}
>>   -
>>   - [242, 'tuple 242']
>> -box.space.memtx:insert{243, "tuple 243"}
>> +box.space.memtx:insert{243, 'tuple 243'}
>>   -
>>   - [243, 'tuple 243']
>> -box.space.memtx:insert{244, "tuple 244"}
>> +box.space.memtx:insert{244, 'tuple 244'}
>>   -
>>   - [244, 'tuple 244']
>> -box.space.vinyl:insert{240, "tuple 240"}
>> +box.space.vinyl:insert{240, 'tuple 240'}
>>   -
>>   - [240, 'tuple 240']
>> -box.space.vinyl:insert{241, "tuple 241"}
>> +box.space.vinyl:insert{241, 'tuple 241'}
>>   -
>>   - [241, 'tuple 241']
>> -box.space.vinyl:insert{242, "tuple 242"}
>> +box.space.vinyl:insert{242, 'tuple 242'}
>>   -
>>   - [242, 'tuple 242']
>> -box.space.vinyl:insert{243, "tuple 243"}
>> +box.space.vinyl:insert{243, 'tuple 243'}
>>   -
>>   - [243, 'tuple 243']
>> -box.space.vinyl:insert{244, "tuple 244"}
>> +box.space.vinyl:insert{244, 'tuple 244'}
>>   -
>>   - [244, 'tuple 244']
>>   box.space.memtx:select{240}
>> @@ -3119,34 +3119,34 @@ box.space.vinyl:select{243}
>>   box.space.vinyl:select{244}
>>   -
>>   - [244, 'tuple 244']
>> -box.space.memtx:insert{245, "tuple 245"}
>> +box.space.memtx:insert{245, 'tuple 245'}
>>   -
>>   - [245, 'tuple 245']
>> -box.space.memtx:insert{246, "tuple 246"}
>> +box.space.memtx:insert{246, 'tuple 246'}
>>   -
>>   - [246, 'tuple 246']
>> -box.space.memtx:insert{247, "tuple 247"}
>> +box.space.memtx:insert{247, 'tuple 247'}
>>   -
>>   - [247, 'tuple 247']
>> -box.space.memtx:insert{248, "tuple 248"}
>> +box.space.memtx:insert{248, 'tuple 248'}
>>   -
>>   - [248, 'tuple 248']
>> -box.space.memtx:insert{249, "tuple 249"}
>> +box.space.memtx:insert{249, 'tuple 249'}
>>   -
>>   - [249, 'tuple 249']
>> -box.space.vinyl:insert{245, "tuple 245"}
>> +box.space.vinyl:insert{245, 'tuple 245'}
>>   -
>>   - [245, 'tuple 245']
>> -box.space.vinyl:insert{246, "tuple 246"}
>> +box.space.vinyl:insert{246, 'tuple 246'}
>>   -
>>   - [246, 'tuple 246']
>> -box.space.vinyl:insert{247, "tuple 247"}
>> +box.space.vinyl:insert{247, 'tuple 247'}
>>   -
>>   - [247, 'tuple 247']
>> -box.space.vinyl:insert{248, "tuple 248"}
>> +box.space.vinyl:insert{248, 'tuple 248'}
>>   -
>>   - [248, 'tuple 248']
>> -box.space.vinyl:insert{249, "tuple 249"}
>> +box.space.vinyl:insert{249, 'tuple 249'}
>>   -
>>   - [249, 'tuple 249']
>>   box.space.memtx:select{245}
>> @@ -3185,34 +3185,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{250, "tuple 250"}
>> +box.space.memtx:insert{250, 'tuple 250'}
>>   -
>>   - [250, 'tuple 250']
>> -box.space.memtx:insert{251, "tuple 251"}
>> +box.space.memtx:insert{251, 'tuple 251'}
>>   -
>>   - [251, 'tuple 251']
>> -box.space.memtx:insert{252, "tuple 252"}
>> +box.space.memtx:insert{252, 'tuple 252'}
>>   -
>>   - [252, 'tuple 252']
>> -box.space.memtx:insert{253, "tuple 253"}
>> +box.space.memtx:insert{253, 'tuple 253'}
>>   -
>>   - [253, 'tuple 253']
>> -box.space.memtx:insert{254, "tuple 254"}
>> +box.space.memtx:insert{254, 'tuple 254'}
>>   -
>>   - [254, 'tuple 254']
>> -box.space.vinyl:insert{250, "tuple 250"}
>> +box.space.vinyl:insert{250, 'tuple 250'}
>>   -
>>   - [250, 'tuple 250']
>> -box.space.vinyl:insert{251, "tuple 251"}
>> +box.space.vinyl:insert{251, 'tuple 251'}
>>   -
>>   - [251, 'tuple 251']
>> -box.space.vinyl:insert{252, "tuple 252"}
>> +box.space.vinyl:insert{252, 'tuple 252'}
>>   -
>>   - [252, 'tuple 252']
>> -box.space.vinyl:insert{253, "tuple 253"}
>> +box.space.vinyl:insert{253, 'tuple 253'}
>>   -
>>   - [253, 'tuple 253']
>> -box.space.vinyl:insert{254, "tuple 254"}
>> +box.space.vinyl:insert{254, 'tuple 254'}
>>   -
>>   - [254, 'tuple 254']
>>   box.space.memtx:select{250}
>> @@ -3245,34 +3245,34 @@ box.space.vinyl:select{253}
>>   box.space.vinyl:select{254}
>>   -
>>   - [254, 'tuple 254']
>> -box.space.memtx:insert{255, "tuple 255"}
>> +box.space.memtx:insert{255, 'tuple 255'}
>>   -
>>   - [255, 'tuple 255']
>> -box.space.memtx:insert{256, "tuple 256"}
>> +box.space.memtx:insert{256, 'tuple 256'}
>>   -
>>   - [256, 'tuple 256']
>> -box.space.memtx:insert{257, "tuple 257"}
>> +box.space.memtx:insert{257, 'tuple 257'}
>>   -
>>   - [257, 'tuple 257']
>> -box.space.memtx:insert{258, "tuple 258"}
>> +box.space.memtx:insert{258, 'tuple 258'}
>>   -
>>   - [258, 'tuple 258']
>> -box.space.memtx:insert{259, "tuple 259"}
>> +box.space.memtx:insert{259, 'tuple 259'}
>>   -
>>   - [259, 'tuple 259']
>> -box.space.vinyl:insert{255, "tuple 255"}
>> +box.space.vinyl:insert{255, 'tuple 255'}
>>   -
>>   - [255, 'tuple 255']
>> -box.space.vinyl:insert{256, "tuple 256"}
>> +box.space.vinyl:insert{256, 'tuple 256'}
>>   -
>>   - [256, 'tuple 256']
>> -box.space.vinyl:insert{257, "tuple 257"}
>> +box.space.vinyl:insert{257, 'tuple 257'}
>>   -
>>   - [257, 'tuple 257']
>> -box.space.vinyl:insert{258, "tuple 258"}
>> +box.space.vinyl:insert{258, 'tuple 258'}
>>   -
>>   - [258, 'tuple 258']
>> -box.space.vinyl:insert{259, "tuple 259"}
>> +box.space.vinyl:insert{259, 'tuple 259'}
>>   -
>>   - [259, 'tuple 259']
>>   box.space.memtx:select{255}
>> @@ -3312,34 +3312,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 13 iteration
>> -box.space.memtx:insert{260, "tuple 260"}
>> +box.space.memtx:insert{260, 'tuple 260'}
>>   -
>>   - [260, 'tuple 260']
>> -box.space.memtx:insert{261, "tuple 261"}
>> +box.space.memtx:insert{261, 'tuple 261'}
>>   -
>>   - [261, 'tuple 261']
>> -box.space.memtx:insert{262, "tuple 262"}
>> +box.space.memtx:insert{262, 'tuple 262'}
>>   -
>>   - [262, 'tuple 262']
>> -box.space.memtx:insert{263, "tuple 263"}
>> +box.space.memtx:insert{263, 'tuple 263'}
>>   -
>>   - [263, 'tuple 263']
>> -box.space.memtx:insert{264, "tuple 264"}
>> +box.space.memtx:insert{264, 'tuple 264'}
>>   -
>>   - [264, 'tuple 264']
>> -box.space.vinyl:insert{260, "tuple 260"}
>> +box.space.vinyl:insert{260, 'tuple 260'}
>>   -
>>   - [260, 'tuple 260']
>> -box.space.vinyl:insert{261, "tuple 261"}
>> +box.space.vinyl:insert{261, 'tuple 261'}
>>   -
>>   - [261, 'tuple 261']
>> -box.space.vinyl:insert{262, "tuple 262"}
>> +box.space.vinyl:insert{262, 'tuple 262'}
>>   -
>>   - [262, 'tuple 262']
>> -box.space.vinyl:insert{263, "tuple 263"}
>> +box.space.vinyl:insert{263, 'tuple 263'}
>>   -
>>   - [263, 'tuple 263']
>> -box.space.vinyl:insert{264, "tuple 264"}
>> +box.space.vinyl:insert{264, 'tuple 264'}
>>   -
>>   - [264, 'tuple 264']
>>   box.space.memtx:select{260}
>> @@ -3372,34 +3372,34 @@ box.space.vinyl:select{263}
>>   box.space.vinyl:select{264}
>>   -
>>   - [264, 'tuple 264']
>> -box.space.memtx:insert{265, "tuple 265"}
>> +box.space.memtx:insert{265, 'tuple 265'}
>>   -
>>   - [265, 'tuple 265']
>> -box.space.memtx:insert{266, "tuple 266"}
>> +box.space.memtx:insert{266, 'tuple 266'}
>>   -
>>   - [266, 'tuple 266']
>> -box.space.memtx:insert{267, "tuple 267"}
>> +box.space.memtx:insert{267, 'tuple 267'}
>>   -
>>   - [267, 'tuple 267']
>> -box.space.memtx:insert{268, "tuple 268"}
>> +box.space.memtx:insert{268, 'tuple 268'}
>>   -
>>   - [268, 'tuple 268']
>> -box.space.memtx:insert{269, "tuple 269"}
>> +box.space.memtx:insert{269, 'tuple 269'}
>>   -
>>   - [269, 'tuple 269']
>> -box.space.vinyl:insert{265, "tuple 265"}
>> +box.space.vinyl:insert{265, 'tuple 265'}
>>   -
>>   - [265, 'tuple 265']
>> -box.space.vinyl:insert{266, "tuple 266"}
>> +box.space.vinyl:insert{266, 'tuple 266'}
>>   -
>>   - [266, 'tuple 266']
>> -box.space.vinyl:insert{267, "tuple 267"}
>> +box.space.vinyl:insert{267, 'tuple 267'}
>>   -
>>   - [267, 'tuple 267']
>> -box.space.vinyl:insert{268, "tuple 268"}
>> +box.space.vinyl:insert{268, 'tuple 268'}
>>   -
>>   - [268, 'tuple 268']
>> -box.space.vinyl:insert{269, "tuple 269"}
>> +box.space.vinyl:insert{269, 'tuple 269'}
>>   -
>>   - [269, 'tuple 269']
>>   box.space.memtx:select{265}
>> @@ -3438,34 +3438,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{270, "tuple 270"}
>> +box.space.memtx:insert{270, 'tuple 270'}
>>   -
>>   - [270, 'tuple 270']
>> -box.space.memtx:insert{271, "tuple 271"}
>> +box.space.memtx:insert{271, 'tuple 271'}
>>   -
>>   - [271, 'tuple 271']
>> -box.space.memtx:insert{272, "tuple 272"}
>> +box.space.memtx:insert{272, 'tuple 272'}
>>   -
>>   - [272, 'tuple 272']
>> -box.space.memtx:insert{273, "tuple 273"}
>> +box.space.memtx:insert{273, 'tuple 273'}
>>   -
>>   - [273, 'tuple 273']
>> -box.space.memtx:insert{274, "tuple 274"}
>> +box.space.memtx:insert{274, 'tuple 274'}
>>   -
>>   - [274, 'tuple 274']
>> -box.space.vinyl:insert{270, "tuple 270"}
>> +box.space.vinyl:insert{270, 'tuple 270'}
>>   -
>>   - [270, 'tuple 270']
>> -box.space.vinyl:insert{271, "tuple 271"}
>> +box.space.vinyl:insert{271, 'tuple 271'}
>>   -
>>   - [271, 'tuple 271']
>> -box.space.vinyl:insert{272, "tuple 272"}
>> +box.space.vinyl:insert{272, 'tuple 272'}
>>   -
>>   - [272, 'tuple 272']
>> -box.space.vinyl:insert{273, "tuple 273"}
>> +box.space.vinyl:insert{273, 'tuple 273'}
>>   -
>>   - [273, 'tuple 273']
>> -box.space.vinyl:insert{274, "tuple 274"}
>> +box.space.vinyl:insert{274, 'tuple 274'}
>>   -
>>   - [274, 'tuple 274']
>>   box.space.memtx:select{270}
>> @@ -3498,34 +3498,34 @@ box.space.vinyl:select{273}
>>   box.space.vinyl:select{274}
>>   -
>>   - [274, 'tuple 274']
>> -box.space.memtx:insert{275, "tuple 275"}
>> +box.space.memtx:insert{275, 'tuple 275'}
>>   -
>>   - [275, 'tuple 275']
>> -box.space.memtx:insert{276, "tuple 276"}
>> +box.space.memtx:insert{276, 'tuple 276'}
>>   -
>>   - [276, 'tuple 276']
>> -box.space.memtx:insert{277, "tuple 277"}
>> +box.space.memtx:insert{277, 'tuple 277'}
>>   -
>>   - [277, 'tuple 277']
>> -box.space.memtx:insert{278, "tuple 278"}
>> +box.space.memtx:insert{278, 'tuple 278'}
>>   -
>>   - [278, 'tuple 278']
>> -box.space.memtx:insert{279, "tuple 279"}
>> +box.space.memtx:insert{279, 'tuple 279'}
>>   -
>>   - [279, 'tuple 279']
>> -box.space.vinyl:insert{275, "tuple 275"}
>> +box.space.vinyl:insert{275, 'tuple 275'}
>>   -
>>   - [275, 'tuple 275']
>> -box.space.vinyl:insert{276, "tuple 276"}
>> +box.space.vinyl:insert{276, 'tuple 276'}
>>   -
>>   - [276, 'tuple 276']
>> -box.space.vinyl:insert{277, "tuple 277"}
>> +box.space.vinyl:insert{277, 'tuple 277'}
>>   -
>>   - [277, 'tuple 277']
>> -box.space.vinyl:insert{278, "tuple 278"}
>> +box.space.vinyl:insert{278, 'tuple 278'}
>>   -
>>   - [278, 'tuple 278']
>> -box.space.vinyl:insert{279, "tuple 279"}
>> +box.space.vinyl:insert{279, 'tuple 279'}
>>   -
>>   - [279, 'tuple 279']
>>   box.space.memtx:select{275}
>> @@ -3565,34 +3565,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 14 iteration
>> -box.space.memtx:insert{280, "tuple 280"}
>> +box.space.memtx:insert{280, 'tuple 280'}
>>   -
>>   - [280, 'tuple 280']
>> -box.space.memtx:insert{281, "tuple 281"}
>> +box.space.memtx:insert{281, 'tuple 281'}
>>   -
>>   - [281, 'tuple 281']
>> -box.space.memtx:insert{282, "tuple 282"}
>> +box.space.memtx:insert{282, 'tuple 282'}
>>   -
>>   - [282, 'tuple 282']
>> -box.space.memtx:insert{283, "tuple 283"}
>> +box.space.memtx:insert{283, 'tuple 283'}
>>   -
>>   - [283, 'tuple 283']
>> -box.space.memtx:insert{284, "tuple 284"}
>> +box.space.memtx:insert{284, 'tuple 284'}
>>   -
>>   - [284, 'tuple 284']
>> -box.space.vinyl:insert{280, "tuple 280"}
>> +box.space.vinyl:insert{280, 'tuple 280'}
>>   -
>>   - [280, 'tuple 280']
>> -box.space.vinyl:insert{281, "tuple 281"}
>> +box.space.vinyl:insert{281, 'tuple 281'}
>>   -
>>   - [281, 'tuple 281']
>> -box.space.vinyl:insert{282, "tuple 282"}
>> +box.space.vinyl:insert{282, 'tuple 282'}
>>   -
>>   - [282, 'tuple 282']
>> -box.space.vinyl:insert{283, "tuple 283"}
>> +box.space.vinyl:insert{283, 'tuple 283'}
>>   -
>>   - [283, 'tuple 283']
>> -box.space.vinyl:insert{284, "tuple 284"}
>> +box.space.vinyl:insert{284, 'tuple 284'}
>>   -
>>   - [284, 'tuple 284']
>>   box.space.memtx:select{280}
>> @@ -3625,34 +3625,34 @@ box.space.vinyl:select{283}
>>   box.space.vinyl:select{284}
>>   -
>>   - [284, 'tuple 284']
>> -box.space.memtx:insert{285, "tuple 285"}
>> +box.space.memtx:insert{285, 'tuple 285'}
>>   -
>>   - [285, 'tuple 285']
>> -box.space.memtx:insert{286, "tuple 286"}
>> +box.space.memtx:insert{286, 'tuple 286'}
>>   -
>>   - [286, 'tuple 286']
>> -box.space.memtx:insert{287, "tuple 287"}
>> +box.space.memtx:insert{287, 'tuple 287'}
>>   -
>>   - [287, 'tuple 287']
>> -box.space.memtx:insert{288, "tuple 288"}
>> +box.space.memtx:insert{288, 'tuple 288'}
>>   -
>>   - [288, 'tuple 288']
>> -box.space.memtx:insert{289, "tuple 289"}
>> +box.space.memtx:insert{289, 'tuple 289'}
>>   -
>>   - [289, 'tuple 289']
>> -box.space.vinyl:insert{285, "tuple 285"}
>> +box.space.vinyl:insert{285, 'tuple 285'}
>>   -
>>   - [285, 'tuple 285']
>> -box.space.vinyl:insert{286, "tuple 286"}
>> +box.space.vinyl:insert{286, 'tuple 286'}
>>   -
>>   - [286, 'tuple 286']
>> -box.space.vinyl:insert{287, "tuple 287"}
>> +box.space.vinyl:insert{287, 'tuple 287'}
>>   -
>>   - [287, 'tuple 287']
>> -box.space.vinyl:insert{288, "tuple 288"}
>> +box.space.vinyl:insert{288, 'tuple 288'}
>>   -
>>   - [288, 'tuple 288']
>> -box.space.vinyl:insert{289, "tuple 289"}
>> +box.space.vinyl:insert{289, 'tuple 289'}
>>   -
>>   - [289, 'tuple 289']
>>   box.space.memtx:select{285}
>> @@ -3691,34 +3691,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{290, "tuple 290"}
>> +box.space.memtx:insert{290, 'tuple 290'}
>>   -
>>   - [290, 'tuple 290']
>> -box.space.memtx:insert{291, "tuple 291"}
>> +box.space.memtx:insert{291, 'tuple 291'}
>>   -
>>   - [291, 'tuple 291']
>> -box.space.memtx:insert{292, "tuple 292"}
>> +box.space.memtx:insert{292, 'tuple 292'}
>>   -
>>   - [292, 'tuple 292']
>> -box.space.memtx:insert{293, "tuple 293"}
>> +box.space.memtx:insert{293, 'tuple 293'}
>>   -
>>   - [293, 'tuple 293']
>> -box.space.memtx:insert{294, "tuple 294"}
>> +box.space.memtx:insert{294, 'tuple 294'}
>>   -
>>   - [294, 'tuple 294']
>> -box.space.vinyl:insert{290, "tuple 290"}
>> +box.space.vinyl:insert{290, 'tuple 290'}
>>   -
>>   - [290, 'tuple 290']
>> -box.space.vinyl:insert{291, "tuple 291"}
>> +box.space.vinyl:insert{291, 'tuple 291'}
>>   -
>>   - [291, 'tuple 291']
>> -box.space.vinyl:insert{292, "tuple 292"}
>> +box.space.vinyl:insert{292, 'tuple 292'}
>>   -
>>   - [292, 'tuple 292']
>> -box.space.vinyl:insert{293, "tuple 293"}
>> +box.space.vinyl:insert{293, 'tuple 293'}
>>   -
>>   - [293, 'tuple 293']
>> -box.space.vinyl:insert{294, "tuple 294"}
>> +box.space.vinyl:insert{294, 'tuple 294'}
>>   -
>>   - [294, 'tuple 294']
>>   box.space.memtx:select{290}
>> @@ -3751,34 +3751,34 @@ box.space.vinyl:select{293}
>>   box.space.vinyl:select{294}
>>   -
>>   - [294, 'tuple 294']
>> -box.space.memtx:insert{295, "tuple 295"}
>> +box.space.memtx:insert{295, 'tuple 295'}
>>   -
>>   - [295, 'tuple 295']
>> -box.space.memtx:insert{296, "tuple 296"}
>> +box.space.memtx:insert{296, 'tuple 296'}
>>   -
>>   - [296, 'tuple 296']
>> -box.space.memtx:insert{297, "tuple 297"}
>> +box.space.memtx:insert{297, 'tuple 297'}
>>   -
>>   - [297, 'tuple 297']
>> -box.space.memtx:insert{298, "tuple 298"}
>> +box.space.memtx:insert{298, 'tuple 298'}
>>   -
>>   - [298, 'tuple 298']
>> -box.space.memtx:insert{299, "tuple 299"}
>> +box.space.memtx:insert{299, 'tuple 299'}
>>   -
>>   - [299, 'tuple 299']
>> -box.space.vinyl:insert{295, "tuple 295"}
>> +box.space.vinyl:insert{295, 'tuple 295'}
>>   -
>>   - [295, 'tuple 295']
>> -box.space.vinyl:insert{296, "tuple 296"}
>> +box.space.vinyl:insert{296, 'tuple 296'}
>>   -
>>   - [296, 'tuple 296']
>> -box.space.vinyl:insert{297, "tuple 297"}
>> +box.space.vinyl:insert{297, 'tuple 297'}
>>   -
>>   - [297, 'tuple 297']
>> -box.space.vinyl:insert{298, "tuple 298"}
>> +box.space.vinyl:insert{298, 'tuple 298'}
>>   -
>>   - [298, 'tuple 298']
>> -box.space.vinyl:insert{299, "tuple 299"}
>> +box.space.vinyl:insert{299, 'tuple 299'}
>>   -
>>   - [299, 'tuple 299']
>>   box.space.memtx:select{295}
>> @@ -3818,34 +3818,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 15 iteration
>> -box.space.memtx:insert{300, "tuple 300"}
>> +box.space.memtx:insert{300, 'tuple 300'}
>>   -
>>   - [300, 'tuple 300']
>> -box.space.memtx:insert{301, "tuple 301"}
>> +box.space.memtx:insert{301, 'tuple 301'}
>>   -
>>   - [301, 'tuple 301']
>> -box.space.memtx:insert{302, "tuple 302"}
>> +box.space.memtx:insert{302, 'tuple 302'}
>>   -
>>   - [302, 'tuple 302']
>> -box.space.memtx:insert{303, "tuple 303"}
>> +box.space.memtx:insert{303, 'tuple 303'}
>>   -
>>   - [303, 'tuple 303']
>> -box.space.memtx:insert{304, "tuple 304"}
>> +box.space.memtx:insert{304, 'tuple 304'}
>>   -
>>   - [304, 'tuple 304']
>> -box.space.vinyl:insert{300, "tuple 300"}
>> +box.space.vinyl:insert{300, 'tuple 300'}
>>   -
>>   - [300, 'tuple 300']
>> -box.space.vinyl:insert{301, "tuple 301"}
>> +box.space.vinyl:insert{301, 'tuple 301'}
>>   -
>>   - [301, 'tuple 301']
>> -box.space.vinyl:insert{302, "tuple 302"}
>> +box.space.vinyl:insert{302, 'tuple 302'}
>>   -
>>   - [302, 'tuple 302']
>> -box.space.vinyl:insert{303, "tuple 303"}
>> +box.space.vinyl:insert{303, 'tuple 303'}
>>   -
>>   - [303, 'tuple 303']
>> -box.space.vinyl:insert{304, "tuple 304"}
>> +box.space.vinyl:insert{304, 'tuple 304'}
>>   -
>>   - [304, 'tuple 304']
>>   box.space.memtx:select{300}
>> @@ -3878,34 +3878,34 @@ box.space.vinyl:select{303}
>>   box.space.vinyl:select{304}
>>   -
>>   - [304, 'tuple 304']
>> -box.space.memtx:insert{305, "tuple 305"}
>> +box.space.memtx:insert{305, 'tuple 305'}
>>   -
>>   - [305, 'tuple 305']
>> -box.space.memtx:insert{306, "tuple 306"}
>> +box.space.memtx:insert{306, 'tuple 306'}
>>   -
>>   - [306, 'tuple 306']
>> -box.space.memtx:insert{307, "tuple 307"}
>> +box.space.memtx:insert{307, 'tuple 307'}
>>   -
>>   - [307, 'tuple 307']
>> -box.space.memtx:insert{308, "tuple 308"}
>> +box.space.memtx:insert{308, 'tuple 308'}
>>   -
>>   - [308, 'tuple 308']
>> -box.space.memtx:insert{309, "tuple 309"}
>> +box.space.memtx:insert{309, 'tuple 309'}
>>   -
>>   - [309, 'tuple 309']
>> -box.space.vinyl:insert{305, "tuple 305"}
>> +box.space.vinyl:insert{305, 'tuple 305'}
>>   -
>>   - [305, 'tuple 305']
>> -box.space.vinyl:insert{306, "tuple 306"}
>> +box.space.vinyl:insert{306, 'tuple 306'}
>>   -
>>   - [306, 'tuple 306']
>> -box.space.vinyl:insert{307, "tuple 307"}
>> +box.space.vinyl:insert{307, 'tuple 307'}
>>   -
>>   - [307, 'tuple 307']
>> -box.space.vinyl:insert{308, "tuple 308"}
>> +box.space.vinyl:insert{308, 'tuple 308'}
>>   -
>>   - [308, 'tuple 308']
>> -box.space.vinyl:insert{309, "tuple 309"}
>> +box.space.vinyl:insert{309, 'tuple 309'}
>>   -
>>   - [309, 'tuple 309']
>>   box.space.memtx:select{305}
>> @@ -3944,34 +3944,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{310, "tuple 310"}
>> +box.space.memtx:insert{310, 'tuple 310'}
>>   -
>>   - [310, 'tuple 310']
>> -box.space.memtx:insert{311, "tuple 311"}
>> +box.space.memtx:insert{311, 'tuple 311'}
>>   -
>>   - [311, 'tuple 311']
>> -box.space.memtx:insert{312, "tuple 312"}
>> +box.space.memtx:insert{312, 'tuple 312'}
>>   -
>>   - [312, 'tuple 312']
>> -box.space.memtx:insert{313, "tuple 313"}
>> +box.space.memtx:insert{313, 'tuple 313'}
>>   -
>>   - [313, 'tuple 313']
>> -box.space.memtx:insert{314, "tuple 314"}
>> +box.space.memtx:insert{314, 'tuple 314'}
>>   -
>>   - [314, 'tuple 314']
>> -box.space.vinyl:insert{310, "tuple 310"}
>> +box.space.vinyl:insert{310, 'tuple 310'}
>>   -
>>   - [310, 'tuple 310']
>> -box.space.vinyl:insert{311, "tuple 311"}
>> +box.space.vinyl:insert{311, 'tuple 311'}
>>   -
>>   - [311, 'tuple 311']
>> -box.space.vinyl:insert{312, "tuple 312"}
>> +box.space.vinyl:insert{312, 'tuple 312'}
>>   -
>>   - [312, 'tuple 312']
>> -box.space.vinyl:insert{313, "tuple 313"}
>> +box.space.vinyl:insert{313, 'tuple 313'}
>>   -
>>   - [313, 'tuple 313']
>> -box.space.vinyl:insert{314, "tuple 314"}
>> +box.space.vinyl:insert{314, 'tuple 314'}
>>   -
>>   - [314, 'tuple 314']
>>   box.space.memtx:select{310}
>> @@ -4004,34 +4004,34 @@ box.space.vinyl:select{313}
>>   box.space.vinyl:select{314}
>>   -
>>   - [314, 'tuple 314']
>> -box.space.memtx:insert{315, "tuple 315"}
>> +box.space.memtx:insert{315, 'tuple 315'}
>>   -
>>   - [315, 'tuple 315']
>> -box.space.memtx:insert{316, "tuple 316"}
>> +box.space.memtx:insert{316, 'tuple 316'}
>>   -
>>   - [316, 'tuple 316']
>> -box.space.memtx:insert{317, "tuple 317"}
>> +box.space.memtx:insert{317, 'tuple 317'}
>>   -
>>   - [317, 'tuple 317']
>> -box.space.memtx:insert{318, "tuple 318"}
>> +box.space.memtx:insert{318, 'tuple 318'}
>>   -
>>   - [318, 'tuple 318']
>> -box.space.memtx:insert{319, "tuple 319"}
>> +box.space.memtx:insert{319, 'tuple 319'}
>>   -
>>   - [319, 'tuple 319']
>> -box.space.vinyl:insert{315, "tuple 315"}
>> +box.space.vinyl:insert{315, 'tuple 315'}
>>   -
>>   - [315, 'tuple 315']
>> -box.space.vinyl:insert{316, "tuple 316"}
>> +box.space.vinyl:insert{316, 'tuple 316'}
>>   -
>>   - [316, 'tuple 316']
>> -box.space.vinyl:insert{317, "tuple 317"}
>> +box.space.vinyl:insert{317, 'tuple 317'}
>>   -
>>   - [317, 'tuple 317']
>> -box.space.vinyl:insert{318, "tuple 318"}
>> +box.space.vinyl:insert{318, 'tuple 318'}
>>   -
>>   - [318, 'tuple 318']
>> -box.space.vinyl:insert{319, "tuple 319"}
>> +box.space.vinyl:insert{319, 'tuple 319'}
>>   -
>>   - [319, 'tuple 319']
>>   box.space.memtx:select{315}
>> @@ -4071,34 +4071,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 16 iteration
>> -box.space.memtx:insert{320, "tuple 320"}
>> +box.space.memtx:insert{320, 'tuple 320'}
>>   -
>>   - [320, 'tuple 320']
>> -box.space.memtx:insert{321, "tuple 321"}
>> +box.space.memtx:insert{321, 'tuple 321'}
>>   -
>>   - [321, 'tuple 321']
>> -box.space.memtx:insert{322, "tuple 322"}
>> +box.space.memtx:insert{322, 'tuple 322'}
>>   -
>>   - [322, 'tuple 322']
>> -box.space.memtx:insert{323, "tuple 323"}
>> +box.space.memtx:insert{323, 'tuple 323'}
>>   -
>>   - [323, 'tuple 323']
>> -box.space.memtx:insert{324, "tuple 324"}
>> +box.space.memtx:insert{324, 'tuple 324'}
>>   -
>>   - [324, 'tuple 324']
>> -box.space.vinyl:insert{320, "tuple 320"}
>> +box.space.vinyl:insert{320, 'tuple 320'}
>>   -
>>   - [320, 'tuple 320']
>> -box.space.vinyl:insert{321, "tuple 321"}
>> +box.space.vinyl:insert{321, 'tuple 321'}
>>   -
>>   - [321, 'tuple 321']
>> -box.space.vinyl:insert{322, "tuple 322"}
>> +box.space.vinyl:insert{322, 'tuple 322'}
>>   -
>>   - [322, 'tuple 322']
>> -box.space.vinyl:insert{323, "tuple 323"}
>> +box.space.vinyl:insert{323, 'tuple 323'}
>>   -
>>   - [323, 'tuple 323']
>> -box.space.vinyl:insert{324, "tuple 324"}
>> +box.space.vinyl:insert{324, 'tuple 324'}
>>   -
>>   - [324, 'tuple 324']
>>   box.space.memtx:select{320}
>> @@ -4131,34 +4131,34 @@ box.space.vinyl:select{323}
>>   box.space.vinyl:select{324}
>>   -
>>   - [324, 'tuple 324']
>> -box.space.memtx:insert{325, "tuple 325"}
>> +box.space.memtx:insert{325, 'tuple 325'}
>>   -
>>   - [325, 'tuple 325']
>> -box.space.memtx:insert{326, "tuple 326"}
>> +box.space.memtx:insert{326, 'tuple 326'}
>>   -
>>   - [326, 'tuple 326']
>> -box.space.memtx:insert{327, "tuple 327"}
>> +box.space.memtx:insert{327, 'tuple 327'}
>>   -
>>   - [327, 'tuple 327']
>> -box.space.memtx:insert{328, "tuple 328"}
>> +box.space.memtx:insert{328, 'tuple 328'}
>>   -
>>   - [328, 'tuple 328']
>> -box.space.memtx:insert{329, "tuple 329"}
>> +box.space.memtx:insert{329, 'tuple 329'}
>>   -
>>   - [329, 'tuple 329']
>> -box.space.vinyl:insert{325, "tuple 325"}
>> +box.space.vinyl:insert{325, 'tuple 325'}
>>   -
>>   - [325, 'tuple 325']
>> -box.space.vinyl:insert{326, "tuple 326"}
>> +box.space.vinyl:insert{326, 'tuple 326'}
>>   -
>>   - [326, 'tuple 326']
>> -box.space.vinyl:insert{327, "tuple 327"}
>> +box.space.vinyl:insert{327, 'tuple 327'}
>>   -
>>   - [327, 'tuple 327']
>> -box.space.vinyl:insert{328, "tuple 328"}
>> +box.space.vinyl:insert{328, 'tuple 328'}
>>   -
>>   - [328, 'tuple 328']
>> -box.space.vinyl:insert{329, "tuple 329"}
>> +box.space.vinyl:insert{329, 'tuple 329'}
>>   -
>>   - [329, 'tuple 329']
>>   box.space.memtx:select{325}
>> @@ -4197,34 +4197,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{330, "tuple 330"}
>> +box.space.memtx:insert{330, 'tuple 330'}
>>   -
>>   - [330, 'tuple 330']
>> -box.space.memtx:insert{331, "tuple 331"}
>> +box.space.memtx:insert{331, 'tuple 331'}
>>   -
>>   - [331, 'tuple 331']
>> -box.space.memtx:insert{332, "tuple 332"}
>> +box.space.memtx:insert{332, 'tuple 332'}
>>   -
>>   - [332, 'tuple 332']
>> -box.space.memtx:insert{333, "tuple 333"}
>> +box.space.memtx:insert{333, 'tuple 333'}
>>   -
>>   - [333, 'tuple 333']
>> -box.space.memtx:insert{334, "tuple 334"}
>> +box.space.memtx:insert{334, 'tuple 334'}
>>   -
>>   - [334, 'tuple 334']
>> -box.space.vinyl:insert{330, "tuple 330"}
>> +box.space.vinyl:insert{330, 'tuple 330'}
>>   -
>>   - [330, 'tuple 330']
>> -box.space.vinyl:insert{331, "tuple 331"}
>> +box.space.vinyl:insert{331, 'tuple 331'}
>>   -
>>   - [331, 'tuple 331']
>> -box.space.vinyl:insert{332, "tuple 332"}
>> +box.space.vinyl:insert{332, 'tuple 332'}
>>   -
>>   - [332, 'tuple 332']
>> -box.space.vinyl:insert{333, "tuple 333"}
>> +box.space.vinyl:insert{333, 'tuple 333'}
>>   -
>>   - [333, 'tuple 333']
>> -box.space.vinyl:insert{334, "tuple 334"}
>> +box.space.vinyl:insert{334, 'tuple 334'}
>>   -
>>   - [334, 'tuple 334']
>>   box.space.memtx:select{330}
>> @@ -4257,34 +4257,34 @@ box.space.vinyl:select{333}
>>   box.space.vinyl:select{334}
>>   -
>>   - [334, 'tuple 334']
>> -box.space.memtx:insert{335, "tuple 335"}
>> +box.space.memtx:insert{335, 'tuple 335'}
>>   -
>>   - [335, 'tuple 335']
>> -box.space.memtx:insert{336, "tuple 336"}
>> +box.space.memtx:insert{336, 'tuple 336'}
>>   -
>>   - [336, 'tuple 336']
>> -box.space.memtx:insert{337, "tuple 337"}
>> +box.space.memtx:insert{337, 'tuple 337'}
>>   -
>>   - [337, 'tuple 337']
>> -box.space.memtx:insert{338, "tuple 338"}
>> +box.space.memtx:insert{338, 'tuple 338'}
>>   -
>>   - [338, 'tuple 338']
>> -box.space.memtx:insert{339, "tuple 339"}
>> +box.space.memtx:insert{339, 'tuple 339'}
>>   -
>>   - [339, 'tuple 339']
>> -box.space.vinyl:insert{335, "tuple 335"}
>> +box.space.vinyl:insert{335, 'tuple 335'}
>>   -
>>   - [335, 'tuple 335']
>> -box.space.vinyl:insert{336, "tuple 336"}
>> +box.space.vinyl:insert{336, 'tuple 336'}
>>   -
>>   - [336, 'tuple 336']
>> -box.space.vinyl:insert{337, "tuple 337"}
>> +box.space.vinyl:insert{337, 'tuple 337'}
>>   -
>>   - [337, 'tuple 337']
>> -box.space.vinyl:insert{338, "tuple 338"}
>> +box.space.vinyl:insert{338, 'tuple 338'}
>>   -
>>   - [338, 'tuple 338']
>> -box.space.vinyl:insert{339, "tuple 339"}
>> +box.space.vinyl:insert{339, 'tuple 339'}
>>   -
>>   - [339, 'tuple 339']
>>   box.space.memtx:select{335}
>> @@ -4324,34 +4324,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 17 iteration
>> -box.space.memtx:insert{340, "tuple 340"}
>> +box.space.memtx:insert{340, 'tuple 340'}
>>   -
>>   - [340, 'tuple 340']
>> -box.space.memtx:insert{341, "tuple 341"}
>> +box.space.memtx:insert{341, 'tuple 341'}
>>   -
>>   - [341, 'tuple 341']
>> -box.space.memtx:insert{342, "tuple 342"}
>> +box.space.memtx:insert{342, 'tuple 342'}
>>   -
>>   - [342, 'tuple 342']
>> -box.space.memtx:insert{343, "tuple 343"}
>> +box.space.memtx:insert{343, 'tuple 343'}
>>   -
>>   - [343, 'tuple 343']
>> -box.space.memtx:insert{344, "tuple 344"}
>> +box.space.memtx:insert{344, 'tuple 344'}
>>   -
>>   - [344, 'tuple 344']
>> -box.space.vinyl:insert{340, "tuple 340"}
>> +box.space.vinyl:insert{340, 'tuple 340'}
>>   -
>>   - [340, 'tuple 340']
>> -box.space.vinyl:insert{341, "tuple 341"}
>> +box.space.vinyl:insert{341, 'tuple 341'}
>>   -
>>   - [341, 'tuple 341']
>> -box.space.vinyl:insert{342, "tuple 342"}
>> +box.space.vinyl:insert{342, 'tuple 342'}
>>   -
>>   - [342, 'tuple 342']
>> -box.space.vinyl:insert{343, "tuple 343"}
>> +box.space.vinyl:insert{343, 'tuple 343'}
>>   -
>>   - [343, 'tuple 343']
>> -box.space.vinyl:insert{344, "tuple 344"}
>> +box.space.vinyl:insert{344, 'tuple 344'}
>>   -
>>   - [344, 'tuple 344']
>>   box.space.memtx:select{340}
>> @@ -4384,34 +4384,34 @@ box.space.vinyl:select{343}
>>   box.space.vinyl:select{344}
>>   -
>>   - [344, 'tuple 344']
>> -box.space.memtx:insert{345, "tuple 345"}
>> +box.space.memtx:insert{345, 'tuple 345'}
>>   -
>>   - [345, 'tuple 345']
>> -box.space.memtx:insert{346, "tuple 346"}
>> +box.space.memtx:insert{346, 'tuple 346'}
>>   -
>>   - [346, 'tuple 346']
>> -box.space.memtx:insert{347, "tuple 347"}
>> +box.space.memtx:insert{347, 'tuple 347'}
>>   -
>>   - [347, 'tuple 347']
>> -box.space.memtx:insert{348, "tuple 348"}
>> +box.space.memtx:insert{348, 'tuple 348'}
>>   -
>>   - [348, 'tuple 348']
>> -box.space.memtx:insert{349, "tuple 349"}
>> +box.space.memtx:insert{349, 'tuple 349'}
>>   -
>>   - [349, 'tuple 349']
>> -box.space.vinyl:insert{345, "tuple 345"}
>> +box.space.vinyl:insert{345, 'tuple 345'}
>>   -
>>   - [345, 'tuple 345']
>> -box.space.vinyl:insert{346, "tuple 346"}
>> +box.space.vinyl:insert{346, 'tuple 346'}
>>   -
>>   - [346, 'tuple 346']
>> -box.space.vinyl:insert{347, "tuple 347"}
>> +box.space.vinyl:insert{347, 'tuple 347'}
>>   -
>>   - [347, 'tuple 347']
>> -box.space.vinyl:insert{348, "tuple 348"}
>> +box.space.vinyl:insert{348, 'tuple 348'}
>>   -
>>   - [348, 'tuple 348']
>> -box.space.vinyl:insert{349, "tuple 349"}
>> +box.space.vinyl:insert{349, 'tuple 349'}
>>   -
>>   - [349, 'tuple 349']
>>   box.space.memtx:select{345}
>> @@ -4450,34 +4450,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{350, "tuple 350"}
>> +box.space.memtx:insert{350, 'tuple 350'}
>>   -
>>   - [350, 'tuple 350']
>> -box.space.memtx:insert{351, "tuple 351"}
>> +box.space.memtx:insert{351, 'tuple 351'}
>>   -
>>   - [351, 'tuple 351']
>> -box.space.memtx:insert{352, "tuple 352"}
>> +box.space.memtx:insert{352, 'tuple 352'}
>>   -
>>   - [352, 'tuple 352']
>> -box.space.memtx:insert{353, "tuple 353"}
>> +box.space.memtx:insert{353, 'tuple 353'}
>>   -
>>   - [353, 'tuple 353']
>> -box.space.memtx:insert{354, "tuple 354"}
>> +box.space.memtx:insert{354, 'tuple 354'}
>>   -
>>   - [354, 'tuple 354']
>> -box.space.vinyl:insert{350, "tuple 350"}
>> +box.space.vinyl:insert{350, 'tuple 350'}
>>   -
>>   - [350, 'tuple 350']
>> -box.space.vinyl:insert{351, "tuple 351"}
>> +box.space.vinyl:insert{351, 'tuple 351'}
>>   -
>>   - [351, 'tuple 351']
>> -box.space.vinyl:insert{352, "tuple 352"}
>> +box.space.vinyl:insert{352, 'tuple 352'}
>>   -
>>   - [352, 'tuple 352']
>> -box.space.vinyl:insert{353, "tuple 353"}
>> +box.space.vinyl:insert{353, 'tuple 353'}
>>   -
>>   - [353, 'tuple 353']
>> -box.space.vinyl:insert{354, "tuple 354"}
>> +box.space.vinyl:insert{354, 'tuple 354'}
>>   -
>>   - [354, 'tuple 354']
>>   box.space.memtx:select{350}
>> @@ -4510,34 +4510,34 @@ box.space.vinyl:select{353}
>>   box.space.vinyl:select{354}
>>   -
>>   - [354, 'tuple 354']
>> -box.space.memtx:insert{355, "tuple 355"}
>> +box.space.memtx:insert{355, 'tuple 355'}
>>   -
>>   - [355, 'tuple 355']
>> -box.space.memtx:insert{356, "tuple 356"}
>> +box.space.memtx:insert{356, 'tuple 356'}
>>   -
>>   - [356, 'tuple 356']
>> -box.space.memtx:insert{357, "tuple 357"}
>> +box.space.memtx:insert{357, 'tuple 357'}
>>   -
>>   - [357, 'tuple 357']
>> -box.space.memtx:insert{358, "tuple 358"}
>> +box.space.memtx:insert{358, 'tuple 358'}
>>   -
>>   - [358, 'tuple 358']
>> -box.space.memtx:insert{359, "tuple 359"}
>> +box.space.memtx:insert{359, 'tuple 359'}
>>   -
>>   - [359, 'tuple 359']
>> -box.space.vinyl:insert{355, "tuple 355"}
>> +box.space.vinyl:insert{355, 'tuple 355'}
>>   -
>>   - [355, 'tuple 355']
>> -box.space.vinyl:insert{356, "tuple 356"}
>> +box.space.vinyl:insert{356, 'tuple 356'}
>>   -
>>   - [356, 'tuple 356']
>> -box.space.vinyl:insert{357, "tuple 357"}
>> +box.space.vinyl:insert{357, 'tuple 357'}
>>   -
>>   - [357, 'tuple 357']
>> -box.space.vinyl:insert{358, "tuple 358"}
>> +box.space.vinyl:insert{358, 'tuple 358'}
>>   -
>>   - [358, 'tuple 358']
>> -box.space.vinyl:insert{359, "tuple 359"}
>> +box.space.vinyl:insert{359, 'tuple 359'}
>>   -
>>   - [359, 'tuple 359']
>>   box.space.memtx:select{355}
>> @@ -4577,34 +4577,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 18 iteration
>> -box.space.memtx:insert{360, "tuple 360"}
>> +box.space.memtx:insert{360, 'tuple 360'}
>>   -
>>   - [360, 'tuple 360']
>> -box.space.memtx:insert{361, "tuple 361"}
>> +box.space.memtx:insert{361, 'tuple 361'}
>>   -
>>   - [361, 'tuple 361']
>> -box.space.memtx:insert{362, "tuple 362"}
>> +box.space.memtx:insert{362, 'tuple 362'}
>>   -
>>   - [362, 'tuple 362']
>> -box.space.memtx:insert{363, "tuple 363"}
>> +box.space.memtx:insert{363, 'tuple 363'}
>>   -
>>   - [363, 'tuple 363']
>> -box.space.memtx:insert{364, "tuple 364"}
>> +box.space.memtx:insert{364, 'tuple 364'}
>>   -
>>   - [364, 'tuple 364']
>> -box.space.vinyl:insert{360, "tuple 360"}
>> +box.space.vinyl:insert{360, 'tuple 360'}
>>   -
>>   - [360, 'tuple 360']
>> -box.space.vinyl:insert{361, "tuple 361"}
>> +box.space.vinyl:insert{361, 'tuple 361'}
>>   -
>>   - [361, 'tuple 361']
>> -box.space.vinyl:insert{362, "tuple 362"}
>> +box.space.vinyl:insert{362, 'tuple 362'}
>>   -
>>   - [362, 'tuple 362']
>> -box.space.vinyl:insert{363, "tuple 363"}
>> +box.space.vinyl:insert{363, 'tuple 363'}
>>   -
>>   - [363, 'tuple 363']
>> -box.space.vinyl:insert{364, "tuple 364"}
>> +box.space.vinyl:insert{364, 'tuple 364'}
>>   -
>>   - [364, 'tuple 364']
>>   box.space.memtx:select{360}
>> @@ -4637,34 +4637,34 @@ box.space.vinyl:select{363}
>>   box.space.vinyl:select{364}
>>   -
>>   - [364, 'tuple 364']
>> -box.space.memtx:insert{365, "tuple 365"}
>> +box.space.memtx:insert{365, 'tuple 365'}
>>   -
>>   - [365, 'tuple 365']
>> -box.space.memtx:insert{366, "tuple 366"}
>> +box.space.memtx:insert{366, 'tuple 366'}
>>   -
>>   - [366, 'tuple 366']
>> -box.space.memtx:insert{367, "tuple 367"}
>> +box.space.memtx:insert{367, 'tuple 367'}
>>   -
>>   - [367, 'tuple 367']
>> -box.space.memtx:insert{368, "tuple 368"}
>> +box.space.memtx:insert{368, 'tuple 368'}
>>   -
>>   - [368, 'tuple 368']
>> -box.space.memtx:insert{369, "tuple 369"}
>> +box.space.memtx:insert{369, 'tuple 369'}
>>   -
>>   - [369, 'tuple 369']
>> -box.space.vinyl:insert{365, "tuple 365"}
>> +box.space.vinyl:insert{365, 'tuple 365'}
>>   -
>>   - [365, 'tuple 365']
>> -box.space.vinyl:insert{366, "tuple 366"}
>> +box.space.vinyl:insert{366, 'tuple 366'}
>>   -
>>   - [366, 'tuple 366']
>> -box.space.vinyl:insert{367, "tuple 367"}
>> +box.space.vinyl:insert{367, 'tuple 367'}
>>   -
>>   - [367, 'tuple 367']
>> -box.space.vinyl:insert{368, "tuple 368"}
>> +box.space.vinyl:insert{368, 'tuple 368'}
>>   -
>>   - [368, 'tuple 368']
>> -box.space.vinyl:insert{369, "tuple 369"}
>> +box.space.vinyl:insert{369, 'tuple 369'}
>>   -
>>   - [369, 'tuple 369']
>>   box.space.memtx:select{365}
>> @@ -4703,34 +4703,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{370, "tuple 370"}
>> +box.space.memtx:insert{370, 'tuple 370'}
>>   -
>>   - [370, 'tuple 370']
>> -box.space.memtx:insert{371, "tuple 371"}
>> +box.space.memtx:insert{371, 'tuple 371'}
>>   -
>>   - [371, 'tuple 371']
>> -box.space.memtx:insert{372, "tuple 372"}
>> +box.space.memtx:insert{372, 'tuple 372'}
>>   -
>>   - [372, 'tuple 372']
>> -box.space.memtx:insert{373, "tuple 373"}
>> +box.space.memtx:insert{373, 'tuple 373'}
>>   -
>>   - [373, 'tuple 373']
>> -box.space.memtx:insert{374, "tuple 374"}
>> +box.space.memtx:insert{374, 'tuple 374'}
>>   -
>>   - [374, 'tuple 374']
>> -box.space.vinyl:insert{370, "tuple 370"}
>> +box.space.vinyl:insert{370, 'tuple 370'}
>>   -
>>   - [370, 'tuple 370']
>> -box.space.vinyl:insert{371, "tuple 371"}
>> +box.space.vinyl:insert{371, 'tuple 371'}
>>   -
>>   - [371, 'tuple 371']
>> -box.space.vinyl:insert{372, "tuple 372"}
>> +box.space.vinyl:insert{372, 'tuple 372'}
>>   -
>>   - [372, 'tuple 372']
>> -box.space.vinyl:insert{373, "tuple 373"}
>> +box.space.vinyl:insert{373, 'tuple 373'}
>>   -
>>   - [373, 'tuple 373']
>> -box.space.vinyl:insert{374, "tuple 374"}
>> +box.space.vinyl:insert{374, 'tuple 374'}
>>   -
>>   - [374, 'tuple 374']
>>   box.space.memtx:select{370}
>> @@ -4763,34 +4763,34 @@ box.space.vinyl:select{373}
>>   box.space.vinyl:select{374}
>>   -
>>   - [374, 'tuple 374']
>> -box.space.memtx:insert{375, "tuple 375"}
>> +box.space.memtx:insert{375, 'tuple 375'}
>>   -
>>   - [375, 'tuple 375']
>> -box.space.memtx:insert{376, "tuple 376"}
>> +box.space.memtx:insert{376, 'tuple 376'}
>>   -
>>   - [376, 'tuple 376']
>> -box.space.memtx:insert{377, "tuple 377"}
>> +box.space.memtx:insert{377, 'tuple 377'}
>>   -
>>   - [377, 'tuple 377']
>> -box.space.memtx:insert{378, "tuple 378"}
>> +box.space.memtx:insert{378, 'tuple 378'}
>>   -
>>   - [378, 'tuple 378']
>> -box.space.memtx:insert{379, "tuple 379"}
>> +box.space.memtx:insert{379, 'tuple 379'}
>>   -
>>   - [379, 'tuple 379']
>> -box.space.vinyl:insert{375, "tuple 375"}
>> +box.space.vinyl:insert{375, 'tuple 375'}
>>   -
>>   - [375, 'tuple 375']
>> -box.space.vinyl:insert{376, "tuple 376"}
>> +box.space.vinyl:insert{376, 'tuple 376'}
>>   -
>>   - [376, 'tuple 376']
>> -box.space.vinyl:insert{377, "tuple 377"}
>> +box.space.vinyl:insert{377, 'tuple 377'}
>>   -
>>   - [377, 'tuple 377']
>> -box.space.vinyl:insert{378, "tuple 378"}
>> +box.space.vinyl:insert{378, 'tuple 378'}
>>   -
>>   - [378, 'tuple 378']
>> -box.space.vinyl:insert{379, "tuple 379"}
>> +box.space.vinyl:insert{379, 'tuple 379'}
>>   -
>>   - [379, 'tuple 379']
>>   box.space.memtx:select{375}
>> @@ -4830,34 +4830,34 @@ box.cfg{replication=''}
>>   ...
>>   switch replica to replica
>>   test 19 iteration
>> -box.space.memtx:insert{380, "tuple 380"}
>> +box.space.memtx:insert{380, 'tuple 380'}
>>   -
>>   - [380, 'tuple 380']
>> -box.space.memtx:insert{381, "tuple 381"}
>> +box.space.memtx:insert{381, 'tuple 381'}
>>   -
>>   - [381, 'tuple 381']
>> -box.space.memtx:insert{382, "tuple 382"}
>> +box.space.memtx:insert{382, 'tuple 382'}
>>   -
>>   - [382, 'tuple 382']
>> -box.space.memtx:insert{383, "tuple 383"}
>> +box.space.memtx:insert{383, 'tuple 383'}
>>   -
>>   - [383, 'tuple 383']
>> -box.space.memtx:insert{384, "tuple 384"}
>> +box.space.memtx:insert{384, 'tuple 384'}
>>   -
>>   - [384, 'tuple 384']
>> -box.space.vinyl:insert{380, "tuple 380"}
>> +box.space.vinyl:insert{380, 'tuple 380'}
>>   -
>>   - [380, 'tuple 380']
>> -box.space.vinyl:insert{381, "tuple 381"}
>> +box.space.vinyl:insert{381, 'tuple 381'}
>>   -
>>   - [381, 'tuple 381']
>> -box.space.vinyl:insert{382, "tuple 382"}
>> +box.space.vinyl:insert{382, 'tuple 382'}
>>   -
>>   - [382, 'tuple 382']
>> -box.space.vinyl:insert{383, "tuple 383"}
>> +box.space.vinyl:insert{383, 'tuple 383'}
>>   -
>>   - [383, 'tuple 383']
>> -box.space.vinyl:insert{384, "tuple 384"}
>> +box.space.vinyl:insert{384, 'tuple 384'}
>>   -
>>   - [384, 'tuple 384']
>>   box.space.memtx:select{380}
>> @@ -4890,34 +4890,34 @@ box.space.vinyl:select{383}
>>   box.space.vinyl:select{384}
>>   -
>>   - [384, 'tuple 384']
>> -box.space.memtx:insert{385, "tuple 385"}
>> +box.space.memtx:insert{385, 'tuple 385'}
>>   -
>>   - [385, 'tuple 385']
>> -box.space.memtx:insert{386, "tuple 386"}
>> +box.space.memtx:insert{386, 'tuple 386'}
>>   -
>>   - [386, 'tuple 386']
>> -box.space.memtx:insert{387, "tuple 387"}
>> +box.space.memtx:insert{387, 'tuple 387'}
>>   -
>>   - [387, 'tuple 387']
>> -box.space.memtx:insert{388, "tuple 388"}
>> +box.space.memtx:insert{388, 'tuple 388'}
>>   -
>>   - [388, 'tuple 388']
>> -box.space.memtx:insert{389, "tuple 389"}
>> +box.space.memtx:insert{389, 'tuple 389'}
>>   -
>>   - [389, 'tuple 389']
>> -box.space.vinyl:insert{385, "tuple 385"}
>> +box.space.vinyl:insert{385, 'tuple 385'}
>>   -
>>   - [385, 'tuple 385']
>> -box.space.vinyl:insert{386, "tuple 386"}
>> +box.space.vinyl:insert{386, 'tuple 386'}
>>   -
>>   - [386, 'tuple 386']
>> -box.space.vinyl:insert{387, "tuple 387"}
>> +box.space.vinyl:insert{387, 'tuple 387'}
>>   -
>>   - [387, 'tuple 387']
>> -box.space.vinyl:insert{388, "tuple 388"}
>> +box.space.vinyl:insert{388, 'tuple 388'}
>>   -
>>   - [388, 'tuple 388']
>> -box.space.vinyl:insert{389, "tuple 389"}
>> +box.space.vinyl:insert{389, 'tuple 389'}
>>   -
>>   - [389, 'tuple 389']
>>   box.space.memtx:select{385}
>> @@ -4956,34 +4956,34 @@ box.cfg{replication=''}
>>   ---
>>   ...
>>   switch master to replica
>> -box.space.memtx:insert{390, "tuple 390"}
>> +box.space.memtx:insert{390, 'tuple 390'}
>>   -
>>   - [390, 'tuple 390']
>> -box.space.memtx:insert{391, "tuple 391"}
>> +box.space.memtx:insert{391, 'tuple 391'}
>>   -
>>   - [391, 'tuple 391']
>> -box.space.memtx:insert{392, "tuple 392"}
>> +box.space.memtx:insert{392, 'tuple 392'}
>>   -
>>   - [392, 'tuple 392']
>> -box.space.memtx:insert{393, "tuple 393"}
>> +box.space.memtx:insert{393, 'tuple 393'}
>>   -
>>   - [393, 'tuple 393']
>> -box.space.memtx:insert{394, "tuple 394"}
>> +box.space.memtx:insert{394, 'tuple 394'}
>>   -
>>   - [394, 'tuple 394']
>> -box.space.vinyl:insert{390, "tuple 390"}
>> +box.space.vinyl:insert{390, 'tuple 390'}
>>   -
>>   - [390, 'tuple 390']
>> -box.space.vinyl:insert{391, "tuple 391"}
>> +box.space.vinyl:insert{391, 'tuple 391'}
>>   -
>>   - [391, 'tuple 391']
>> -box.space.vinyl:insert{392, "tuple 392"}
>> +box.space.vinyl:insert{392, 'tuple 392'}
>>   -
>>   - [392, 'tuple 392']
>> -box.space.vinyl:insert{393, "tuple 393"}
>> +box.space.vinyl:insert{393, 'tuple 393'}
>>   -
>>   - [393, 'tuple 393']
>> -box.space.vinyl:insert{394, "tuple 394"}
>> +box.space.vinyl:insert{394, 'tuple 394'}
>>   -
>>   - [394, 'tuple 394']
>>   box.space.memtx:select{390}
>> @@ -5016,34 +5016,34 @@ box.space.vinyl:select{393}
>>   box.space.vinyl:select{394}
>>   -
>>   - [394, 'tuple 394']
>> -box.space.memtx:insert{395, "tuple 395"}
>> +box.space.memtx:insert{395, 'tuple 395'}
>>   -
>>   - [395, 'tuple 395']
>> -box.space.memtx:insert{396, "tuple 396"}
>> +box.space.memtx:insert{396, 'tuple 396'}
>>   -
>>   - [396, 'tuple 396']
>> -box.space.memtx:insert{397, "tuple 397"}
>> +box.space.memtx:insert{397, 'tuple 397'}
>>   -
>>   - [397, 'tuple 397']
>> -box.space.memtx:insert{398, "tuple 398"}
>> +box.space.memtx:insert{398, 'tuple 398'}
>>   -
>>   - [398, 'tuple 398']
>> -box.space.memtx:insert{399, "tuple 399"}
>> +box.space.memtx:insert{399, 'tuple 399'}
>>   -
>>   - [399, 'tuple 399']
>> -box.space.vinyl:insert{395, "tuple 395"}
>> +box.space.vinyl:insert{395, 'tuple 395'}
>>   -
>>   - [395, 'tuple 395']
>> -box.space.vinyl:insert{396, "tuple 396"}
>> +box.space.vinyl:insert{396, 'tuple 396'}
>>   -
>>   - [396, 'tuple 396']
>> -box.space.vinyl:insert{397, "tuple 397"}
>> +box.space.vinyl:insert{397, 'tuple 397'}
>>   -
>>   - [397, 'tuple 397']
>> -box.space.vinyl:insert{398, "tuple 398"}
>> +box.space.vinyl:insert{398, 'tuple 398'}
>>   -
>>   - [398, 'tuple 398']
>> -box.space.vinyl:insert{399, "tuple 399"}
>> +box.space.vinyl:insert{399, 'tuple 399'}
>>   -
>>   - [399, 'tuple 399']
>>   box.space.memtx:select{395}
>> diff --git a/test/replication-py/swap.test.py 
>> b/test/replication-py/swap.test.py
>> index 98eeeea6d..c5718cffd 100644
>> --- a/test/replication-py/swap.test.py
>> +++ b/test/replication-py/swap.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   import os
>>   import tarantool
>>   from lib.tarantool_server import TarantoolServer
>> @@ -7,26 +9,26 @@ import yaml
>>   REPEAT = 20
>>   ID_BEGIN = 0
>>   ID_STEP = 5
>> -LOGIN = 'test'
>> -PASSWORD = 'pass123456'
>> +LOGIN = "test"
>> +PASSWORD = "pass123456"
>>   -engines = ['memtx', 'vinyl']
>> +engines = ["memtx", "vinyl"]
>>     def insert_tuples(_server, begin, end, msg = "tuple"):
>>       for engine in engines:
>>           for i in range(begin, end):
>> -            print 'box.space.%s:insert{%d, "%s %d"}' % (engine, i, 
>> msg, i)
>> -            print '-'
>> +            print("box.space.{}:insert{{{}, '{} 
>> {}'}}".format(engine, i, msg, i))
>> +            print("-")
>>               space = _server.iproto.py_con.space(engine)
>> -            print space.insert((i, '%s %d' % (msg, i)))
>> +            print(space.insert((i, "{} {}".format(msg, i))))
>>     def select_tuples(_server, begin, end):
>>       for engine in engines:
>>           for i in range(begin, end):
>> -            print 'box.space.%s:select{%d}' % (engine, i)
>> -            print '-'
>> +            print("box.space.{}:select{{{}}}".format(engine, i))
>> +            print("-")
>>               space = _server.iproto.py_con.space(engine)
>> -            print space.select(i)
>> +            print(space.select(i))
>>     # master server
>>   master = server
>> @@ -34,11 +36,11 @@ master = server
>>   master.stop()
>>   master.cleanup()
>>   master.deploy()
>> -master.admin("box.schema.user.create('%s', { password = '%s'})" % 
>> (LOGIN, PASSWORD))
>> -master.admin("box.schema.user.grant('%s', 'read,write,execute', 
>> 'universe')" % LOGIN)
>> +master.admin("box.schema.user.create('{}', {{ password = 
>> '{}'}})".format(LOGIN, PASSWORD))
>> +master.admin("box.schema.user.grant('{}', 'read,write,execute', 
>> 'universe')".format(LOGIN))
>>   master.iproto.py_con.authenticate(LOGIN, PASSWORD)
>> -master.uri = '%s:%s@%s' % (LOGIN, PASSWORD, master.iproto.uri)
>> -os.putenv('MASTER', master.uri)
>> +master.uri = "{}:{}@{}".format(LOGIN, PASSWORD, master.iproto.uri)
>> +os.putenv("MASTER", master.uri)
>>     # replica server
>>   replica = TarantoolServer()
>> @@ -46,27 +48,27 @@ replica.script = "replication-py/replica.lua"
>>   replica.vardir = server.vardir #os.path.join(server.vardir, 'replica')
>>   replica.deploy()
>>   replica.admin("while box.info.id == 0 do 
>> require('fiber').sleep(0.01) end")
>> -replica.uri = '%s:%s@%s' % (LOGIN, PASSWORD, replica.iproto.uri)
>> +replica.uri = "{}:{}@{}".format(LOGIN, PASSWORD, replica.iproto.uri)
>>   replica.admin("while box.space['_priv']:len() < 1 do 
>> require('fiber').sleep(0.01) end")
>>   replica.iproto.py_con.authenticate(LOGIN, PASSWORD)
>>     for engine in engines:
>> -    master.admin("s = box.schema.space.create('%s', { engine = 
>> '%s'})" % (engine, engine))
>> +    master.admin("s = box.schema.space.create('{}', {{ engine = 
>> '{}'}})".format(engine, engine))
>>       master.admin("index = s:create_index('primary', {type = 'tree'})")
>>     ### gh-343: replica.cc must not add login and password to proc title
>>   #status = replica.get_param("status")
>> -#host_port = "%s:%s" % master.iproto.uri
>
> 4) No changes are needed here.

reverted

>> -#m = re.search(r'replica/(.*)/.*', status)
>> +#host_port = "{}:{}".format(master.iproto.uri)
>> +#m = re.search(r"replica/(.*)/.*", status)
>>   #if not m or m.group(1) != host_port:
>> -#    print 'invalid box.info.status', status, 'expected host:port', 
>> host_port
>> +#    print("invalid box.info.status", status, "expected host:port", 
>> host_port)
>>   -master_id = master.get_param('id')
>> -replica_id = replica.get_param('id')
>> +master_id = master.get_param("id")
>> +replica_id = replica.get_param("id")
>>     id = ID_BEGIN
>>   for i in range(REPEAT):
>> -    print "test %d iteration" % i
>> +    print("test {} iteration".format(i))
>>         # insert to master
>>       insert_tuples(master, id, id + ID_STEP)
>> @@ -82,7 +84,7 @@ for i in range(REPEAT):
>>       select_tuples(replica, id, id + ID_STEP)
>>       id += ID_STEP
>>   -    print "swap servers"
>> +    print("swap servers")
>>       # reconfigure replica to master
>>       replica.rpl_master = None
>>       print("switch replica to master")
>> @@ -90,7 +92,7 @@ for i in range(REPEAT):
>>       # reconfigure master to replica
>>       master.rpl_master = replica
>>       print("switch master to replica")
>> -    master.admin("box.cfg{replication='%s'}" % replica.uri, 
>> silent=True)
>> + master.admin("box.cfg{{replication='{}'}}".format(replica.uri), 
>> silent=True)
>>         # insert to replica
>>       insert_tuples(replica, id, id + ID_STEP)
>> @@ -106,7 +108,7 @@ for i in range(REPEAT):
>>       select_tuples(master, id, id + ID_STEP)
>>       id += ID_STEP
>>   -    print "rollback servers configuration"
>> +    print("rollback servers configuration")
>>       # reconfigure replica to master
>>       master.rpl_master = None
>>       print("switch master to master")
>> @@ -114,7 +116,7 @@ for i in range(REPEAT):
>>       # reconfigure master to replica
>>       replica.rpl_master = master
>>       print("switch replica to replica")
>> -    replica.admin("box.cfg{replication='%s'}" % master.uri, 
>> silent=True)
>> + replica.admin("box.cfg{{replication='{}'}}".format(master.uri), 
>> silent=True)
>>       # Cleanup.
>> diff --git a/test/xlog-py/big_lsn.test.py b/test/xlog-py/big_lsn.test.py
>> index c6a31d971..edc1e5620 100644
>> --- a/test/xlog-py/big_lsn.test.py
>> +++ b/test/xlog-py/big_lsn.test.py
>> @@ -19,8 +19,8 @@ old_wal = os.path.join(wal_dir, "%020d.xlog" % 
>> old_lsn)
>>   new_wal = os.path.join(wal_dir, "%020d.xlog" % new_lsn)
>>   with open(old_wal, "r+") as f:
>>       s = f.read()
>> -    s = s.replace("VClock: {1: %d}" % old_lsn,
>> -                  "VClock: {1: %d}" % new_lsn)
>> +    s = s.replace("VClock: {{1: {}}}".format(old_lsn),
>> +                  "VClock: {{1: {}}}".format(new_lsn))
>>       f.seek(0)
>>       f.write(s)
>>   os.rename(old_wal, new_wal)
>> diff --git a/test/xlog-py/dup_key.test.py b/test/xlog-py/dup_key.test.py
>> index 7609c9555..b1442c520 100644
>> --- a/test/xlog-py/dup_key.test.py
>> +++ b/test/xlog-py/dup_key.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   import os
>>   import yaml
>>   @@ -26,7 +28,7 @@ server.stop()
>>     # Save wal#1
>>   if os.access(wal, os.F_OK):
>> -    print ".xlog exists"
>> +    print(".xlog exists")
>>       os.rename(wal, wal_old)
>>     # Write wal#2
>> @@ -37,18 +39,17 @@ server.stop()
>>     # Restore wal#1
>>   if not os.access(wal, os.F_OK):
>> -    print ".xlog does not exist"
>> +    print(".xlog does not exist")
>>       os.rename(wal_old, wal)
>>     server.start()
>> -line = 'Duplicate key'
>> -print "check log line for '%s'" % line
>> -print
>> +line = "Duplicate key"
>> +print("check log line for '{}'".format(line))
>> +print("")
>>   if server.logfile_pos.seek_once(line) >= 0:
>> -    print "'%s' exists in server log" % line
>> -print
>> +    print("'{}' exists in server log".format(line))
>> +print("")
>>     server.admin("box.space.test:get{1}")
>>   server.admin("box.space.test:get{2}")
>>   server.admin("box.space.test:len()")
>> -
>> diff --git a/test/xlog-py/empty.test.py b/test/xlog-py/empty.test.py
>> index d6f89e0fb..8b19bc3d7 100644
>> --- a/test/xlog-py/empty.test.py
>> +++ b/test/xlog-py/empty.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   import os
>>   import yaml
>>   from os.path import abspath
>> @@ -20,7 +22,7 @@ f.close()
>>   server.start()
>>   server.stop()
>>   if os.access(filename, os.F_OK):
>> -    print ".xlog exists"
>> +    print(".xlog exists")
>>   # the server has started but is crippled since it
>>   # can't override an existing file
>>   server.start()
>> diff --git a/test/xlog-py/lsn_gap.test.py b/test/xlog-py/lsn_gap.test.py
>> index 7a503ff07..8da6166a2 100644
>> --- a/test/xlog-py/lsn_gap.test.py
>> +++ b/test/xlog-py/lsn_gap.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   import os
>>   import yaml
>>   #
>> @@ -28,11 +30,11 @@ os.unlink(wal)
>>     server.start()
>>   line="ignoring a gap in LSN"
>> -print "check log line for '%s'" % line
>> -print
>> +print("check log line for '{}'".format(line))
>> +print("")
>>   if server.logfile_pos.seek_once(line) >= 0:
>> -    print "'%s' exists in server log" % line
>> -print
>> +    print("'{}' exists in server log".format(line))
>> +print("")
>>     # missing tuple from removed xlog
>>   server.admin("box.space.test:select{}")
>> diff --git a/test/xlog-py/misc.test.py b/test/xlog-py/misc.test.py
>> index e39ae1495..3fcda9504 100644
>> --- a/test/xlog-py/misc.test.py
>> +++ b/test/xlog-py/misc.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   import os
>>   import yaml
>>   @@ -11,9 +13,9 @@ server.stop()
>>     data_path = os.path.join(server.vardir, server.name)
>>   -print """
>> -# xlog file must exist after inserts.
>> -"""
>> +print("")
>> +print("# xlog file must exist after inserts.")
>> +print("")
>>   filename = str(lsn).zfill(20) + ".xlog"
>>   wal = os.path.join(data_path, filename)
>>   @@ -21,16 +23,16 @@ server.start()
>>     server.admin("space = box.schema.space.create('tweedledum')")
>>   if os.access(wal, os.F_OK):
>> -  print ".xlog exists"
>> +  print(".xlog exists")
>>     server.admin("index = space:create_index('primary', { type = 
>> 'hash' })")
>>     server.stop()
>>   lsn += 2
>>   -print """
>> -# a new xlog must be opened after regular termination.
>> -"""
>> +print("")
>> +print("# a new xlog must be opened after regular termination.")
>> +print("")
>>   filename = str(lsn).zfill(20) + ".xlog"
>>   server.start()
>>   @@ -39,18 +41,17 @@ wal = os.path.join(data_path, filename)
>>   server.admin("box.space.tweedledum:insert{3, 'third tuple'}")
>>     if os.access(wal, os.F_OK):
>> -  print "a new .xlog exists"
>> +  print("a new .xlog exists")
>>     server.stop()
>>     if os.access(wal, os.F_OK):
>> -  print ".xlog stays around after sutdown"
>> +  print(".xlog stays around after shutdown")
>>   lsn += 1
>>   -print """
>> -# An xlog file with one record during recovery.
>> -"""
>> -
>> +print("")
>> +print("# An xlog file with one record during recovery.")
>> +print("")
>>   server.start()
>>   filename = str(lsn).zfill(20) + ".xlog"
>>   wal = os.path.join(data_path, filename)
>> @@ -63,7 +64,7 @@ if pid > 0:
>>   server.stop()
>>     if os.access(wal, os.F_OK):
>> -    print ".xlog exists after kill -9"
>> +    print(".xlog exists after kill -9")
>>       # Remove last byte from xlog
>>       f = open(wal, "a")
>>       size = f.tell()
>> @@ -73,7 +74,7 @@ if os.access(wal, os.F_OK):
>>   server.start()
>>     if os.access(wal, os.F_OK):
>> -  print "corrupt .xlog exists after start"
>> +  print("corrupt .xlog exists after start")
>>   server.stop()
>>   lsn += 1
>>   @@ -98,4 +99,4 @@ for f in os.listdir(data_path):
>>   server.start()
>>   lsn = int(yaml.safe_load(admin("box.info.lsn", silent=True))[0])
>>   if lsn == orig_lsn:
>> -    print ".snap.inprogress is ignored"
>> +    print(".snap.inprogress is ignored")
>> diff --git a/test/xlog-py/missing.test.py b/test/xlog-py/missing.test.py
>> index df35dc6d7..2fff0df6c 100644
>> --- a/test/xlog-py/missing.test.py
>> +++ b/test/xlog-py/missing.test.py
>> @@ -1,3 +1,5 @@
>> +from __future__ import print_function
>> +
>>   import yaml
>>   import os
>>   #
>> @@ -34,11 +36,11 @@ os.unlink(wal)
>>   # this may lead to infinite recursion at start
>>   server.start()
>>   line="ignoring a gap in LSN"
>> -print "check log line for '%s'" % line
>> -print
>> +print("check log line for '{}'".format(line))
>> +print("")
>>   if server.logfile_pos.seek_once(line) >= 0:
>> -    print "'%s' exists in server log" % line
>> -print
>> +    print("'{}' exists in server log".format(line))
>> +print("")
>>     # missing tuples from removed xlog
>>   server.admin("box.space.test:select{}")
>>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Tarantool-patches] [PATCH 3/6] test: remove empty print() functions
  2020-12-09 20:27   ` Leonid Vasiliev
@ 2020-12-10 13:26     ` Sergey Bronnikov
  0 siblings, 0 replies; 14+ messages in thread
From: Sergey Bronnikov @ 2020-12-10 13:26 UTC (permalink / raw)
  To: Leonid Vasiliev, tarantool-patches; +Cc: alexander.turenko

Hello,


thanks for review!


On 09.12.2020 23:27, Leonid Vasiliev wrote:
> Hi! Thank you for the patch.
> This was my initiative and I'm sorry.
> I don't like tests that used result files, but without delimiters, it's
> doubly ugly.
> Please leave it as it is.
>
Patch removed from a series.


> On 07.12.2020 10:46, sergeyb@tarantool.org wrote:
>> From: Sergey Bronnikov <sergeyb@tarantool.org>
>>
>> Python tests are based on a reference output: on every run output 
>> produced by a
>> test compared to reference output and test become passed when both 
>> output are
>> equal. Perhaps empty print()'s were added as a delimeter for 
>> testscases in a
>> produced output, so the main purpose of these empty print() functions 
>> is a
>> reader's convenience. The problem with empty print's is that code 
>> become ugly.
>> ---
>>   test/box-py/call.result           | 4 ----
>>   test/box-py/call.test.py          | 4 ----
>>   test/replication-py/multi.result  | 6 ------
>>   test/replication-py/multi.test.py | 6 ------
>>   test/xlog-py/dup_key.result       | 2 --
>>   test/xlog-py/dup_key.test.py      | 2 --
>>   test/xlog-py/lsn_gap.result       | 2 --
>>   test/xlog-py/lsn_gap.test.py      | 2 --
>>   test/xlog-py/misc.result          | 6 ------
>>   test/xlog-py/misc.test.py         | 6 ------
>>   test/xlog-py/missing.result       | 2 --
>>   test/xlog-py/missing.test.py      | 2 --
>>   12 files changed, 44 deletions(-)
>>
>> diff --git a/test/box-py/call.result b/test/box-py/call.result
>> index e6b7b8dc9..dc3da3c82 100644
>> --- a/test/box-py/call.result
>> +++ b/test/box-py/call.result
>> @@ -55,11 +55,9 @@ call  box.error (33333, 'Hey!')
>>           "reason": "Unknown error"
>>       }
>>   }
>> -
>>   # A test case for Bug#103491
>>   # server CALL processing bug with name path longer than two
>>   # https://bugs.launchpad.net/tarantool/+bug/1034912
>> -
>>   f = function() return 'OK' end
>>   ---
>>   ...
>> @@ -81,11 +79,9 @@ call  test.f ()
>>   - 'OK'
>>   call  test.test.f ()
>>   - 'OK'
>> -
>>   # Test for Bug #955226
>>   # Lua Numbers are passed back wrongly as strings
>>   #
>> -
>>   function foo() return 1, 2, '1', '2' end
>>   ---
>>   ...
>> diff --git a/test/box-py/call.test.py b/test/box-py/call.test.py
>> index 75ced1dff..519334c8b 100644
>> --- a/test/box-py/call.test.py
>> +++ b/test/box-py/call.test.py
>> @@ -23,11 +23,9 @@ call("f1")
>>   # IPROTO required!
>>   call("box.error", 33333, "Hey!")
>>   -print("")
>>   print("# A test case for Bug#103491")
>>   print("# server CALL processing bug with name path longer than two")
>>   print("# https://bugs.launchpad.net/tarantool/+bug/1034912")
>> -print("")
>>   admin("f = function() return 'OK' end")
>>   admin("test = {}")
>>   admin("test.f = f")
>> @@ -37,11 +35,9 @@ call("f")
>>   call("test.f")
>>   call("test.test.f")
>>   -print("")
>>   print("# Test for Bug #955226")
>>   print("# Lua Numbers are passed back wrongly as strings")
>>   print("#")
>> -print("")
>>   admin("function foo() return 1, 2, '1', '2' end")
>>   call("foo")
>>   diff --git a/test/replication-py/multi.result 
>> b/test/replication-py/multi.result
>> index f90ab22a0..f1ec286ad 100644
>> --- a/test/replication-py/multi.result
>> +++ b/test/replication-py/multi.result
>> @@ -37,27 +37,21 @@ _ = box.space.test:create_index('primary')
>>   server 1 is ok
>>   server 2 is ok
>>   server 3 is ok
>> -
>>   Insert records
>>   inserted 60 records
>> -
>>   Synchronize
>>   server 1 done
>>   server 2 done
>>   server 3 done
>>   done
>> -
>>   Check data
>>   server 1 is ok
>>   server 2 is ok
>>   server 3 is ok
>>   Done
>> -
>> -
>> ----------------------------------------------------------------------
>>   Cleanup
>> ----------------------------------------------------------------------
>>   server 1 done
>>   server 2 done
>>   server 3 done
>> -
>> diff --git a/test/replication-py/multi.test.py 
>> b/test/replication-py/multi.test.py
>> index a346fd560..c7d415258 100644
>> --- a/test/replication-py/multi.test.py
>> +++ b/test/replication-py/multi.test.py
>> @@ -72,14 +72,12 @@ master_lsn = master.get_lsn(master.id)
>>   for server in cluster:
>>       server.wait_lsn(master.id, master_lsn)
>>       print("server {} is ok".format(server.id))
>> -print("")
>>     print("Insert records")
>>   for i in range(ROW_N):
>>       server = cluster[i % REPLICA_N]
>>       server.admin("box.space.test:insert{{{}, {}}}".format(i, 
>> server.id), silent = True)
>>   print("inserted {} records".format(ROW_N))
>> -print("")
>>     print("Synchronize")
>>   for server1 in cluster:
>> @@ -87,16 +85,13 @@ for server1 in cluster:
>>           server1.wait_lsn(server2.id, server2.get_lsn(server2.id))
>>       print("server {} done".format(server1.id))
>>   print("done")
>> -print("")
>>     print("Check data")
>>   for server in cluster:
>>       cnt = yaml.safe_load(server.admin("box.space.test:len()", 
>> silent = True))[0]
>>       print("server {} is {}".format(server.id, cnt == ROW_N and "ok" 
>> or "not ok"))
>>   print("Done")
>> -print("")
>>   -print("")
>> print("----------------------------------------------------------------------")
>>   print("Cleanup")
>> print("----------------------------------------------------------------------")
>> @@ -104,7 +99,6 @@ 
>> print("----------------------------------------------------------------------")
>>   for server in cluster:
>>       server.stop()
>>       print("server {} done".format(server.id))
>> -print("")
>>     master.cleanup()
>>   master.deploy()
>> diff --git a/test/xlog-py/dup_key.result b/test/xlog-py/dup_key.result
>> index f387e8e89..ce3ffbc55 100644
>> --- a/test/xlog-py/dup_key.result
>> +++ b/test/xlog-py/dup_key.result
>> @@ -27,9 +27,7 @@ box.space.test:insert{2, 'fourth tuple'}
>>   ...
>>   .xlog does not exist
>>   check log line for 'Duplicate key'
>> -
>>   'Duplicate key' exists in server log
>> -
>>   box.space.test:get{1}
>>   ---
>>   - [1, 'first tuple']
>> diff --git a/test/xlog-py/dup_key.test.py b/test/xlog-py/dup_key.test.py
>> index a40133ef2..534221150 100644
>> --- a/test/xlog-py/dup_key.test.py
>> +++ b/test/xlog-py/dup_key.test.py
>> @@ -40,10 +40,8 @@ if not os.access(wal, os.F_OK):
>>   server.start()
>>   line = "Duplicate key"
>>   print("check log line for '{}'".format(line))
>> -print("")
>>   if server.logfile_pos.seek_once(line) >= 0:
>>       print("'{}' exists in server log".format(line))
>> -print("")
>>     server.admin("box.space.test:get{1}")
>>   server.admin("box.space.test:get{2}")
>> diff --git a/test/xlog-py/lsn_gap.result b/test/xlog-py/lsn_gap.result
>> index 685fc1efa..8633d76a4 100644
>> --- a/test/xlog-py/lsn_gap.result
>> +++ b/test/xlog-py/lsn_gap.result
>> @@ -21,9 +21,7 @@ box.space.test:insert{4, 'fourth tuple'}
>>   - [4, 'fourth tuple']
>>   ...
>>   check log line for 'ignoring a gap in LSN'
>> -
>>   'ignoring a gap in LSN' exists in server log
>> -
>>   box.space.test:select{}
>>   ---
>>   - - [1, 'first tuple']
>> diff --git a/test/xlog-py/lsn_gap.test.py b/test/xlog-py/lsn_gap.test.py
>> index b80b97146..2d814c42c 100644
>> --- a/test/xlog-py/lsn_gap.test.py
>> +++ b/test/xlog-py/lsn_gap.test.py
>> @@ -31,10 +31,8 @@ os.unlink(wal)
>>   server.start()
>>   line="ignoring a gap in LSN"
>>   print("check log line for '{}'".format(line))
>> -print("")
>>   if server.logfile_pos.seek_once(line) >= 0:
>>       print("'{}' exists in server log".format(line))
>> -print("")
>>     # missing tuple from removed xlog
>>   server.admin("box.space.test:select{}")
>> diff --git a/test/xlog-py/misc.result b/test/xlog-py/misc.result
>> index 6c85814b1..8b4a6740c 100644
>> --- a/test/xlog-py/misc.result
>> +++ b/test/xlog-py/misc.result
>> @@ -1,6 +1,4 @@
>> -
>>   # xlog file must exist after inserts.
>> -
>>   space = box.schema.space.create('tweedledum')
>>   ---
>>   ...
>> @@ -8,16 +6,12 @@ space = box.schema.space.create('tweedledum')
>>   index = space:create_index('primary', { type = 'hash' })
>>   ---
>>   ...
>> -
>>   # a new xlog must be opened after regular termination.
>> -
>>   box.space.tweedledum:insert{3, 'third tuple'}
>>   ---
>>   - [3, 'third tuple']
>>   ...
>> -
>>   # An xlog file with one record during recovery.
>> -
>>   box.space.tweedledum:insert{4, 'fourth tuple'}
>>   ---
>>   - [4, 'fourth tuple']
>> diff --git a/test/xlog-py/misc.test.py b/test/xlog-py/misc.test.py
>> index 3fcda9504..678031afa 100644
>> --- a/test/xlog-py/misc.test.py
>> +++ b/test/xlog-py/misc.test.py
>> @@ -13,9 +13,7 @@ server.stop()
>>     data_path = os.path.join(server.vardir, server.name)
>>   -print("")
>>   print("# xlog file must exist after inserts.")
>> -print("")
>>   filename = str(lsn).zfill(20) + ".xlog"
>>   wal = os.path.join(data_path, filename)
>>   @@ -30,9 +28,7 @@ server.admin("index = 
>> space:create_index('primary', { type = 'hash' })")
>>   server.stop()
>>   lsn += 2
>>   -print("")
>>   print("# a new xlog must be opened after regular termination.")
>> -print("")
>>   filename = str(lsn).zfill(20) + ".xlog"
>>   server.start()
>>   @@ -49,9 +45,7 @@ if os.access(wal, os.F_OK):
>>     print(".xlog stays around after shutdown")
>>   lsn += 1
>>   -print("")
>>   print("# An xlog file with one record during recovery.")
>> -print("")
>>   server.start()
>>   filename = str(lsn).zfill(20) + ".xlog"
>>   wal = os.path.join(data_path, filename)
>> diff --git a/test/xlog-py/missing.result b/test/xlog-py/missing.result
>> index c52f75c68..826f57296 100644
>> --- a/test/xlog-py/missing.result
>> +++ b/test/xlog-py/missing.result
>> @@ -29,9 +29,7 @@ box.space.test:delete{3}
>>   - [3, 'third tuple']
>>   ...
>>   check log line for 'ignoring a gap in LSN'
>> -
>>   'ignoring a gap in LSN' exists in server log
>> -
>>   box.space.test:select{}
>>   ---
>>   - []
>> diff --git a/test/xlog-py/missing.test.py b/test/xlog-py/missing.test.py
>> index 2fff0df6c..13b3ddd8f 100644
>> --- a/test/xlog-py/missing.test.py
>> +++ b/test/xlog-py/missing.test.py
>> @@ -37,10 +37,8 @@ os.unlink(wal)
>>   server.start()
>>   line="ignoring a gap in LSN"
>>   print("check log line for '{}'".format(line))
>> -print("")
>>   if server.logfile_pos.seek_once(line) >= 0:
>>       print("'{}' exists in server log".format(line))
>> -print("")
>>     # missing tuples from removed xlog
>>   server.admin("box.space.test:select{}")
>>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Tarantool-patches] [PATCH 1/6] test: support Python 3 and make quotes use consistent
  2020-12-10 13:23     ` Sergey Bronnikov
@ 2020-12-10 13:29       ` Sergey Bronnikov
  0 siblings, 0 replies; 14+ messages in thread
From: Sergey Bronnikov @ 2020-12-10 13:29 UTC (permalink / raw)
  To: Leonid Vasiliev, tarantool-patches; +Cc: alexander.turenko


On 10.12.2020 16:23, Sergey Bronnikov via Tarantool-patches wrote:
> Hello,
>
> thanks for review
>
>
>> Hi! Thank you for the patch!
>> I regret the moment when I suggested at the same time reformat the code
>> in accordance with the PEP8) (Many changes).
>> But for tests, in my opinion it is normal. This is easy to check and
>> can't introduce degradation.
>> In addition, I think LGTM alone will be enough for such changes.
>> On 09.12.2020 18:58, Leonid Vasiliev wrote: And please remove the 
>> change in quotes for "tuple" in swap.test.py, it adds too many changes. 

reverted

--- a/test/replication-py/swap.test.py
+++ b/test/replication-py/swap.test.py
@@ -17,7 +17,7 @@ engines = ["memtx", "vinyl"]
  def insert_tuples(_server, begin, end, msg = "tuple"):
      for engine in engines:
          for i in range(begin, end):
-            print("box.space.{}:insert{{{}, '{} {}'}}".format(engine, 
i, msg, i))
+            print('box.space.{}:insert{{{}, "{} {}"}}'.format(engine, 
i, msg, i))
              print("-")
              space = _server.iproto.py_con.space(engine)
              print(space.insert((i, "{} {}".format(msg, i))))

<snipped>

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2020-12-10 13:29 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-07  7:46 [Tarantool-patches] [PATCH 0/6] Support Python 3 in tests and PEPify source code sergeyb
2020-12-07  7:46 ` [Tarantool-patches] [PATCH 1/6] test: support Python 3 and make quotes use consistent sergeyb
2020-12-09 15:58   ` Leonid Vasiliev
2020-12-10 13:23     ` Sergey Bronnikov
2020-12-10 13:29       ` Sergey Bronnikov
2020-12-07  7:46 ` [Tarantool-patches] [PATCH 2/6] test: remove dead code in Python tests end extra newline sergeyb
2020-12-09 20:20   ` Leonid Vasiliev
2020-12-07  7:46 ` [Tarantool-patches] [PATCH 3/6] test: remove empty print() functions sergeyb
2020-12-09 20:27   ` Leonid Vasiliev
2020-12-10 13:26     ` Sergey Bronnikov
2020-12-07  7:46 ` [Tarantool-patches] [PATCH 4/6] add initial flake8 config sergeyb
2020-12-09 20:57   ` Leonid Vasiliev
2020-12-07  7:46 ` [Tarantool-patches] [PATCH 5/6] cmake: add integration with flake8 sergeyb
2020-12-07  7:46 ` [Tarantool-patches] [PATCH 6/6] ci: enable flake8 sergeyb

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox