Hackish first step to getting skill tester up and running
parent
873b231a54
commit
73c53aa8ea
|
@ -6,6 +6,7 @@ from test.skills.skill_tester import MockSkillsLoader, SkillTest
|
||||||
__author__ = 'seanfitz'
|
__author__ = 'seanfitz'
|
||||||
|
|
||||||
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
|
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
|
||||||
|
# PROJECT_ROOT = '/opt'
|
||||||
|
|
||||||
|
|
||||||
def discover_tests():
|
def discover_tests():
|
||||||
|
@ -31,7 +32,7 @@ class IntentTestSequenceMeta(type):
|
||||||
def __new__(mcs, name, bases, d):
|
def __new__(mcs, name, bases, d):
|
||||||
def gen_test(a, b):
|
def gen_test(a, b):
|
||||||
def test(self):
|
def test(self):
|
||||||
SkillTest(a, b, self.emitter).run()
|
SkillTest(a, b, self.emitter).run(self.loader)
|
||||||
return test
|
return test
|
||||||
|
|
||||||
tests = discover_tests()
|
tests = discover_tests()
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import json
|
import json
|
||||||
|
from os.path import dirname
|
||||||
|
|
||||||
from pyee import EventEmitter
|
from pyee import EventEmitter
|
||||||
|
|
||||||
|
@ -24,11 +25,16 @@ class RegistrationOnlyEmitter(object):
|
||||||
event_name = event.type
|
event_name = event.type
|
||||||
self.emitter.emit(event_name, event, *args, **kwargs)
|
self.emitter.emit(event_name, event, *args, **kwargs)
|
||||||
|
|
||||||
|
def remove(self, event_name, func):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class MockSkillsLoader(object):
|
class MockSkillsLoader(object):
|
||||||
def __init__(self, skills_root):
|
def __init__(self, skills_root):
|
||||||
self.skills_root = skills_root
|
self.skills_root = skills_root
|
||||||
self.emitter = RegistrationOnlyEmitter()
|
self.emitter = RegistrationOnlyEmitter()
|
||||||
|
from mycroft.skills.intent_service import IntentService
|
||||||
|
self.ih = IntentService(self.emitter)
|
||||||
|
|
||||||
def load_skills(self):
|
def load_skills(self):
|
||||||
self.skills = load_skills(self.emitter, self.skills_root)
|
self.skills = load_skills(self.emitter, self.skills_root)
|
||||||
|
@ -53,7 +59,10 @@ class SkillTest(object):
|
||||||
actual.get(key)))
|
actual.get(key)))
|
||||||
assert False
|
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'))
|
example_json = json.load(open(self.example, 'r'))
|
||||||
event = {'utterances': [example_json.get('utterance')]}
|
event = {'utterances': [example_json.get('utterance')]}
|
||||||
|
|
||||||
|
@ -61,7 +70,7 @@ class SkillTest(object):
|
||||||
self.compare_intents(example_json.get('intent'), intent.data)
|
self.compare_intents(example_json.get('intent'), intent.data)
|
||||||
self.returned_intent = True
|
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(
|
self.emitter.emit(
|
||||||
'recognizer_loop:utterance',
|
'recognizer_loop:utterance',
|
||||||
Message('recognizer_loop:utterance', event))
|
Message('recognizer_loop:utterance', event))
|
||||||
|
|
Loading…
Reference in New Issue