Skip to content

Commit c872477

Browse files
committed
owcsvimport: Add test for model
1 parent 3bfdae2 commit c872477

File tree

1 file changed

+39
-1
lines changed

1 file changed

+39
-1
lines changed

Orange/widgets/data/tests/test_owcsvimport.py

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
import numpy as np
1313
from numpy.testing import assert_array_equal
1414

15-
from AnyQt.QtCore import QSettings
15+
from AnyQt.QtCore import QSettings, Qt
16+
from AnyQt.QtGui import QIcon
1617
from AnyQt.QtWidgets import QFileDialog
18+
from AnyQt.QtTest import QSignalSpy
1719

1820
from orangewidget.tests.utils import simulate
1921
from orangewidget.widget import OWBaseWidget
@@ -381,6 +383,42 @@ def test_dialog():
381383
opts1 = d.options()
382384

383385

386+
class TestModel(GuiTest):
387+
def test_model(self):
388+
path = TestOWCSVFileImport.data_regions_path
389+
model = owcsvimport.VarPathItemModel()
390+
model.setItemPrototype(owcsvimport.ImportItem())
391+
it1 = owcsvimport.ImportItem()
392+
it1.setVarPath(PathItem.VarPath("prefix", "data-regions.tab"))
393+
it2 = owcsvimport.ImportItem()
394+
it2.setVarPath(PathItem.AbsPath(path))
395+
model.appendRow([it1])
396+
model.appendRow([it2])
397+
398+
def data(row, role):
399+
return model.data(model.index(row, 0), role)
400+
401+
self.assertIsInstance(data(0, Qt.DecorationRole), QIcon)
402+
self.assertIsInstance(data(1, Qt.DecorationRole), QIcon)
403+
404+
self.assertEqual(data(0, Qt.DisplayRole), "data-regions.tab")
405+
self.assertEqual(data(1, Qt.DisplayRole), "data-regions.tab")
406+
407+
self.assertEqual(data(0, Qt.ToolTipRole), "${prefix}/data-regions.tab (missing)")
408+
self.assertTrue(samepath(data(1, Qt.ToolTipRole), path))
409+
410+
self.assertIsNotNone(data(0, Qt.ForegroundRole))
411+
self.assertIsNone(data(1, Qt.ForegroundRole))
412+
spy = QSignalSpy(model.dataChanged)
413+
model.setReplacementEnv({"prefix": os.path.dirname(path)})
414+
self.assertSequenceEqual(
415+
[[model.index(0, 0), model.index(1, 0), []]],
416+
list(spy)
417+
)
418+
self.assertEqual(data(0, Qt.ToolTipRole), "${prefix}/data-regions.tab")
419+
self.assertIsNone(data(0, Qt.ForegroundRole))
420+
421+
384422
class TestUtils(unittest.TestCase):
385423
def test_load_csv(self):
386424
contents = (

0 commit comments

Comments
 (0)