def setUp(self): self.agent = AgentSkillEmulator([WeatherSkill]) self.test_phrase = "Weather Forecast in" import random salt = random.randint(0, 10e6) self.user_id = f"perpperonipizza_{salt}"
class AlarmSetterBot(unittest.TestCase): def setUp(self): self.agent = AgentSkillEmulator([AlarmSkill]) import random salt = random.randint(0, 10e6) self.user_id = f"perpperonipizza_{salt}" # actually setting the alarm phrase: self.test_phrase = "Я устанавливаю будильник на" def test_weather_active_questioning_date(self): # user_messages_sequence = ["КАКАЯ ПОГОДА будет ЗАВТРА?", "МОСКВА"] user_messages_sequence = [ "Приветик, Роботишка", "УСТАНОВИ БУДИЛЬНИК", "Чак Норрис бы не задавал такие вопросы", "ЗАВТРА", "ДА" ] userdialog = self.agent.conjugate_autouser_with_agent( user_messages_sequence, self.user_id) self.assertIn(self.test_phrase, userdialog[7].text) def test_weather_prehistory_date(self): # user_messages_sequence = ["КАКАЯ ПОГОДА будет ЗАВТРА?", "МОСКВА"] user_messages_sequence = [ "Приветик, Роботишка", "УСТАНОВИ БУДИЛЬНИК на завтра 16:00", "Чак Норрис бы не задавал такие вопросы", "ЗАВТРА", "ДА" ] userdialog = self.agent.conjugate_autouser_with_agent( user_messages_sequence, self.user_id) self.assertIn(self.test_phrase, userdialog[3].text)
def setUp(self): self.agent = AgentSkillEmulator([AlarmSkill]) import random salt = random.randint(0, 10e6) self.user_id = f"perpperonipizza_{salt}" # actually setting the alarm phrase: self.test_phrase = "Я устанавливаю будильник на"
class TestCurrencyConverterSkill(unittest.TestCase): """ Set up basic skill which reacts with standard reaction """ def setUp(self): self.agent = AgentSkillEmulator([CurrencyConverterSkill]) import random salt = random.randint(0, 10e6) self.user_id = f"perpperonipizza_{salt}" def test_simple_reaction(self): user_messages_sequence = [ "Приветик, Роботишка", "покажи мне курсы валют", "Что дальше?", "Книги, викинги, динозавры и керлинг", "И что мне посоветуешь?" ] self.agent.conjugate_autouser_with_agent(user_messages_sequence, self.user_id)
class IntroductionWithRestartTest(unittest.TestCase): """ Set up basic skill which reacts with standard reaction """ def setUp(self): self.agent = AgentSkillEmulator([RootSkill, IntroductionSkill]) import random salt = random.randint(0, 10e6) self.user_id = f"perpperonipizza_{salt}" def test_simple_reaction(self): user_messages_sequence = ["ЗНАКОМСТВО, Приветик, Роботишка", "Чак Норрис бы не задавал такие вопросы", "Что дальше?", "Зови меня Валерой", "Книги, викинги, динозавры и керлинг", "/start", "ЗНАКОМСТВО, Приветик, Роботишка", "Зови меня Иванушкой", "я люблю гитару, керлинг и книги", "давай жги еще" ] self.agent.conjugate_autouser_with_agent(user_messages_sequence, self.user_id)
class WeatherBotTest(unittest.TestCase): # TODO make test where Slot (city) has default value # TODO make test where Slot (city) has default value and requires confirmation on silent value def setUp(self): self.agent = AgentSkillEmulator([WeatherSkill]) self.test_phrase = "Weather Forecast in" import random salt = random.randint(0, 10e6) self.user_id = f"perpperonipizza_{salt}" def test_weather_no_prehist(self): user_messages_sequence = ["КАКАЯ ПОГОДА будет?", "В москве", "ЗАВТРА"] userdialog = self.agent.conjugate_autouser_with_agent( user_messages_sequence, self.user_id) self.assertIn(self.test_phrase, userdialog[5].text) def test_weather_prehistory_city(self): user_messages_sequence = ["КАКАЯ ПОГОДА будет В МОСКВЕ?", "ЗАВТРА"] userdialog = self.agent.conjugate_autouser_with_agent( user_messages_sequence, self.user_id) self.assertIn(self.test_phrase, userdialog[3].text) def test_weather_prehistory_date(self): user_messages_sequence = ["КАКАЯ ПОГОДА будет ЗАВТРА?", "МОСКВА"] userdialog = self.agent.conjugate_autouser_with_agent( user_messages_sequence, self.user_id) self.assertEqual(userdialog[1].text, "В каком городе?") self.assertIn(self.test_phrase, userdialog[3].text) def test_weather_prehistory_date_and_city(self): user_messages_sequence = ["КАКАЯ ПОГОДА будет ЗАВТРА в Москве?"] userdialog = self.agent.conjugate_autouser_with_agent( user_messages_sequence, self.user_id) self.assertIn(self.test_phrase, userdialog[1].text)
def route_request(cls, user_id, utterance_str): global personal_agents_idx if user_id not in personal_agents_idx: # create new Agent for the user print("Create new USER!") # personal_agents_idx[user_id] = AgentSkillInitializer( # [IntroductionSkill, BankConsulterSkill, WeatherSkill, AlarmSkill, RootSkill]) # personal_agents_idx[user_id] = AgentSkillInitializer([IntroductionSkill, WeatherSkill]) personal_agents_idx[user_id] = AgentSkillEmulator( [RootSkill, TranslatorSkill, IntroductionSkill]) bot_resp = personal_agents_idx[user_id](utterance_str, user_id) return bot_resp
class TestECommerceSkill(unittest.TestCase): """ Set up basic skill which reacts with standard reaction """ def setUp(self): self.agent = AgentSkillEmulator([ECommerceSkill]) import random salt = random.randint(0, 10e6) self.user_id = f"perpperonipizza_{salt}" # def test_pay_by_cash(self): # user_messages_sequence = ["найди мне желтые туфельки", # "покажи второй товар", # "Добавь первую туфельку в корзину", # "Добавь розовую туфельку в корзину", # "покажи корзину", # "давай перейдем к покупке", # "Доставка курьером", # "Иванов Иван Иванович", # "911", # "г. Урюписнк, улица Сапогова, 3, 14", # "Оплата кешем", # "Спасибо братюня" # ] # userdialog = self.agent.conjugate_autouser_with_agent(user_messages_sequence, self.user_id) # # self.assertIn("Well, hello!", userdialog[1].text) def test_pay_by_card(self): user_messages_sequence = ["найди мне желтые туфельки", "покажи второй товар", "Добавь первую туфельку в корзину", "Добавь розовую туфельку в корзину", "покажи корзину", "давай перейдем к покупке", "Доставка курьером", "Иванов Иван Иванович", "911", "г. Урюписнк, улица Сапогова, 3, 14", "Оплата картой", "445566778899", "321", "Ivanov Ivan", "123456", "Спасибо братюня"] userdialog = self.agent.conjugate_autouser_with_agent(user_messages_sequence, self.user_id)
class TestAIMLSkill(unittest.TestCase): """ Set up basic skill which reacts with standard reaction """ def setUp(self): self.agent = AgentSkillEmulator([AIMLSkill]) import random salt = random.randint(0, 10e6) self.user_id = f"perpperonipizza_{salt}" def test_simple_reaction(self): user_messages_sequence = [ "Hello", "What s up?", "Tell me a joke", "Learn my pants are Red", "LET DISCUSS MOVIES", "Comedy movies are nice to watch", "I LIKE WATCHING COMEDY!", "Ok, goodbye" ] userdialog = self.agent.conjugate_autouser_with_agent( user_messages_sequence, self.user_id) self.assertIn("Well, hello!", userdialog[1].text)
def setUp(self): self.agent = AgentSkillEmulator([ECommerceSkill]) import random salt = random.randint(0, 10e6) self.user_id = f"perpperonipizza_{salt}"
def setUp(self): self.agent = AgentSkillEmulator([CurrencyConverterSkill]) import random salt = random.randint(0, 10e6) self.user_id = f"perpperonipizza_{salt}"
class TestCurrencyConverterSkill(unittest.TestCase): """ Set up basic skill which reacts with standard reaction """ def setUp(self): self.agent = AgentSkillEmulator([TranslatorSkill]) import random salt = random.randint(0, 10e6) self.user_id = f"perpperonipizza_{salt}" def test_simple_reaction(self): user_messages_sequence = [ "Приветик, Роботишка", # "Как переводится слово mother", # "Что означает слово butter", # "Как по английски сказать вероятность", # "Переведи фразу besame mucho", # "что значит anticipatory", # "как переводится фраза salut mon amie", # "как будет по русски have", # "как по русски будет to", "перевод слова дом на английский", "перевод с английского слово часть" ] self.agent.conjugate_autouser_with_agent(user_messages_sequence, self.user_id) def test_bunch_of_requests(self): test_lines = """Как по английски будет мама Что значит слово pedaço Что означает bessame mucho Как по португальски сказать я еду домой Переведи на испанский слово дочь Переведи на японский воображение Переведи созо с японского Как перевести salut ca va с французского как переводится anticipatory что значит фраза Per aspera ad astra как будет по русски have как по русски будет to перевод слова дом на английский вайлдберриз перевод слова с английского перевод на английский слово человек перевод слова на английский lives перевод слова done с английского на русский перевод с английского на русский слово got перевод с английского на русский слово could перевод с английского на русский слово does перевод с английского на русский слово doing перевод с английского слова better перевод с английского слово best перевод с английского на русский слово went перевод с английского на русский слово going перевод с английского на русский слово better перевод с английского на русский слово best перевод с английского слова good перевод с английского слово часть перевод английского слова where перевод английского слова live перевод слова с английского going перевод слова читать на английский перевод слова история на английский перевод слова мало на английский перевод слова these с английского на русский перевод слова год на английский игра слов перевод на английский перевод с английского на русский слово good перевод английской песни русскими словами вайлдберриз перевод слова с английского на русский перевод слова книга на английском как на английском пишется слово перевод что в переводе означает английское слово хук перевод слова 8 на английский транскрипция и перевод слова дети английский самые распространенные английские слова с переводом произношение английских слов слушать онлайн с переводом английские слова из 4 букв с переводом 500 английских слов с переводом и транскрипцией часто употребляемые английские слова с переводом""" splitted_lines = test_lines.splitlines() self.agent.conjugate_autouser_with_agent(splitted_lines, self.user_id)
def setUp(self): self.agent = AgentSkillEmulator([BankConsulterSkill])
def setUp(self): self.agent = AgentSkillEmulator([WeatherSkill]) self.test_phrase = "Weather Forecast in"
def setUp(self): self.agent = AgentSkillEmulator([AlarmSkill]) # actually setting the alarm phrase: self.test_phrase = "Я устанавливаю будильник на"
def setUp(self): self.agent = AgentSkillEmulator( [BankConsulterSkill, WeatherSkill, AlarmSkill])
def setUp(self): self.agent = AgentSkillEmulator([RootSkill, IntroductionSkill]) import random salt = random.randint(0, 10e6) self.user_id = f"perpperonipizza_{salt}"