[core/input] Add callback deregistration
Enable components to unregister callbacks (i.e. for dynamic widgets). see #23
This commit is contained in:
parent
761b81970d
commit
918d7a6046
3 changed files with 51 additions and 3 deletions
|
@ -61,6 +61,20 @@ class TestI3BarInput(unittest.TestCase):
|
|||
mock_input.readline.assert_any_call()
|
||||
self.assertTrue(self._called > 0)
|
||||
|
||||
@mock.patch("sys.stdin")
|
||||
def test_remove_global_callback(self, mock_input):
|
||||
mock_input.readline.return_value = json.dumps({
|
||||
"name": "somename",
|
||||
"instance": "someinstance",
|
||||
"button": bumblebee.input.LEFT_MOUSE,
|
||||
})
|
||||
self.input.register_callback(None, button=1, cmd=self.callback)
|
||||
self.input.deregister_callbacks(None)
|
||||
self.input.start()
|
||||
self.assertEquals(self.input.stop(), True)
|
||||
mock_input.readline.assert_any_call()
|
||||
self.assertTrue(self._called == 0)
|
||||
|
||||
@mock.patch("sys.stdin")
|
||||
def test_global_callback_button_missmatch(self, mock_input):
|
||||
mock_input.readline.return_value = json.dumps({
|
||||
|
@ -87,6 +101,20 @@ class TestI3BarInput(unittest.TestCase):
|
|||
mock_input.readline.assert_any_call()
|
||||
self.assertTrue(self._called > 0)
|
||||
|
||||
@mock.patch("sys.stdin")
|
||||
def test_remove_module_callback(self, mock_input):
|
||||
mock_input.readline.return_value = json.dumps({
|
||||
"name": self.anyModule.id,
|
||||
"instance": None,
|
||||
"button": bumblebee.input.LEFT_MOUSE,
|
||||
})
|
||||
self.input.register_callback(self.anyModule, button=1, cmd=self.callback)
|
||||
self.input.deregister_callbacks(self.anyModule)
|
||||
self.input.start()
|
||||
self.assertEquals(self.input.stop(), True)
|
||||
mock_input.readline.assert_any_call()
|
||||
self.assertTrue(self._called == 0)
|
||||
|
||||
@mock.patch("sys.stdin")
|
||||
def test_widget_callback(self, mock_input):
|
||||
mock_input.readline.return_value = json.dumps({
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue