Fix changefeed tests that were mocking the wrong thing

This commit is contained in:
Brett Sun 2016-12-06 16:05:17 +01:00 committed by Sylvain Bellemare
parent 27eaae01a7
commit ae52e015ce

View File

@ -1,56 +1,67 @@
from unittest.mock import patch import pytest
from unittest.mock import Mock
from multipipes import Pipe from multipipes import Pipe
from bigchaindb import Bigchain
from bigchaindb.backend.connection import Connection from bigchaindb.backend.connection import Connection
from bigchaindb.pipelines.utils import ChangeFeed from bigchaindb.pipelines.utils import ChangeFeed
MOCK_CHANGEFEED_DATA = [{ @pytest.fixture
'new_val': 'seems like we have an insert here', def mock_changefeed_data():
'old_val': None, return [
}, { {
'new_val': None, 'new_val': 'seems like we have an insert here',
'old_val': 'seems like we have a delete here', 'old_val': None,
}, { }, {
'new_val': 'seems like we have an update here', 'new_val': None,
'old_val': 'seems like we have an update here', '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) @pytest.fixture
def test_changefeed_insert(mock_run): 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() outpipe = Pipe()
changefeed = ChangeFeed('backlog', ChangeFeed.INSERT) changefeed = ChangeFeed('backlog', ChangeFeed.INSERT, bigchain=mock_changefeed_bigchain)
changefeed.outqueue = outpipe changefeed.outqueue = outpipe
changefeed.run_forever() changefeed.run_forever()
assert outpipe.get() == 'seems like we have an insert here' assert outpipe.get() == 'seems like we have an insert here'
assert outpipe.qsize() == 0 assert outpipe.qsize() == 0
@patch.object(Connection, 'run', return_value=MOCK_CHANGEFEED_DATA) def test_changefeed_delete(mock_changefeed_bigchain):
def test_changefeed_delete(mock_run):
outpipe = Pipe() outpipe = Pipe()
changefeed = ChangeFeed('backlog', ChangeFeed.DELETE) changefeed = ChangeFeed('backlog', ChangeFeed.DELETE, bigchain=mock_changefeed_bigchain)
changefeed.outqueue = outpipe changefeed.outqueue = outpipe
changefeed.run_forever() changefeed.run_forever()
assert outpipe.get() == 'seems like we have a delete here' assert outpipe.get() == 'seems like we have a delete here'
assert outpipe.qsize() == 0 assert outpipe.qsize() == 0
@patch.object(Connection, 'run', return_value=MOCK_CHANGEFEED_DATA) def test_changefeed_update(mock_changefeed_bigchain):
def test_changefeed_update(mock_run):
outpipe = Pipe() outpipe = Pipe()
changefeed = ChangeFeed('backlog', ChangeFeed.UPDATE) changefeed = ChangeFeed('backlog', ChangeFeed.UPDATE, bigchain=mock_changefeed_bigchain)
changefeed.outqueue = outpipe changefeed.outqueue = outpipe
changefeed.run_forever() changefeed.run_forever()
assert outpipe.get() == 'seems like we have an update here' assert outpipe.get() == 'seems like we have an update here'
assert outpipe.qsize() == 0 assert outpipe.qsize() == 0
@patch.object(Connection, 'run', return_value=MOCK_CHANGEFEED_DATA) def test_changefeed_multiple_operations(mock_changefeed_bigchain):
def test_changefeed_multiple_operations(mock_run):
outpipe = Pipe() outpipe = Pipe()
changefeed = ChangeFeed('backlog', ChangeFeed.INSERT | ChangeFeed.UPDATE) changefeed = ChangeFeed('backlog',
ChangeFeed.INSERT | ChangeFeed.UPDATE,
bigchain=mock_changefeed_bigchain)
changefeed.outqueue = outpipe changefeed.outqueue = outpipe
changefeed.run_forever() changefeed.run_forever()
assert outpipe.get() == 'seems like we have an insert here' 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 assert outpipe.qsize() == 0
@patch.object(Connection, 'run', return_value=MOCK_CHANGEFEED_DATA) def test_changefeed_prefeed(mock_changefeed_bigchain):
def test_changefeed_prefeed(mock_run):
outpipe = Pipe() 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.outqueue = outpipe
changefeed.run_forever() changefeed.run_forever()
assert outpipe.qsize() == 4 assert outpipe.qsize() == 4