source: orange/Orange/OrangeCanvas/canvas/items/tests/test_nodeitem.py @ 11102:1ae099099c23

Revision 11102:1ae099099c23, 2.3 KB checked in by Ales Erjavec <ales.erjavec@…>, 19 months ago (diff)

Added GraphicsItems representing the items in the workflow scheme.

Line 
1
2from .. import NodeItem
3
4from . import TestItems
5
6
7class TestNodeItem(TestItems):
8
9    def test_nodeitem(self):
10        from ....registry.tests import small_testing_registry
11        reg = small_testing_registry()
12
13        data_desc = reg.category("Data")
14
15        file_desc = reg.widget("Orange.OrangeWidgets.Data.OWFile.OWFile")
16
17        file_item = NodeItem()
18        file_item.setWidgetDescription(file_desc)
19        file_item.setWidgetCategory(data_desc)
20
21        file_item.setTitle("File Node")
22        self.assertEqual(file_item.title(), "File Node")
23
24        file_item.setProcessingState(True)
25        self.assertEqual(file_item.processingState(), True)
26
27        file_item.setProgress(50)
28        self.assertEqual(file_item.progress(), 50)
29
30        file_item.setProgress(100)
31        self.assertEqual(file_item.progress(), 100)
32
33        file_item.setProgress(101)
34        self.assertEqual(file_item.progress(), 100, "Progress overshots")
35
36        file_item.setProcessingState(False)
37        self.assertEqual(file_item.processingState(), False)
38        self.assertEqual(file_item.progress(), -1,
39                         "setProcessingState does not clear the progress.")
40
41        self.scene.addItem(file_item)
42        file_item.setPos(100, 100)
43
44        discretize_desc = reg.widget(
45            "Orange.OrangeWidgets.Data.OWDiscretize.OWDiscretize"
46        )
47
48        discretize_item = NodeItem()
49        discretize_item.setWidgetDescription(discretize_desc)
50        discretize_item.setWidgetCategory(data_desc)
51
52        self.scene.addItem(discretize_item)
53        discretize_item.setPos(300, 100)
54
55        classify_desc = reg.category("Classify")
56
57        bayes_desc = reg.widget(
58            "Orange.OrangeWidgets.Classify.OWNaiveBayes.OWNaiveBayes"
59        )
60
61        nb_item = NodeItem()
62        nb_item.setWidgetDescription(bayes_desc)
63        nb_item.setWidgetCategory(classify_desc)
64
65        self.scene.addItem(nb_item)
66        nb_item.setPos(500, 100)
67
68        positions = []
69        anchor = file_item.newOutputAnchor()
70        anchor.scenePositionChanged.connect(positions.append)
71
72        file_item.setPos(110, 100)
73        self.assertTrue(len(positions) > 0)
74
75        def progress():
76            self.singleShot(10, progress)
77            nb_item.setProgress((nb_item.progress() + 1) % 100)
78
79        progress()
80
81        self.app.exec_()
Note: See TracBrowser for help on using the repository browser.