Hackish first step to getting skill tester up and running

pull/992/head^2
Åke Forslund 2017-06-16 18:33:10 +02:00 committed by Steve Penrod
parent 873b231a54
commit 73c53aa8ea
2 changed files with 13 additions and 3 deletions

View File

@ -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()

View File

@ -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))