diff --git a/test/box/lua.result b/test/box/lua.result
index a824b8d2acff1627e883d3d4801dc65520065f24..18a1b8676134f168f27fb7506c82b1752f30eff0 100644
--- a/test/box/lua.result
+++ b/test/box/lua.result
@@ -1,10 +1,8 @@
-box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')
+space = box.schema.create_space('tweedledum', { id = 0 })
 ---
-- [0, 0, 'tweedledum']
 ...
-box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')
+space:create_index('primary', 'hash', { parts = { 0, 'num' }})
 ---
-- [0, 0, 'primary', 1752392040, 1, 1, 0, 'num']
 ...
 '  lua says: hello'
 ---
diff --git a/test/box/lua.test.py b/test/box/lua.test.py
index 21d2deda0e70ef4848975c29d24296ed9af5324c..858d8cff2b720db7c506a283b940edcbd3ade31f 100644
--- a/test/box/lua.test.py
+++ b/test/box/lua.test.py
@@ -2,9 +2,8 @@
 import os
 import sys
 
-admin("box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')")
-admin("box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')")
-
+admin("space = box.schema.create_space('tweedledum', { id = 0 })")
+admin("space:create_index('primary', 'hash', { parts = { 0, 'num' }})")
 
 # Test Lua from admin console. Whenever producing output,
 # make sure it's a valid YAML.
diff --git a/test/box/lua_misc.result b/test/box/lua_misc.result
index 94eae321bc261ed1e2450f1919683ad279dfa46e..3b5368c5a7996b8e3d7c12a7e982b5f4889a7ea5 100644
--- a/test/box/lua_misc.result
+++ b/test/box/lua_misc.result
@@ -1,10 +1,8 @@
-box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')
+space = box.schema.create_space('tweedledum')
 ---
-- [0, 0, 'tweedledum']
 ...
-box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')
+space:create_index('primary', 'hash', { parts = { 0, 'num' }})
 ---
-- [0, 0, 'primary', 1752392040, 1, 1, 0, 'num']
 ...
 ----------------
 -- # box.raise
@@ -78,7 +76,7 @@ box.cfg.memcached_space;
 t = {};
 ---
 ...
-for i, v in pairs(box.space[0].index[0].key_field[0]) do
+for i, v in pairs(space.index[0].key_field[0]) do
     table.insert(t, tostring(i)..' : '..tostring(v))
 end;
 ---
@@ -171,6 +169,6 @@ t;
   - 'box.error.ER_SPACE_EXISTS : 1538'
   - 'box.error.ER_FIELD_TYPE_MISMATCH : 11778'
 ...
-box.space[0]:drop();
+space:drop();
 ---
 ...
diff --git a/test/box/lua_misc.test.lua b/test/box/lua_misc.test.lua
index cedf9e07982a08010af508e24ff58c4397cc16f0..4b15c51d0ad22d95b0c3b327f584f34d67dbb415 100644
--- a/test/box/lua_misc.test.lua
+++ b/test/box/lua_misc.test.lua
@@ -1,5 +1,5 @@
-box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')
-box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')
+space = box.schema.create_space('tweedledum')
+space:create_index('primary', 'hash', { parts = { 0, 'num' }})
 
 ----------------
 -- # box.raise
@@ -32,7 +32,7 @@ type(box);
 type(box.space);
 box.cfg.memcached_space;
 t = {};
-for i, v in pairs(box.space[0].index[0].key_field[0]) do
+for i, v in pairs(space.index[0].key_field[0]) do
     table.insert(t, tostring(i)..' : '..tostring(v))
 end;
 t;
@@ -59,4 +59,4 @@ for k,v in pairs(box.error) do
 end;
 t;
 
-box.space[0]:drop();
+space:drop();
diff --git a/test/box/net.box.result b/test/box/net.box.result
index e5a3f3afb6643d0e813638e2fbfad5b9aa3f0b48..fd194f9beaa9e97511b0e593c37760984d0d8e6b 100644
--- a/test/box/net.box.result
+++ b/test/box/net.box.result
@@ -1,12 +1,7 @@
-box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')
+space = box.schema.create_space('tweedledum')
 ---
-- [0, 0, 'tweedledum']
 ...
-box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')
----
-- [0, 0, 'primary', 1752392040, 1, 1, 0, 'num']
-...
-space = box.space[0]
+space:create_index('primary', 'hash', { parts = { 0, 'num' }})
 ---
 ...
 remote = box.net.box.new('localhost', box.cfg.primary_port, '0.5')
@@ -39,7 +34,7 @@ space:select(0, 123)
 tuple = remote:select(space.n, 0, 123)
 ---
 ...
-remote:call('box.select', '0', '0', 123)
+remote:call('box.select', tostring(space.n), '0', 123)
 ---
 - [123, 'test1', 'test2']
 ...
@@ -101,7 +96,7 @@ remote:select(space.n, 0, 345)
 ---
 - [345, 'test1', 'test2']
 ...
-remote:call('box.select', '0', '0', 345)
+remote:call('box.select', tostring(space.n), '0', 345)
 ---
 - [345, 'test1', 'test2']
 ...
diff --git a/test/box/net.box.test.lua b/test/box/net.box.test.lua
index 0efef21de2ba83406d7c8e8ae2e6e9db05bfe29c..13c2ba63788802867d1c5bdc01050c9753b96155 100644
--- a/test/box/net.box.test.lua
+++ b/test/box/net.box.test.lua
@@ -1,6 +1,5 @@
-box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')
-box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')
-space = box.space[0]
+space = box.schema.create_space('tweedledum')
+space:create_index('primary', 'hash', { parts = { 0, 'num' }})
 remote = box.net.box.new('localhost', box.cfg.primary_port, '0.5')
 type(remote)
 remote:ping()
@@ -9,7 +8,7 @@ box.net.box.ping(remote)
 space:insert(123, 'test1', 'test2')
 space:select(0, 123)
 tuple = remote:select(space.n, 0, 123)
-remote:call('box.select', '0', '0', 123)
+remote:call('box.select', tostring(space.n), '0', 123)
 
 slf, foo = box.call_loadproc('box.select')
 type(slf)
@@ -30,7 +29,7 @@ remote:insert(space.n, 123, 'test1', 'test2')
 
 remote:insert(space.n, 345, 'test1', 'test2')
 remote:select(space.n, 0, 345)
-remote:call('box.select', '0', '0', 345)
+remote:call('box.select', tostring(space.n), '0', 345)
 space:select(0, 345)
 
 remote:replace(space.n, 345, 'test1-replaced', 'test2-replaced')
diff --git a/test/box/reconfigure.result b/test/box/reconfigure.result
index a864185bfc73889c9d0026fd2474c9ceb1e35982..42d1bf47e9065314c2f85f75eb91cbfb09e887ef 100644
--- a/test/box/reconfigure.result
+++ b/test/box/reconfigure.result
@@ -69,13 +69,11 @@ box.cfg.too_long_threshold
 # Valgrind reports use of not initialized memory after 'reload
 # configuration'
 #
-box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')
+space = box.schema.create_space('tweedledum', { id = 0 })
 ---
-- [0, 0, 'tweedledum']
 ...
-box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')
+space:create_index('primary', 'hash', { parts = { 0, 'num' }})
 ---
-- [0, 0, 'primary', 1752392040, 1, 1, 0, 'num']
 ...
 insert into t0 values (1, 'tuple')
 Insert OK, 1 row affected
diff --git a/test/box/reconfigure.test.py b/test/box/reconfigure.test.py
index 4a4bf045d60afb9ca0c9445dec046a013b69dd88..71d65c84d47e1de8ff6b44aef70cfc060eba59c0 100644
--- a/test/box/reconfigure.test.py
+++ b/test/box/reconfigure.test.py
@@ -26,8 +26,8 @@ print """#
 # Valgrind reports use of not initialized memory after 'reload
 # configuration'
 #"""
-admin("box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')")
-admin("box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')")
+admin("space = box.schema.create_space('tweedledum', { id = 0 })")
+admin("space:create_index('primary', 'hash', { parts = { 0, 'num' }})")
 sql("insert into t0 values (1, 'tuple')")
 admin("box.snapshot()")
 server.reconfigure(None)
diff --git a/test/box/session.result b/test/box/session.result
index 1e39140810c496030d532cf5c40422d56c01f9d4..42cf060bfad75d23f3245031477daab5780d1980 100644
--- a/test/box/session.result
+++ b/test/box/session.result
@@ -1,10 +1,8 @@
-box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')
+space = box.schema.create_space('tweedledum')
 ---
-- [0, 0, 'tweedledum']
 ...
-box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')
+space:create_index('primary', 'hash', { parts = { 0, 'num' }})
 ---
-- [0, 0, 'primary', 1752392040, 1, 1, 0, 'num']
 ...
 box.session.exists(box.session.id())
 ---
@@ -166,17 +164,17 @@ type(box.session.on_disconnect(nil))
 - function
 ...
 -- write audit trail of connect/disconnect into a space
-box.session.on_connect(function() box.insert(0, box.session.id()) end)
+box.session.on_connect(function() box.space['tweedledum']:insert(box.session.id()) end)
 ---
 - null
 ...
-box.session.on_disconnect(function() box.delete(0, box.session.id()) end)
+box.session.on_disconnect(function() box.space['tweedledum']:delete(box.session.id()) end)
 ---
 - null
 ...
 --# create connection con_three to default
 --# set connection con_three
-box.unpack('i', box.select(0, 0, box.session.id())[0]) == box.session.id()
+box.unpack('i', space:select(0, box.session.id())[0]) == box.session.id()
 ---
 - true
 ...
@@ -195,6 +193,6 @@ active_connections
 ---
 - 0
 ...
-box.space[0]:drop()
+space:drop()
 ---
 ...
diff --git a/test/box/session.test.lua b/test/box/session.test.lua
index 560cb6e5cf85574f5f14364be1991d650fac7a70..eac32071528b5ee603cca611af3b1b92c8de4623 100644
--- a/test/box/session.test.lua
+++ b/test/box/session.test.lua
@@ -1,5 +1,5 @@
-box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')
-box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')
+space = box.schema.create_space('tweedledum')
+space:create_index('primary', 'hash', { parts = { 0, 'num' }})
 
 box.session.exists(box.session.id())
 box.session.exists()
@@ -62,12 +62,12 @@ type(box.session.on_connect(nil))
 type(box.session.on_disconnect(nil))
 
 -- write audit trail of connect/disconnect into a space
-box.session.on_connect(function() box.insert(0, box.session.id()) end)
-box.session.on_disconnect(function() box.delete(0, box.session.id()) end)
+box.session.on_connect(function() box.space['tweedledum']:insert(box.session.id()) end)
+box.session.on_disconnect(function() box.space['tweedledum']:delete(box.session.id()) end)
 
 --# create connection con_three to default 
 --# set connection con_three
-box.unpack('i', box.select(0, 0, box.session.id())[0]) == box.session.id()
+box.unpack('i', space:select(0, box.session.id())[0]) == box.session.id()
 --# set connection default
 --# drop connection con_three
 
@@ -76,4 +76,4 @@ type(box.session.on_connect(nil))
 type(box.session.on_disconnect(nil))
 active_connections
 
-box.space[0]:drop()
+space:drop()
diff --git a/test/box/snapshot.result b/test/box/snapshot.result
index 6d6114c50b7051dafba24ca75432f5a94a46f067..eb281c0ca65dad15e9c2a2759cb2f6d1c5983ea0 100644
--- a/test/box/snapshot.result
+++ b/test/box/snapshot.result
@@ -1,10 +1,8 @@
-box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')
+space = box.schema.create_space('tweedledum', { id = 0 })
 ---
-- [0, 0, 'tweedledum']
 ...
-box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')
+space:create_index('primary', 'hash', { parts = { 0, 'num' }})
 ---
-- [0, 0, 'primary', 1752392040, 1, 1, 0, 'num']
 ...
 #
 # A test case for: http://bugs.launchpad.net/bugs/686411
diff --git a/test/box/snapshot.test.py b/test/box/snapshot.test.py
index 4e2d02db3bbe4034bbb4661f7c8382ea9cc2a775..5efd1c2dee09ee3f77f2ca19c17833eda2af9e0b 100644
--- a/test/box/snapshot.test.py
+++ b/test/box/snapshot.test.py
@@ -3,8 +3,8 @@ import yaml
 import time
 from signal import SIGUSR1
 
-admin("box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')")
-admin("box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')")
+admin("space = box.schema.create_space('tweedledum', { id = 0 })")
+admin("space:create_index('primary', 'hash', { parts = { 0, 'num' }})")
 
 print """#
 # A test case for: http://bugs.launchpad.net/bugs/686411
diff --git a/test/box/sql.result b/test/box/sql.result
index 95c433fe758ef2b14ef53fd132b803820fcad7e6..2ad2b7081d48464d5de1e98bba4512c9a6fe0649 100644
--- a/test/box/sql.result
+++ b/test/box/sql.result
@@ -1,10 +1,8 @@
-box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')
+space = box.schema.create_space('tweedledum', { id = 0 })
 ---
-- [0, 0, 'tweedledum']
 ...
-box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')
+space:create_index('primary', 'hash', { parts = { 0, 'num' }})
 ---
-- [0, 0, 'primary', 1752392040, 1, 1, 0, 'num']
 ...
 ping
 ok
diff --git a/test/box/sql.test.py b/test/box/sql.test.py
index 309aa540b5c586b788c78ab07a60a530c6fa1b4c..707c766fc65892dc666f494a6ffbf307d6c14a86 100644
--- a/test/box/sql.test.py
+++ b/test/box/sql.test.py
@@ -1,6 +1,6 @@
 # encoding: utf-8
-admin("box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')")
-admin("box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')")
+admin("space = box.schema.create_space('tweedledum', { id = 0 })")
+admin("space:create_index('primary', 'hash', { parts = { 0, 'num' }})")
 sql("ping")
 # xxx: bug -- currently selects no rows
 sql("select * from t0")
diff --git a/test/box/stat.result b/test/box/stat.result
index 2d98198907f041685e8b8d79c8cd56e122dab6f9..579b4726523da97fab766351ba41a4bf511f31a1 100644
--- a/test/box/stat.result
+++ b/test/box/stat.result
@@ -1,10 +1,8 @@
-box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')
+space = box.schema.create_space('tweedledum', { id = 0 })
 ---
-- [0, 0, 'tweedledum']
 ...
-box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')
+space:create_index('primary', 'hash', { parts = { 0, 'num' }})
 ---
-- [0, 0, 'primary', 1752392040, 1, 1, 0, 'num']
 ...
 #
 # check stat_cleanup
diff --git a/test/box/stat.test.py b/test/box/stat.test.py
index 26fdb3a44c1fbb212e5411c3c52a9e483786af0e..ba5235cb336524b2d1e10e37e5ad46e97bd4fd58 100644
--- a/test/box/stat.test.py
+++ b/test/box/stat.test.py
@@ -2,8 +2,8 @@
 #
 # clear statistics
 server.restart()
-admin("box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')")
-admin("box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')")
+admin("space = box.schema.create_space('tweedledum', { id = 0 })")
+admin("space:create_index('primary', 'hash', { parts = { 0, 'num' }})")
 
 print """#
 # check stat_cleanup
diff --git a/test/box/xlog.result b/test/box/xlog.result
index ce744ac0127f28aec3a1fa6555facd02eb453acb..703e40f21b090c55220cdc5b214c229f27360a4d 100644
--- a/test/box/xlog.result
+++ b/test/box/xlog.result
@@ -1,14 +1,12 @@
 
 # Inprogress xlog must be renamed before second insert.
 
-box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')
+space = box.schema.create_space('tweedledum', { id = 0 })
 ---
-- [0, 0, 'tweedledum']
 ...
 00000000000000000002.xlog.inprogress exists
-box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')
+space:create_index('primary', 'hash', { parts = { 0, 'num' }})
 ---
-- [0, 0, 'primary', 1752392040, 1, 1, 0, 'num']
 ...
 00000000000000000002.xlog.inprogress has been successfully renamed
 
diff --git a/test/box/xlog.test.py b/test/box/xlog.test.py
index 7b8adb5af238686337d55dfbc7c54a4a39f71721..df308636d58d64439570652dc232ca408ad689f0 100644
--- a/test/box/xlog.test.py
+++ b/test/box/xlog.test.py
@@ -17,11 +17,11 @@ wal = os.path.join(vardir, "00000000000000000002.xlog")
 
 server.start()
 
-admin("box.insert(box.schema.SPACE_ID, 0, 0, 'tweedledum')")
+admin("space = box.schema.create_space('tweedledum', { id = 0 })")
 if os.access(wal_inprogress, os.F_OK):
   print "00000000000000000002.xlog.inprogress exists"
 
-admin("box.insert(box.schema.INDEX_ID, 0, 0, 'primary', 'hash', 1, 1, 0, 'num')")
+admin("space:create_index('primary', 'hash', { parts = { 0, 'num' }})")
 
 if os.access(wal, os.F_OK) and not os.access(wal_inprogress, os.F_OK):
   print "00000000000000000002.xlog.inprogress has been successfully renamed"