From 73c53aa8ead08d244dacb95158eaca41bf43f70e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85ke=20Forslund?= Date: Fri, 16 Jun 2017 18:33:10 +0200 Subject: [PATCH] Hackish first step to getting skill tester up and running --- test/skills/discover_tests.py | 3 ++- test/skills/skill_tester.py | 13 +++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/test/skills/discover_tests.py b/test/skills/discover_tests.py index 09efdde92c..b77a1010d9 100644 --- a/test/skills/discover_tests.py +++ b/test/skills/discover_tests.py @@ -6,6 +6,7 @@ from test.skills.skill_tester import MockSkillsLoader, SkillTest __author__ = 'seanfitz' PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) +# PROJECT_ROOT = '/opt' def discover_tests(): @@ -31,7 +32,7 @@ class IntentTestSequenceMeta(type): def __new__(mcs, name, bases, d): def gen_test(a, b): def test(self): - SkillTest(a, b, self.emitter).run() + SkillTest(a, b, self.emitter).run(self.loader) return test tests = discover_tests() diff --git a/test/skills/skill_tester.py b/test/skills/skill_tester.py index 7f225b544f..d7ad71e754 100644 --- a/test/skills/skill_tester.py +++ b/test/skills/skill_tester.py @@ -1,4 +1,5 @@ import json +from os.path import dirname from pyee import EventEmitter @@ -24,11 +25,16 @@ class RegistrationOnlyEmitter(object): event_name = event.type self.emitter.emit(event_name, event, *args, **kwargs) + def remove(self, event_name, func): + pass + class MockSkillsLoader(object): def __init__(self, skills_root): self.skills_root = skills_root self.emitter = RegistrationOnlyEmitter() + from mycroft.skills.intent_service import IntentService + self.ih = IntentService(self.emitter) def load_skills(self): self.skills = load_skills(self.emitter, self.skills_root) @@ -53,7 +59,10 @@ class SkillTest(object): actual.get(key))) assert False - def run(self): + def run(self, loader): + for s in loader.skills: + if s and s._dir == self.skill: + name = s.name example_json = json.load(open(self.example, 'r')) event = {'utterances': [example_json.get('utterance')]} @@ -61,7 +70,7 @@ class SkillTest(object): self.compare_intents(example_json.get('intent'), intent.data) self.returned_intent = True - self.emitter.once(example_json.get('intent_type'), compare) + self.emitter.once(name + ':' + example_json.get('intent_type'), compare) self.emitter.emit( 'recognizer_loop:utterance', Message('recognizer_loop:utterance', event))