From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng3.m.smailru.net (smtpng3.m.smailru.net [94.100.177.149]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id A51EA45C304 for ; Thu, 10 Dec 2020 16:23:41 +0300 (MSK) References: <9f4aca80dafbc8fb0ef8fb306927e78eef7fb3ef.1607326642.git.sergeyb@tarantool.org> <26c67b79-4f06-8bd1-7547-94e822c0a08e@tarantool.org> From: Sergey Bronnikov Message-ID: Date: Thu, 10 Dec 2020 16:23:39 +0300 MIME-Version: 1.0 In-Reply-To: <26c67b79-4f06-8bd1-7547-94e822c0a08e@tarantool.org> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: 8bit Content-Language: en-US Subject: Re: [Tarantool-patches] [PATCH 1/6] test: support Python 3 and make quotes use consistent List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Leonid Vasiliev , tarantool-patches@dev.tarantool.org Cc: alexander.turenko@tarantool.org 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 >> >> - 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('> -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("> +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, "") >>   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: >> +('Expected error:', ) >> 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 = >> '' } >>   ------------------------------------------------------------- >>   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 = server.get_param("uuid") >> +sys.stdout.push_filter(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.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, '') >> -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.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, "") >> +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, '') >> -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, "") >> +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{}") >>