コード例 #1
0
ファイル: test_core.py プロジェクト: xxddsummer/opsdroid
 async def test_parse_recastai(self):
     with OpsDroid() as opsdroid:
         opsdroid.config["parsers"] = [{"name": "recastai"}]
         recastai_intent = ""
         skill = amock.CoroutineMock()
         mock_connector = Connector({})
         match_recastai(recastai_intent)(skill)
         message = Message("Hello", "user", "default", mock_connector)
         with amock.patch('opsdroid.parsers.recastai.parse_recastai'):
             tasks = await opsdroid.parse(message)
             self.assertEqual(len(tasks), 1)
             for task in tasks:
                 await task
コード例 #2
0
ファイル: test_matchers.py プロジェクト: xDiesel76/opsdroid
async def test_match_recastai(opsdroid, caplog):
    intent = "myIntent"
    decorator = matchers.match_recastai(intent)
    opsdroid.skills.append(decorator(await get_mock_skill()))
    assert len(opsdroid.skills) == 1
    assert opsdroid.skills[0].matchers[0]["sapcai_intent"] == intent
    assert asyncio.iscoroutinefunction(opsdroid.skills[0])
コード例 #3
0
ファイル: test_matchers.py プロジェクト: opsdroid/opsdroid
 async def test_match_recastai(self):
     with OpsDroid() as opsdroid:
         intent = "myIntent"
         decorator = matchers.match_recastai(intent)
         opsdroid.skills.append(decorator(await self.getMockSkill()))
         self.assertEqual(len(opsdroid.skills), 1)
         self.assertEqual(opsdroid.skills[0].matchers[0]["sapcai_intent"], intent)
         self.assertTrue(asyncio.iscoroutinefunction(opsdroid.skills[0]))
         self.assertLogs("Warning", "_LOGGER")
コード例 #4
0
 async def test_match_recastai(self):
     with OpsDroid() as opsdroid:
         intent = "myIntent"
         decorator = matchers.match_recastai(intent)
         opsdroid.skills.append(decorator(await self.getMockSkill()))
         self.assertEqual(len(opsdroid.skills), 1)
         self.assertEqual(opsdroid.skills[0].matchers[0]["sapcai_intent"], intent)
         self.assertTrue(asyncio.iscoroutinefunction(opsdroid.skills[0]))
         self.assertLogs("Warning", "_LOGGER")
コード例 #5
0
    async def test_parse_recastai_raises(self):
        with OpsDroid() as opsdroid:
            opsdroid.config['parsers'] = [{
                'name': 'recastai',
                'access-token': "test"
            }]
            mock_skill = amock.CoroutineMock()
            mock_skill.side_effect = Exception()
            opsdroid.loader.current_import_config = {"name": "mocked-intent"}
            match_recastai('greetings')(mock_skill)

            mock_connector = amock.MagicMock()
            mock_connector.respond = amock.CoroutineMock()
            message = Message("Hello", "user", "default", mock_connector)

            with amock.patch.object(recastai, 'call_recastai') as \
                    mocked_call_recastai:
                mocked_call_recastai.return_value = {
                    'results': {
                        "uuid": "f482bddd-a9d7-41ae-aae3-6e64ad3f02dc",
                        "source": "hello",
                        "intents": [{
                            "slug": "greetings",
                            "confidence": 0.99
                        }],
                        "act": "assert",
                        "type": None,
                        "sentiment": "vpositive",
                        "entities": {},
                        "language": "en",
                        "processing_language": "en",
                        "version": "2.10.1",
                        "timestamp": "2017-11-15T07:41:48.935990+00:00",
                        "status": 200
                    }
                }

                skills = await recastai.parse_recastai(
                    opsdroid, message, opsdroid.config['parsers'][0])
                self.assertEqual(mock_skill, skills[0]["skill"])

            await opsdroid.run_skill(skills[0]["skill"], skills[0]["config"],
                                     message)
            self.assertTrue(skills[0]["skill"].called)
コード例 #6
0
    async def test_parse_recastai_raise_ClientOSError(self):
        with OpsDroid() as opsdroid:
            opsdroid.config['parsers'] = [{
                'name': 'recastai',
                'access-token': "test",
            }]
            mock_skill = amock.CoroutineMock()
            match_recastai('greetings')(mock_skill)

            mock_connector = amock.CoroutineMock()
            message = Message("Hello", "user", "default", mock_connector)

            with amock.patch.object(recastai, 'call_recastai') \
                    as mocked_call:
                mocked_call.side_effect = ClientOSError()
                await recastai.parse_recastai(opsdroid, message,
                                              opsdroid.config['parsers'][0])

            self.assertFalse(mock_skill.called)
            self.assertTrue(mocked_call.called)
コード例 #7
0
    async def test_parse_recastai_failure(self):
        with OpsDroid() as opsdroid:
            opsdroid.config['parsers'] = [{
                'name': 'recastai',
                'access-token': "test"
            }]
            mock_skill = amock.CoroutineMock()
            match_recastai('greetings')(mock_skill)

            mock_connector = amock.CoroutineMock()
            message = Message("", "user", "default", mock_connector)

            with amock.patch.object(recastai, 'call_recastai') as \
                    mocked_call_recastai:
                mocked_call_recastai.return_value = {
                    'results': None,
                    'message': 'Text is empty'
                }
                skills = await recastai.parse_recastai(
                    opsdroid, message, opsdroid.config['parsers'][0])
                self.assertFalse(skills)
コード例 #8
0
    async def test_parse_recastai_low_score(self):
        with OpsDroid() as opsdroid:
            opsdroid.config['parsers'] = [{
                'name': 'recastai',
                'access-token': "test",
                "min-score": 1.0
            }]
            mock_skill = amock.CoroutineMock()
            match_recastai('intent')(mock_skill)

            mock_connector = amock.CoroutineMock()
            message = Message("Hello", "user", "default", mock_connector)

            with amock.patch.object(recastai, 'call_recastai') as \
                    mocked_call_recastai:
                mocked_call_recastai.return_value = {
                    'results': {
                        "uuid": "f482bddd-a9d7-41ae-aae3-6e64ad3f02dc",
                        "source": "hello",
                        "intents": [{
                            "slug": "greetings",
                            "confidence": 0.99
                        }],
                        "act": "assert",
                        "type": None,
                        "sentiment": "vpositive",
                        "entities": {},
                        "language": "en",
                        "processing_language": "en",
                        "version": "2.10.1",
                        "timestamp": "2017-11-15T07:41:48.935990+00:00",
                        "status": 200
                    }
                }
                await recastai.parse_recastai(opsdroid, message,
                                              opsdroid.config['parsers'][0])

            self.assertFalse(mock_skill.called)
コード例 #9
0
    async def test_parse_recastai_no_intent(self):
        with OpsDroid() as opsdroid:
            opsdroid.config['parsers'] = [{
                'name': 'recastai',
                'access-token': "test"
            }]
            mock_skill = amock.CoroutineMock()
            match_recastai('greetings')(mock_skill)

            mock_connector = amock.CoroutineMock()
            message = Message("kdjiruetosakdg", "user", "default",
                              mock_connector)

            with amock.patch.object(recastai, 'call_recastai') as \
                    mocked_call_recastai:
                mocked_call_recastai.return_value = {
                    'results': {
                        'uuid': 'e4b365be-815b-4e40-99c3-7a25583b4892',
                        'source': 'kdjiruetosakdg',
                        'intents': [],
                        'act': 'assert',
                        'type': None,
                        'sentiment': 'neutral',
                        'entities': {},
                        'language': 'en',
                        'processing_language': 'en',
                        'version': '2.10.1',
                        'timestamp': '2017-11-15T07:32:42.641604+00:00',
                        'status': 200
                    }
                }
                with amock.patch(
                        'opsdroid.parsers.recastai._LOGGER.error') as logmock:
                    skills = await recastai.parse_recastai(
                        opsdroid, message, opsdroid.config['parsers'][0])
                    self.assertTrue(logmock.called)
                    self.assertFalse(skills)