示例#1
0
    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)
示例#2
0
    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)
示例#3
0
 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
示例#4
0
 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)
示例#5
0
 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')
示例#6
0
 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)
示例#7
0
 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')