From ae52e015ce86374b7936fd165961905d999fc112 Mon Sep 17 00:00:00 2001 From: Brett Sun Date: Tue, 6 Dec 2016 16:05:17 +0100 Subject: [PATCH] Fix changefeed tests that were mocking the wrong thing --- tests/pipelines/test_utils.py | 65 +++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/tests/pipelines/test_utils.py b/tests/pipelines/test_utils.py index e0e8dccc..1271068a 100644 --- a/tests/pipelines/test_utils.py +++ b/tests/pipelines/test_utils.py @@ -1,56 +1,67 @@ -from unittest.mock import patch +import pytest +from unittest.mock import Mock from multipipes import Pipe +from bigchaindb import Bigchain from bigchaindb.backend.connection import Connection from bigchaindb.pipelines.utils import ChangeFeed -MOCK_CHANGEFEED_DATA = [{ - 'new_val': 'seems like we have an insert here', - 'old_val': None, -}, { - 'new_val': None, - 'old_val': 'seems like we have a delete here', -}, { - 'new_val': 'seems like we have an update here', - 'old_val': 'seems like we have an update here', -}] +@pytest.fixture +def mock_changefeed_data(): + return [ + { + 'new_val': 'seems like we have an insert here', + 'old_val': None, + }, { + 'new_val': None, + 'old_val': 'seems like we have a delete here', + }, { + 'new_val': 'seems like we have an update here', + 'old_val': 'seems like we have an update here', + } + ] -@patch.object(Connection, 'run', return_value=MOCK_CHANGEFEED_DATA) -def test_changefeed_insert(mock_run): +@pytest.fixture +def mock_changefeed_bigchain(mock_changefeed_data): + connection = Connection() + connection.run = Mock(return_value=mock_changefeed_data) + return Bigchain(connection=connection) + + +def test_changefeed_insert(mock_changefeed_bigchain): outpipe = Pipe() - changefeed = ChangeFeed('backlog', ChangeFeed.INSERT) + changefeed = ChangeFeed('backlog', ChangeFeed.INSERT, bigchain=mock_changefeed_bigchain) changefeed.outqueue = outpipe changefeed.run_forever() assert outpipe.get() == 'seems like we have an insert here' assert outpipe.qsize() == 0 -@patch.object(Connection, 'run', return_value=MOCK_CHANGEFEED_DATA) -def test_changefeed_delete(mock_run): +def test_changefeed_delete(mock_changefeed_bigchain): outpipe = Pipe() - changefeed = ChangeFeed('backlog', ChangeFeed.DELETE) + changefeed = ChangeFeed('backlog', ChangeFeed.DELETE, bigchain=mock_changefeed_bigchain) changefeed.outqueue = outpipe changefeed.run_forever() assert outpipe.get() == 'seems like we have a delete here' assert outpipe.qsize() == 0 -@patch.object(Connection, 'run', return_value=MOCK_CHANGEFEED_DATA) -def test_changefeed_update(mock_run): +def test_changefeed_update(mock_changefeed_bigchain): outpipe = Pipe() - changefeed = ChangeFeed('backlog', ChangeFeed.UPDATE) + changefeed = ChangeFeed('backlog', ChangeFeed.UPDATE, bigchain=mock_changefeed_bigchain) changefeed.outqueue = outpipe changefeed.run_forever() assert outpipe.get() == 'seems like we have an update here' assert outpipe.qsize() == 0 -@patch.object(Connection, 'run', return_value=MOCK_CHANGEFEED_DATA) -def test_changefeed_multiple_operations(mock_run): +def test_changefeed_multiple_operations(mock_changefeed_bigchain): outpipe = Pipe() - changefeed = ChangeFeed('backlog', ChangeFeed.INSERT | ChangeFeed.UPDATE) + changefeed = ChangeFeed('backlog', + ChangeFeed.INSERT | ChangeFeed.UPDATE, + bigchain=mock_changefeed_bigchain) changefeed.outqueue = outpipe changefeed.run_forever() assert outpipe.get() == 'seems like we have an insert here' @@ -58,10 +69,12 @@ def test_changefeed_multiple_operations(mock_run): assert outpipe.qsize() == 0 -@patch.object(Connection, 'run', return_value=MOCK_CHANGEFEED_DATA) -def test_changefeed_prefeed(mock_run): +def test_changefeed_prefeed(mock_changefeed_bigchain): outpipe = Pipe() - changefeed = ChangeFeed('backlog', ChangeFeed.INSERT, prefeed=[1, 2, 3]) + changefeed = ChangeFeed('backlog', + ChangeFeed.INSERT, + prefeed=[1, 2, 3], + bigchain=mock_changefeed_bigchain) changefeed.outqueue = outpipe changefeed.run_forever() assert outpipe.qsize() == 4