Skip to content

Commit 1a65176

Browse files
committed
graphicstextlist: Add tests
1 parent 85e56e5 commit 1a65176

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
import unittest
2+
3+
from AnyQt.QtCore import Qt, QSizeF
4+
5+
from orangewidget.tests.base import GuiTest
6+
from Orange.widgets.utils.graphicstextlist import TextListWidget, scaled
7+
8+
9+
class TestTextListWidget(GuiTest):
10+
def test_setItems(self):
11+
w = TextListWidget()
12+
w.setItems([])
13+
self.assertEqual(w.count(), 0)
14+
w.setItems(["Aa"])
15+
self.assertEqual(w.count(), 1)
16+
w.setItems(["Aa", "Bb"])
17+
self.assertEqual(w.count(), 2)
18+
w.clear()
19+
self.assertEqual(w.count(), 0)
20+
w.clear()
21+
22+
def test_orientation(self):
23+
w = TextListWidget()
24+
w.setItems(['x' * 20] * 2)
25+
w.setOrientation(Qt.Vertical)
26+
self.assertEqual(w.orientation(), Qt.Vertical)
27+
sh = w.effectiveSizeHint(Qt.PreferredSize)
28+
self.assertGreater(sh.width(), sh.height())
29+
w.setOrientation(Qt.Horizontal)
30+
sh = w.effectiveSizeHint(Qt.PreferredSize)
31+
self.assertLess(sh.width(), sh.height())
32+
33+
def test_alignment(self):
34+
w = TextListWidget()
35+
w.setItems(["a"])
36+
w.resize(200, 100)
37+
w.setAlignment(Qt.AlignRight)
38+
self.assertEqual(w.alignment(), Qt.AlignRight)
39+
item = w.childItems()[0].childItems()[0]
40+
41+
def brect(item):
42+
return item.mapRectToItem(w, item.boundingRect())
43+
44+
self.assertEqual(brect(item).right(), 200)
45+
w.setAlignment(Qt.AlignLeft)
46+
self.assertEqual(brect(item).left(), 0)
47+
48+
w.setAlignment(Qt.AlignHCenter)
49+
self.assertTrue(90 <= brect(item).center().x() < 110)
50+
51+
w.setAlignment(Qt.AlignTop)
52+
self.assertEqual(brect(item).top(), 0)
53+
54+
w.setAlignment(Qt.AlignBottom)
55+
self.assertEqual(brect(item).bottom(), 100)
56+
57+
w.setAlignment(Qt.AlignVCenter)
58+
self.assertTrue(45 <= brect(item).center().y() < 55)
59+
60+
61+
class TestUtils(unittest.TestCase):
62+
def test_scaled(self):
63+
cases_keep_aspect = [
64+
(QSizeF(100, 100), QSizeF(200, 300), QSizeF(200, 200)),
65+
(QSizeF(100, 100), QSizeF(300, 200), QSizeF(200, 200)),
66+
(QSizeF(100, 100), QSizeF(300, -1), QSizeF(300, 300)),
67+
(QSizeF(100, 100), QSizeF(-1, 300), QSizeF(300, 300)),
68+
(QSizeF(100, 100), QSizeF(-1, -1), QSizeF(100, 100)),
69+
]
70+
for size, const, expected in cases_keep_aspect:
71+
s = scaled(size, const)
72+
self.assertEqual(s, expected, f"scaled({size}, {const})")
73+
74+
cases_keep_aspect_by_expaindig = [
75+
(QSizeF(100, 100), QSizeF(200, 300), QSizeF(300, 300)),
76+
(QSizeF(100, 100), QSizeF(300, 200), QSizeF(300, 300)),
77+
(QSizeF(100, 100), QSizeF(300, -1), QSizeF(300, 300)),
78+
(QSizeF(100, 100), QSizeF(-1, 300), QSizeF(300, 300)),
79+
(QSizeF(100, 100), QSizeF(-1, -1), QSizeF(100, 100)),
80+
]
81+
82+
for size, const, expected in cases_keep_aspect_by_expaindig:
83+
s = scaled(size, const, Qt.KeepAspectRatioByExpanding)
84+
self.assertEqual(
85+
s, expected,
86+
f"scaled({size}, {const}, Qt.KeepAspectRatioByExpanding)"
87+
)

0 commit comments

Comments
 (0)