From bfe2b59f907dfad78205690f6eb57c8ca793af48 Mon Sep 17 00:00:00 2001 From: Kris Gesling Date: Tue, 2 Feb 2021 14:14:40 +0930 Subject: [PATCH 1/2] Add get method for accessing GUI values --- mycroft/enclosure/gui.py | 4 ++++ test/unittests/enclosure/test_gui.py | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/mycroft/enclosure/gui.py b/mycroft/enclosure/gui.py index ac001fa7ba..33130bca79 100644 --- a/mycroft/enclosure/gui.py +++ b/mycroft/enclosure/gui.py @@ -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) diff --git a/test/unittests/enclosure/test_gui.py b/test/unittests/enclosure/test_gui.py index 3f0a591e80..e55304896d 100644 --- a/test/unittests/enclosure/test_gui.py +++ b/test/unittests/enclosure/test_gui.py @@ -150,3 +150,12 @@ 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") From cae1cb751f14b92d081641996adb669d877de22a Mon Sep 17 00:00:00 2001 From: Kris Gesling Date: Tue, 2 Feb 2021 14:15:19 +0930 Subject: [PATCH 2/2] Extend GUI interface unittests --- test/unittests/enclosure/test_gui.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/unittests/enclosure/test_gui.py b/test/unittests/enclosure/test_gui.py index e55304896d..9af11e4f42 100644 --- a/test/unittests/enclosure/test_gui.py +++ b/test/unittests/enclosure/test_gui.py @@ -159,3 +159,27 @@ class TestSkillGUI(TestCase): 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)