def test_update_config(monkeypatch): import bigchaindb from bigchaindb import config_utils file_config = { 'database': { 'host': 'test-host', 'name': 'bigchaindb', 'port': 28015 } } monkeypatch.setattr('bigchaindb.config_utils.file_config', lambda *args, **kwargs: file_config) config_utils.autoconfigure(config=file_config) # update configuration, retaining previous changes config_utils.update_config( {'database': { 'port': 28016, 'name': 'bigchaindb_other' }}) assert bigchaindb.config['database']['host'] == 'test-host' assert bigchaindb.config['database']['name'] == 'bigchaindb_other' assert bigchaindb.config['database']['port'] == 28016
def test_full_pipeline(monkeypatch, user_pk): from bigchaindb.backend import query from bigchaindb.models import Transaction CONFIG = { 'keyring': ['aaa', 'bbb'], 'backlog_reassign_delay': 0.01 } config_utils.update_config(CONFIG) b = Bigchain() original_txs = {} original_txc = [] monkeypatch.setattr('time.time', lambda: 1) for i in range(100): tx = Transaction.create([b.me], [([user_pk], 1)], metadata={'msg': random.random()}) tx = tx.sign([b.me_private]) original_txc.append(tx.to_dict()) b.write_transaction(tx) original_txs = list(query.get_stale_transactions(b.connection, 0)) original_txs = {tx['id']: tx for tx in original_txs} assert len(original_txs) == 100 monkeypatch.undo() inpipe = Pipe() # Each time the StaleTransactionMonitor pipeline runs, it reassigns # all eligible transactions. Passing this inpipe prevents that from # taking place more than once. inpipe.put(()) outpipe = Pipe() pipeline = stale.create_pipeline(backlog_reassign_delay=1, timeout=1) pipeline.setup(indata=inpipe, outdata=outpipe) pipeline.start() # to terminate for _ in range(100): outpipe.get() pipeline.terminate() assert len(list(query.get_stale_transactions(b.connection, 0))) == 100 reassigned_txs = list(query.get_stale_transactions(b.connection, 0)) # check that every assignment timestamp has increased, and every tx has a new assignee for reassigned_tx in reassigned_txs: assert reassigned_tx['assignment_timestamp'] > original_txs[reassigned_tx['id']]['assignment_timestamp'] assert reassigned_tx['assignee'] != original_txs[reassigned_tx['id']]['assignee']
def test_update_config(monkeypatch): import bigchaindb from bigchaindb import config_utils file_config = { 'database': {'host': 'test-host', 'name': 'bigchaindb', 'port': 28015} } monkeypatch.setattr('bigchaindb.config_utils.file_config', lambda *args, **kwargs: file_config) config_utils.autoconfigure(config=file_config) # update configuration, retaining previous changes config_utils.update_config({'database': {'port': 28016, 'name': 'bigchaindb_other'}}) assert bigchaindb.config['database']['host'] == 'test-host' assert bigchaindb.config['database']['name'] == 'bigchaindb_other' assert bigchaindb.config['database']['port'] == 28016