async def test_parse_apiai_failure(self): with OpsDroid() as opsdroid: opsdroid.config['parsers'] = [{ 'name': 'apiai', 'access-token': "test" }] mock_skill = amock.CoroutineMock() match_apiai_action('myaction')(mock_skill) mock_connector = amock.CoroutineMock() message = Message("Hello world", "user", "default", mock_connector) with amock.patch.object(apiai, 'call_apiai') as mocked_call_apiai: mocked_call_apiai.return_value = { "result": { "action": "myaction", "score": 0.7 }, "status": { "code": 404, "errorType": "not found" } } await apiai.parse_apiai(opsdroid, message, opsdroid.config['parsers'][0]) self.assertFalse(mock_skill.called)
async def test_parse_apiai_raise_ClientOSError(self): with OpsDroid() as opsdroid: opsdroid.config['parsers'] = [{ 'name': 'apiai', 'access-token': "test", "min-score": 0.8 }] mock_skill = amock.CoroutineMock() match_apiai_action('myaction')(mock_skill) mock_connector = amock.CoroutineMock() message = Message("Hello world", "user", "default", mock_connector) with amock.patch.object(apiai, 'call_apiai') as mocked_call: mocked_call.side_effect = ClientOSError() await apiai.parse_apiai(opsdroid, message, opsdroid.config['parsers'][0]) self.assertFalse(mock_skill.called) self.assertTrue(mocked_call.called)
async def test_parse_apiai(self): with OpsDroid() as opsdroid: opsdroid.config["parsers"] = [{"name": "apiai"}] apiai_action = "" skill = amock.CoroutineMock() mock_connector = Connector({}) decorator = match_apiai_action(apiai_action) decorator(skill) message = Message("Hello world", "user", "default", mock_connector) with amock.patch('opsdroid.parsers.apiai.parse_apiai'): tasks = await opsdroid.parse(message) self.assertEqual(len(tasks), 3) # apiai, regex and always for task in tasks: await task
async def test_match_apiai(self): with OpsDroid() as opsdroid: action = "myaction" mockedskill = mock.MagicMock() decorator = matchers.match_apiai_action(action) decorator(mockedskill) self.assertEqual(len(opsdroid.skills), 1) self.assertEqual(opsdroid.skills[0]["apiai_action"], action) self.assertIsInstance(opsdroid.skills[0]["skill"], mock.MagicMock) intent = "myIntent" decorator = matchers.match_apiai_intent(intent) decorator(mockedskill) self.assertEqual(len(opsdroid.skills), 2) self.assertEqual(opsdroid.skills[1]["apiai_intent"], intent) self.assertIsInstance(opsdroid.skills[1]["skill"], mock.MagicMock)
async def test_match_apiai(self): with OpsDroid() as opsdroid: action = "myaction" decorator = matchers.match_apiai_action(action) opsdroid.skills.append(decorator(await self.getMockSkill())) self.assertEqual(len(opsdroid.skills), 1) self.assertEqual(opsdroid.skills[0].matchers[0]["dialogflow_action"], action) self.assertTrue(asyncio.iscoroutinefunction(opsdroid.skills[0])) intent = "myIntent" decorator = matchers.match_apiai_intent(intent) opsdroid.skills.append(decorator(await self.getMockSkill())) self.assertEqual(len(opsdroid.skills), 2) self.assertEqual(opsdroid.skills[1].matchers[0]["dialogflow_intent"], intent) self.assertTrue(asyncio.iscoroutinefunction(opsdroid.skills[1])) decorator = matchers.match_apiai_intent(intent) opsdroid.skills.append(decorator(await self.getMockSkill())) self.assertLogs('_LOGGER', 'warning')
async def test_match_apiai(self): with OpsDroid() as opsdroid: action = "myaction" mockedskill = mock.MagicMock() decorator = matchers.match_apiai_action(action) decorator(mockedskill) self.assertEqual(len(opsdroid.skills), 1) self.assertEqual(opsdroid.skills[0]["dialogflow_action"], action) self.assertIsInstance(opsdroid.skills[0]["skill"], mock.MagicMock) intent = "myIntent" decorator = matchers.match_apiai_intent(intent) decorator(mockedskill) self.assertEqual(len(opsdroid.skills), 2) self.assertEqual(opsdroid.skills[1]["dialogflow_intent"], intent) self.assertIsInstance(opsdroid.skills[1]["skill"], mock.MagicMock) with mock.patch('opsdroid.matchers._LOGGER.warning') as logmock: decorator = matchers.match_apiai_intent(intent) decorator(mockedskill) self.assertTrue(logmock.called)
async def test_match_apiai(self): with OpsDroid() as opsdroid: action = "myaction" decorator = matchers.match_apiai_action(action) opsdroid.skills.append(decorator(await self.getMockSkill())) self.assertEqual(len(opsdroid.skills), 1) self.assertEqual( opsdroid.skills[0].matchers[0]["dialogflow_action"], action) self.assertTrue(asyncio.iscoroutinefunction(opsdroid.skills[0])) intent = "myIntent" decorator = matchers.match_apiai_intent(intent) opsdroid.skills.append(decorator(await self.getMockSkill())) self.assertEqual(len(opsdroid.skills), 2) self.assertEqual( opsdroid.skills[1].matchers[0]["dialogflow_intent"], intent) self.assertTrue(asyncio.iscoroutinefunction(opsdroid.skills[1])) decorator = matchers.match_apiai_intent(intent) opsdroid.skills.append(decorator(await self.getMockSkill())) self.assertLogs('_LOGGER', 'warning')