Skip to content

Commit db4e7ce

Browse files
authored
Merge pull request #4631 from janezd/pytablemodel-wrap-empty
[FIX] PyTableModel: Allow wrapping empty lists
2 parents f23c906 + 8ccdd2a commit db4e7ce

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

Orange/widgets/utils/itemmodels.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,9 @@ def __init__(self, sequence=None, parent=None, editable=False):
107107
self._editable = editable
108108
self._table = None
109109
self._roleData = {}
110-
self.wrap(sequence or [])
110+
if sequence is None:
111+
sequence = []
112+
self.wrap(sequence)
111113

112114
def rowCount(self, parent=QModelIndex()):
113115
return 0 if parent.isValid() else self._rows

Orange/widgets/utils/tests/test_itemmodels.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,14 @@ def test_init(self):
4242
self.model = PyTableModel()
4343
self.assertEqual(self.model.rowCount(), 0)
4444

45+
def test_init_wrap_empty(self):
46+
# pylint: disable=protected-access
47+
t = []
48+
model = PyTableModel(t)
49+
self.assertIs(model._table, t)
50+
t.append([1, 2, 3])
51+
self.assertEqual(list(model), [[1, 2, 3]])
52+
4553
def test_rowCount(self):
4654
self.assertEqual(self.model.rowCount(), 2)
4755
self.assertEqual(len(self.model), 2)

0 commit comments

Comments
 (0)