[Tarantool-patches] [PATCH 2/4] test: make dict.items() compatible with Python 3.x

sergeyb at tarantool.org sergeyb at tarantool.org
Fri Dec 11 11:42:21 MSK 2020


From: Sergey Bronnikov <sergeyb at tarantool.org>

In Python 2.x calling keys makes a copy of the key that you can iterate over
while modifying the dict. This doesn't work in Python 3.x because keys returns
an iterator instead of a list. Python 3 raise an exception "dictionary changed
size during iteration". To workaround it one can use list to force a copy of
the keys to be made.

Part of #5538
---
 test/box-py/iproto.test.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/test/box-py/iproto.test.py b/test/box-py/iproto.test.py
index 5eccd40d3..25ead43c4 100644
--- a/test/box-py/iproto.test.py
+++ b/test/box-py/iproto.test.py
@@ -39,7 +39,7 @@ for (k,v) in list(globals().items()):
 
 def repr_dict(todump):
     d = {}
-    for (k, v) in list(todump.items()):
+    for (k, v) in todump.items():
         k_name = key_names.get(k, k)
         d[k_name] = v
     return repr(d)
-- 
2.25.1



More information about the Tarantool-patches mailing list