Merge pull request #2820 from MycroftAI/feature/gui-get

Feature/gui get
pull/2830/head
Kris Gesling 2021-02-05 14:41:03 +09:30 committed by GitHub
commit b1be522972
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 0 deletions

View File

@ -110,6 +110,10 @@ class SkillGUI:
"""Implements get part of dict-like behaviour with named keys."""
return self.__session_data[key]
def get(self, *args, **kwargs):
"""Implements the get method for accessing dict keys."""
return self.__session_data.get(*args, **kwargs)
def __contains__(self, key):
"""Implements the "in" operation."""
return self.__session_data.__contains__(key)

View File

@ -150,3 +150,36 @@ class TestSkillGUI(TestCase):
response = None
self.mock_skill.bus.wait_for_response.return_value = response
self.assertFalse(self.gui.connected)
def test_get(self):
"""Ensure the get method returns expected values."""
self.gui["example"] = "value"
self.assertEqual(self.gui.get("example"), "value")
self.assertEqual(self.gui.get("nothing"), None)
self.assertEqual(self.gui.get(0), None)
self.gui[0] = "value"
self.assertEqual(self.gui.get(0), "value")
def test_clear(self):
"""Ensure that namespace is cleared."""
self.gui["example"] = "value"
self.assertEqual(self.gui.get("example"), "value")
self.gui.clear()
self.assertEqual(self.gui.get("example"), None)
def test_release(self):
"""Ensure the correct method and data is sent to close a Skill."""
self.gui.show_page('meaning.qml')
self.gui.release()
sent_message = self.mock_skill.bus.emit.call_args_list[-1][0][0]
self.assertEqual(sent_message.msg_type, 'mycroft.gui.screen.close')
self.assertEqual(sent_message.data['skill_id'], 'fortytwo-skill')
def test_shutdown(self):
"""Ensure the GUI is cleared and Skill ref removed on shutdown."""
self.gui["example"] = "value"
self.gui.show_page('meaning.qml')
self.assertEqual(self.gui.skill, self.mock_skill)
self.gui.shutdown()
self.assertEqual(self.gui.get("example"), None)
self.assertEqual(self.gui.skill, None)