Skip to content
Snippets Groups Projects
Commit 515d5b7d authored by Sybren A. Stüvel's avatar Sybren A. Stüvel
Browse files

Fixed some test issues with CoroMock()

parent 3d121eee
Branches
Tags
No related merge requests found
......@@ -37,12 +37,16 @@ class EmptyResponse:
pass
def CoroMock(return_value=...):
def CoroMock(return_value=None):
"""Corountine mocking object.
For an example, see test_coro_mock.py.
Source: http://stackoverflow.com/a/32505333/875379
:param return_value: whatever you want to have set as return value.
This must always be set. Pass the ellipsis object ... to not set this; in that case
you are responsible yourself to set coromock.coro.return_value.
"""
import asyncio
......
import typing
from unittest.mock import Mock
from abstract_worker_test import AbstractWorkerTest
......@@ -16,7 +14,6 @@ class MayIRunTest(AbstractWorkerTest):
self.loop = construct_asyncio_loop()
self.manager = Mock(spec=FlamencoManager)
self.manager.get = Mock()
self.worker = Mock(spec=FlamencoWorker)
self.shutdown_future = self.loop.create_future()
......@@ -25,14 +22,15 @@ class MayIRunTest(AbstractWorkerTest):
poll_interval=timedelta(seconds=0.2),
loop=self.loop)
def _mock_get(self, *json_responses: dict):
import collections
values = collections.deque(json_responses)
def _mock_get(self, *json_responses):
from collections import deque
values = deque(json_responses)
async def mocked_get(*args, **kwargs):
mock_resp = Mock()
mock_resp.json.return_value = values.popleft()
return mock_resp
mocked_response = Mock()
mocked_response.json.return_value = values.popleft()
return mocked_response
self.manager.get = mocked_get
......
......@@ -81,7 +81,7 @@ class BlenderRenderTest(AbstractCommandTest):
'filepath': filepath,
}
cse = CoroMock()
cse = CoroMock(...)
cse.coro.return_value.wait = CoroMock(return_value=0)
with patch('asyncio.create_subprocess_exec', new=cse) as mock_cse:
self.loop.run_until_complete(self.cmd.run(settings))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment