コード例 #1
0
def get_new_blocks_feed(conn, start_block_id):
    namespace = conn.dbname + '.bigchain'
    match = {'o.id': start_block_id, 'op': 'i', 'ns': namespace}
    # Neccesary to find in descending order since tests may write same block id several times
    query = conn.query().local.oplog.rs.find(match).sort('$natural', -1).next()['ts']
    last_ts = conn.run(query)
    feed = run_changefeed(conn, 'bigchain', last_ts)
    return (evt['o'] for evt in feed if evt['op'] == 'i')
コード例 #2
0
ファイル: query.py プロジェクト: cgwyx/bigchaindb
def get_new_blocks_feed(conn, start_block_id):
    namespace = conn.dbname + '.bigchain'
    match = {'o.id': start_block_id, 'op': 'i', 'ns': namespace}
    # Neccesary to find in descending order since tests may write same block id several times
    query = conn.query().local.oplog.rs.find(match).sort('$natural', -1).next()['ts']
    last_ts = conn.run(query)
    feed = run_changefeed(conn, 'bigchain', last_ts)
    return (evt['o'] for evt in feed if evt['op'] == 'i')
コード例 #3
0
def test_connection_failure():
    from bigchaindb.backend.exceptions import ConnectionError
    from bigchaindb.backend.mongodb.changefeed import run_changefeed

    conn = mock.MagicMock()
    conn.run.side_effect = [ConnectionError(), RuntimeError()]
    changefeed = run_changefeed(conn, 'backlog', -1)
    with pytest.raises(RuntimeError):
        for record in changefeed:
            assert False, 'Shouldn\'t get here'