@@ -30,6 +30,12 @@ def test_parrot_mode(self):
3030 message2 = Message ("recognizer_loop:utterance" ,
3131 {"utterances" : ["echo test" ], "lang" : "en-US" },
3232 {"source" : "A" , "destination" : "B" })
33+ message3 = Message ("recognizer_loop:utterance" ,
34+ {"utterances" : ["stop parrot" ], "lang" : "en-US" },
35+ {"source" : "A" , "destination" : "B" })
36+ message4 = Message ("recognizer_loop:utterance" ,
37+ {"utterances" : ["echo test" ], "lang" : "en-US" },
38+ {"source" : "A" , "destination" : "B" })
3339
3440 expected1 = [
3541 message1 ,
@@ -68,11 +74,9 @@ def test_parrot_mode(self):
6874 Message (f"{ self .skill_id } .activate" ,
6975 data = {},
7076 context = {"skill_id" : self .skill_id }),
71-
7277 Message (f"{ self .skill_id } .converse.request" ,
7378 data = {"utterances" : ["echo test" ], "lang" : "en-US" },
7479 context = {"skill_id" : self .skill_id }),
75-
7680 Message ("speak" ,
7781 data = {"utterance" : "echo test" ,
7882 "expect_response" : False ,
@@ -81,29 +85,58 @@ def test_parrot_mode(self):
8185 "skill" : self .skill_id
8286 }},
8387 context = {"skill_id" : self .skill_id }),
84-
8588 Message ("skill.converse.response" ,
8689 data = {"skill_id" : self .skill_id },
8790 context = {"skill_id" : self .skill_id }),
88-
89- Message ("mycroft.skill.handler.complete" ,
90- data = {"name" : "ParrotSkill.handle_start_parrot_intent" },
91+ ]
92+ expected3 = [
93+ message3 ,
94+ Message (f"{ self .skill_id } .converse.ping" ,
95+ data = {"utterances" : ["stop parrot" ], "skill_id" : self .skill_id },
96+ context = {}),
97+ Message ("skill.converse.pong" ,
98+ data = {"can_handle" : True , "skill_id" : self .skill_id },
9199 context = {"skill_id" : self .skill_id }),
92- Message ("ovos.utterance.handled " ,
100+ Message (f" { self . skill_id } .activate " ,
93101 data = {},
94102 context = {"skill_id" : self .skill_id }),
95- ]
96103
104+ Message (f"{ self .skill_id } .converse.request" ,
105+ data = {"utterances" : ["stop parrot" ], "lang" : "en-US" },
106+ context = {"skill_id" : self .skill_id }),
107+
108+ Message ("speak" ,
109+ data = {"expect_response" : False ,
110+ "lang" : "en-US" ,
111+ "meta" : {
112+ "dialog" : "parrot_stop" ,
113+ "data" : {},
114+ "skill" : self .skill_id
115+ }},
116+ context = {"skill_id" : self .skill_id }),
117+ Message ("skill.converse.response" ,
118+ data = {"skill_id" : self .skill_id },
119+ context = {"skill_id" : self .skill_id })
120+ ]
121+ expected4 = [
122+ message4 ,
123+ Message (f"{ self .skill_id } .converse.ping" ,
124+ data = {"utterances" : ["echo test" ], "skill_id" : self .skill_id },
125+ context = {}),
126+ Message ("skill.converse.pong" ,
127+ data = {"can_handle" : False , "skill_id" : self .skill_id },
128+ context = {"skill_id" : self .skill_id }),
129+ Message ("mycroft.audio.play_sound" , data = {"uri" : "snd/error.mp3" }),
130+ Message ("complete_intent_failure" ),
131+ Message ("ovos.utterance.handled" )
132+ ]
97133 test = End2EndTest (
98134 minicroft = self .minicroft ,
99135 skill_ids = [self .skill_id ],
100136 flip_points = ["recognizer_loop:utterance" ],
101- source_message = [message1 , message2 ],
102- expected_messages = expected1 + expected2 ,
103- activation_points = {
104- f"{ self .skill_id } :start_parrot.intent" : self .skill_id
105- },
137+ source_message = [message1 , message2 , message3 , message4 ],
138+ expected_messages = expected1 + expected2 + expected3 + expected4 ,
139+ activation_points = {f"{ self .skill_id } :start_parrot.intent" : self .skill_id },
106140 keep_original_src = [f"{ self .skill_id } .converse.ping" , "skill.converse.response" ]
107141 )
108-
109142 test .execute (timeout = 10 )
0 commit comments