[core/widget] Add widget class

To maintain backwards compatibility (and because I think it's an OK
design choice), keep the widget concept (a single module can produce
multiple widgets).
This commit is contained in:
Tobias Witek 2020-01-26 13:58:29 +01:00
parent a17cd4759c
commit fee7cf7882
2 changed files with 53 additions and 0 deletions

38
tests/core/test_widget.py Normal file
View file

@ -0,0 +1,38 @@
import unittest
import unittest.mock
import core.widget
class widget(unittest.TestCase):
def setUp(self):
self.someValue = 'some random value'
self.someOtherValue = 'some different value'
self.callbackReturnValue = 'callback return value'
self.someWidget = core.widget.Widget(full_text=self.someValue)
self.someCallback = unittest.mock.MagicMock(return_value=self.callbackReturnValue)
self.assertNotEqual(self.someValue, self.someOtherValue)
def tearDown(self):
pass
def test_text_fulltext(self):
newWidget = core.widget.Widget(full_text=self.someValue)
self.assertEqual(self.someValue, newWidget.full_text())
def test_set_fulltext(self):
self.assertNotEqual(self.someOtherValue, self.someWidget.full_text())
self.someWidget.full_text(self.someOtherValue)
self.assertEqual(self.someOtherValue, self.someWidget.full_text())
def test_callable_fulltext(self):
newWidget = core.widget.Widget(full_text=self.someCallback)
self.assertEqual(newWidget.full_text(), self.callbackReturnValue)
self.someCallback.assert_called_once()
def test_set_callable_fulltext(self):
self.someWidget.full_text(self.someCallback)
self.assertEqual(self.someWidget.full_text(), self.callbackReturnValue)
self.someCallback.assert_called_once()
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4