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 CA87C45C305 for ; Fri, 11 Dec 2020 11:43:38 +0300 (MSK) From: sergeyb@tarantool.org Date: Fri, 11 Dec 2020 11:42:21 +0300 Message-Id: In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH 2/4] test: make dict.items() compatible with Python 3.x List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tarantool-patches@dev.tarantool.org, v.shpilevoy@tarantool.org, imun@tarantool.org Cc: alexander.turenko@tarantool.org From: Sergey Bronnikov 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