From fbcf7315566f71a9ecc8d562e22d7a0a21ade33b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85ke=20Forslund?= Date: Wed, 3 Jul 2019 08:38:17 +0200 Subject: [PATCH 1/2] Remove broken auto-naming of resting_screen_handler The automatic naming of the resting_screen_handler wasn't working (error occured if no name was supplied) Added test case for the function --- mycroft/skills/core.py | 4 +--- test/unittests/skills/test_core.py | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/mycroft/skills/core.py b/mycroft/skills/core.py index 2c019fbcf5..23bbd5c334 100644 --- a/mycroft/skills/core.py +++ b/mycroft/skills/core.py @@ -460,13 +460,11 @@ class SkillGUI: self.show_page("SYSTEM_UrlFrame.qml", override_idle) -def resting_screen_handler(name=None): +def resting_screen_handler(name): """ Decorator for adding a method as an resting screen handler. If selected will be shown on screen when device enters idle mode """ - name = name or func.__self__.name - def real_decorator(func): # Store the resting information inside the function # This will be used later in register_resting_screen diff --git a/test/unittests/skills/test_core.py b/test/unittests/skills/test_core.py index 0976c74a68..b1cb0e34e4 100644 --- a/test/unittests/skills/test_core.py +++ b/test/unittests/skills/test_core.py @@ -27,7 +27,7 @@ from mycroft.messagebus.message import Message from mycroft.skills.skill_data import load_regex_from_file, load_regex, \ load_vocab_from_file, load_vocabulary from mycroft.skills.core import MycroftSkill, load_skill, \ - create_skill_descriptor, open_intent_envelope + create_skill_descriptor, open_intent_envelope, resting_screen_handler from test.util import base_config @@ -56,6 +56,21 @@ class MockEmitter(object): self.results = [] +class FunctionTest(unittest.TestCase): + def test_resting_screen_handler(self): + class T(MycroftSkill): + def __init__(self): + self.name = 'TestObject' + + @resting_screen_handler('humbug') + def f(self): + pass + + test_class = T() + self.assertTrue('resting_handler' in dir(test_class.f)) + self.assertEquals(test_class.f.resting_handler, 'humbug') + + class MycroftSkillTest(unittest.TestCase): emitter = MockEmitter() regex_path = abspath(join(dirname(__file__), '../regex_test')) From 44c0a0e430bb026572e7cef397f092520fa9649c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85ke=20Forslund?= Date: Wed, 3 Jul 2019 08:57:38 +0200 Subject: [PATCH 2/2] Restore sys.path after test_register_decorator Issue detected by pyflake, the original sys.path was never restored --- test/unittests/skills/test_core.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/unittests/skills/test_core.py b/test/unittests/skills/test_core.py index b1cb0e34e4..8702a0fa92 100644 --- a/test/unittests/skills/test_core.py +++ b/test/unittests/skills/test_core.py @@ -365,6 +365,8 @@ class MycroftSkillTest(unittest.TestCase): 'name': str(s.skill_id) + ':test.intent'}] self.check_register_decorators(expected) + # Restore sys.path + sys.path = path_orig def test_failing_set_context(self): s = SimpleSkill1()