Skip to content

Commit

Permalink
graphicstextlist: Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ales-erjavec committed Jan 27, 2020
1 parent 85e56e5 commit 1a65176
Showing 1 changed file with 87 additions and 0 deletions.
87 changes: 87 additions & 0 deletions Orange/widgets/utils/tests/test_graphicstextlist.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
import unittest

from AnyQt.QtCore import Qt, QSizeF

from orangewidget.tests.base import GuiTest
from Orange.widgets.utils.graphicstextlist import TextListWidget, scaled


class TestTextListWidget(GuiTest):
def test_setItems(self):
w = TextListWidget()
w.setItems([])
self.assertEqual(w.count(), 0)
w.setItems(["Aa"])
self.assertEqual(w.count(), 1)
w.setItems(["Aa", "Bb"])
self.assertEqual(w.count(), 2)
w.clear()
self.assertEqual(w.count(), 0)
w.clear()

def test_orientation(self):
w = TextListWidget()
w.setItems(['x' * 20] * 2)
w.setOrientation(Qt.Vertical)
self.assertEqual(w.orientation(), Qt.Vertical)
sh = w.effectiveSizeHint(Qt.PreferredSize)
self.assertGreater(sh.width(), sh.height())
w.setOrientation(Qt.Horizontal)
sh = w.effectiveSizeHint(Qt.PreferredSize)
self.assertLess(sh.width(), sh.height())

def test_alignment(self):
w = TextListWidget()
w.setItems(["a"])
w.resize(200, 100)
w.setAlignment(Qt.AlignRight)
self.assertEqual(w.alignment(), Qt.AlignRight)
item = w.childItems()[0].childItems()[0]

def brect(item):
return item.mapRectToItem(w, item.boundingRect())

self.assertEqual(brect(item).right(), 200)
w.setAlignment(Qt.AlignLeft)
self.assertEqual(brect(item).left(), 0)

w.setAlignment(Qt.AlignHCenter)
self.assertTrue(90 <= brect(item).center().x() < 110)

w.setAlignment(Qt.AlignTop)
self.assertEqual(brect(item).top(), 0)

w.setAlignment(Qt.AlignBottom)
self.assertEqual(brect(item).bottom(), 100)

w.setAlignment(Qt.AlignVCenter)
self.assertTrue(45 <= brect(item).center().y() < 55)


class TestUtils(unittest.TestCase):
def test_scaled(self):
cases_keep_aspect = [
(QSizeF(100, 100), QSizeF(200, 300), QSizeF(200, 200)),
(QSizeF(100, 100), QSizeF(300, 200), QSizeF(200, 200)),
(QSizeF(100, 100), QSizeF(300, -1), QSizeF(300, 300)),
(QSizeF(100, 100), QSizeF(-1, 300), QSizeF(300, 300)),
(QSizeF(100, 100), QSizeF(-1, -1), QSizeF(100, 100)),
]
for size, const, expected in cases_keep_aspect:
s = scaled(size, const)
self.assertEqual(s, expected, f"scaled({size}, {const})")

cases_keep_aspect_by_expaindig = [
(QSizeF(100, 100), QSizeF(200, 300), QSizeF(300, 300)),
(QSizeF(100, 100), QSizeF(300, 200), QSizeF(300, 300)),
(QSizeF(100, 100), QSizeF(300, -1), QSizeF(300, 300)),
(QSizeF(100, 100), QSizeF(-1, 300), QSizeF(300, 300)),
(QSizeF(100, 100), QSizeF(-1, -1), QSizeF(100, 100)),
]

for size, const, expected in cases_keep_aspect_by_expaindig:
s = scaled(size, const, Qt.KeepAspectRatioByExpanding)
self.assertEqual(
s, expected,
f"scaled({size}, {const}, Qt.KeepAspectRatioByExpanding)"
)

0 comments on commit 1a65176

Please sign in to comment.