From 95ab61cf57629c911a8a02f606654052483452bb Mon Sep 17 00:00:00 2001
From: Kazuhiko SHIOZAKI <kazuhiko@nexedi.com>
Date: Thu, 16 Mar 2023 19:25:51 +0100
Subject: [PATCH] py2/py3: cast dict.keys() to list.

---
 .../portal_components/test.erp5.testOrderBuilder.py           | 3 ++-
 .../portal_components/tool.erp5.DomainTool.py                 | 3 ++-
 product/ERP5Type/mixin/matrix.py                              | 4 ++--
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/bt5/erp5_trade/TestTemplateItem/portal_components/test.erp5.testOrderBuilder.py b/bt5/erp5_trade/TestTemplateItem/portal_components/test.erp5.testOrderBuilder.py
index eb808f6754..ded6c62c3f 100644
--- a/bt5/erp5_trade/TestTemplateItem/portal_components/test.erp5.testOrderBuilder.py
+++ b/bt5/erp5_trade/TestTemplateItem/portal_components/test.erp5.testOrderBuilder.py
@@ -27,6 +27,7 @@
 #
 ##############################################################################
 
+from Products.ERP5Type.Utils import ensure_list
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
 from DateTime import DateTime
 from Products.ERP5Type.tests.Sequence import SequenceList
@@ -240,7 +241,7 @@ class TestOrderBuilderMixin(TestOrderMixin, InventoryAPITestCase):
     self.wanted_quantity_matrix = self.decrease_quantity_matrix.copy()
 
     packing_list_line.setVariationCategoryList(
-      self.decrease_quantity_matrix.keys(),
+      ensure_list(self.decrease_quantity_matrix.keys()),
     )
 
     self.tic()
diff --git a/product/ERP5/bootstrap/erp5_core/ToolComponentTemplateItem/portal_components/tool.erp5.DomainTool.py b/product/ERP5/bootstrap/erp5_core/ToolComponentTemplateItem/portal_components/tool.erp5.DomainTool.py
index 81b7376e87..6280d5ee3f 100644
--- a/product/ERP5/bootstrap/erp5_core/ToolComponentTemplateItem/portal_components/tool.erp5.DomainTool.py
+++ b/product/ERP5/bootstrap/erp5_core/ToolComponentTemplateItem/portal_components/tool.erp5.DomainTool.py
@@ -32,6 +32,7 @@ from AccessControl import ClassSecurityInfo
 from Products.ERP5Type.Globals import InitializeClass
 from Products.ERP5Type import Permissions
 from Products.ERP5Type.Tool.BaseTool import BaseTool
+from Products.ERP5Type.Utils import ensure_list
 from Products.ZSQLCatalog.SQLCatalog import SimpleQuery, ComplexQuery
 import six
 
@@ -337,7 +338,7 @@ class DomainTool(BaseTool):
       mapped_value = self.getPortalObject().newContent(temp_object=True,
         portal_type='Supply Cell', id='multivalued_mapped_value')
       mapped_value._setMappedValuePropertyList(
-        mapped_value_property_dict.keys())
+        ensure_list(mapped_value_property_dict.keys()))
       mapped_value.__dict__.update(mapped_value_property_dict)
       return mapped_value
 
diff --git a/product/ERP5Type/mixin/matrix.py b/product/ERP5Type/mixin/matrix.py
index 57e3894de0..9fd8ebf275 100644
--- a/product/ERP5Type/mixin/matrix.py
+++ b/product/ERP5Type/mixin/matrix.py
@@ -30,7 +30,7 @@ from Products.ERP5Type.Globals import InitializeClass, PersistentMapping
 from Acquisition import aq_base
 from AccessControl import ClassSecurityInfo
 from Products.ERP5Type import Permissions
-from Products.ERP5Type.Utils import cartesianProduct, INFINITE_SET
+from Products.ERP5Type.Utils import cartesianProduct, ensure_list, INFINITE_SET
 from Products.ERP5Type.Accessor.Constant import PropertyGetter as ConstantGetter
 
 from zLOG import LOG
@@ -163,7 +163,7 @@ class Matrix(object):
       else:
         delete = set()
         to_delete.append(delete)
-        for k, v in id_dict.items():
+        for k, v in ensure_list(id_dict.items()):
           try:
             axis.remove(k)
             if last_id < v:
-- 
2.30.9