Skip to content

Commit e628027

Browse files
committed
PyTableModel: Fix wrapping empty lists in constructor
1 parent 0ea72bc commit e628027

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

orangewidget/utils/itemmodels.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,9 @@ def __init__(self, sequence=None, parent=None, editable=False):
255255
self._editable = editable
256256
self._table = None
257257
self._roleData = None
258-
self.wrap(sequence or [])
258+
if sequence is None:
259+
sequence = []
260+
self.wrap(sequence)
259261

260262
def rowCount(self, parent=QModelIndex()):
261263
return 0 if parent.isValid() else len(self)

orangewidget/utils/tests/test_itemmodels.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,14 @@ def test_wrap(self):
9898
self.assertEqual(self.model.rowCount(), 1)
9999
self.assertEqual(self.model.columnCount(), 1)
100100

101+
def test_init_wrap_empty(self):
102+
# pylint: disable=protected-access
103+
t = []
104+
model = PyTableModel(t)
105+
self.assertIs(model._table, t)
106+
t.append([1, 2, 3])
107+
self.assertEqual(list(model), [[1, 2, 3]])
108+
101109
def test_clear(self):
102110
self.model.clear()
103111
self.assertEqual(self.model.rowCount(), 0)

0 commit comments

Comments
 (0)