Skip to content

Commit

Permalink
Fix issue #270 (#275)
Browse files Browse the repository at this point in the history
Add tests for ClientOSError in apiai, witai and luisai parsers
  • Loading branch information
FabioRosado authored and jacobtomlinson committed Oct 20, 2017
1 parent ed10063 commit 79cd76c
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 3 deletions.
21 changes: 20 additions & 1 deletion tests/test_parser_apiai.py
Expand Up @@ -2,7 +2,7 @@
import asynctest
import asynctest.mock as amock

from aiohttp import helpers
from aiohttp import helpers, ClientOSError

from opsdroid.core import OpsDroid
from opsdroid.matchers import match_apiai_action
Expand Down Expand Up @@ -144,3 +144,22 @@ async def test_parse_apiai_low_score(self):
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)
27 changes: 26 additions & 1 deletion tests/test_parser_luisai.py
Expand Up @@ -2,7 +2,7 @@
import asynctest
import asynctest.mock as amock

from aiohttp import helpers
from aiohttp import helpers, ClientOSError

from opsdroid.core import OpsDroid
from opsdroid.matchers import match_luisai_intent
Expand Down Expand Up @@ -178,3 +178,28 @@ async def test_parse_luisai_low_score(self):
opsdroid.config['parsers'][0])

self.assertFalse(mock_skill.called)

async def test_parse_luisai_raise_ClientOSError(self):
with OpsDroid() as opsdroid:
opsdroid.config['parsers'] = [
{'name': 'luisai',
'appid': 'test',
'appkey': 'test',
'verbose': True,
'min-score': 0.95}
]
mock_skill = amock.CoroutineMock()
match_luisai_intent('Calendar.Add')(mock_skill)

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

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

self.assertFalse(mock_skill.called)
self.assertTrue(mocked_call.called)
22 changes: 21 additions & 1 deletion tests/test_parser_witai.py
@@ -1,7 +1,7 @@
import asynctest
import asynctest.mock as amock

from aiohttp import helpers
from aiohttp import helpers, ClientOSError

from opsdroid.core import OpsDroid
from opsdroid.matchers import match_witai
Expand Down Expand Up @@ -196,3 +196,23 @@ async def test_parse_witai_no_intent(self):
opsdroid.config['parsers'][0])

self.assertFalse(mock_skill.called)

async def test_parse_witai_raise_ClientOSError(self):
with OpsDroid() as opsdroid:
opsdroid.config['parsers'] = [
{'name': 'witai', 'access-token': 'test', 'min-score': 0.3}
]
mock_skill = amock.CoroutineMock()
match_witai('get_weather')(mock_skill)

mock_connector = amock.CoroutineMock()
message = Message("how's the weather outside", "user",
"default", mock_connector)

with amock.patch.object(witai, 'call_witai') as mocked_call:
mocked_call.side_effect = ClientOSError()
await witai.parse_witai(opsdroid, message,
opsdroid.config['parsers'][0])

self.assertFalse(mock_skill.called)
self.assertTrue(mocked_call.called)

0 comments on commit 79cd76c

Please sign in to comment.