def test_get_slots_should_raise_with_unknown_intent(self): # Given slots_dataset_stream = io.StringIO( """ --- type: intent name: greeting1 utterances: - Hello [name1](John) --- type: intent name: goodbye utterances: - Goodbye [name](Eric)""") dataset = Dataset.from_yaml_files("en", [slots_dataset_stream]).json parser = LookupIntentParser().fit(dataset) # When / Then with self.assertRaises(IntentNotFoundError): parser.get_slots("Hello John", "greeting3")
def test_should_get_slots(self): # Given slots_dataset_stream = io.StringIO( """ --- type: intent name: greeting1 utterances: - Hello [name1](John) --- type: intent name: greeting2 utterances: - Hello [name2](Thomas) --- type: intent name: goodbye utterances: - Goodbye [name](Eric)""") dataset = Dataset.from_yaml_files("en", [slots_dataset_stream]).json parser = LookupIntentParser().fit(dataset) # When slots_greeting1 = parser.get_slots("Hello John", "greeting1") slots_greeting2 = parser.get_slots("Hello Thomas", "greeting2") slots_goodbye = parser.get_slots("Goodbye Eric", "greeting1") # Then self.assertEqual(1, len(slots_greeting1)) self.assertEqual(1, len(slots_greeting2)) self.assertEqual(0, len(slots_goodbye)) self.assertEqual("John", slots_greeting1[0][RES_VALUE]) self.assertEqual("name1", slots_greeting1[0][RES_ENTITY]) self.assertEqual("Thomas", slots_greeting2[0][RES_VALUE]) self.assertEqual("name2", slots_greeting2[0][RES_ENTITY])
def test_should_get_no_slots_with_none_intent(self): # Given slots_dataset_stream = io.StringIO( """ --- type: intent name: greeting utterances: - Hello [name](John)""") dataset = Dataset.from_yaml_files("en", [slots_dataset_stream]).json parser = LookupIntentParser().fit(dataset) # When slots = parser.get_slots("Hello John", None) # Then self.assertListEqual([], slots)