diff --git a/bigchaindb/backend/localmongodb/query.py b/bigchaindb/backend/localmongodb/query.py index 246f51d7..b2537659 100644 --- a/bigchaindb/backend/localmongodb/query.py +++ b/bigchaindb/backend/localmongodb/query.py @@ -228,13 +228,17 @@ def delete_transactions(conn, txn_ids): @register_query(LocalMongoDBConnection) def store_unspent_outputs(conn, *unspent_outputs): - try: - return conn.run( - conn.collection('utxos') - .insert_many(unspent_outputs, ordered=False)) - except DuplicateKeyError: - # TODO log warning at least - pass + if unspent_outputs: + try: + return conn.run( + conn.collection('utxos').insert_many( + unspent_outputs, + ordered=False, + ) + ) + except DuplicateKeyError: + # TODO log warning at least + pass @register_query(LocalMongoDBConnection) diff --git a/tests/backend/localmongodb/test_queries.py b/tests/backend/localmongodb/test_queries.py index 906fd46b..8028d5f4 100644 --- a/tests/backend/localmongodb/test_queries.py +++ b/tests/backend/localmongodb/test_queries.py @@ -240,6 +240,13 @@ def test_delete_unspent_outputs(db_context, utxoset): {'transaction_id': 'a', 'output_index': 1}).count() == 1 +def test_store_zero_unspent_output(db_context, utxo_collection): + from bigchaindb.backend import query + res = query.store_unspent_outputs(db_context.conn) + assert res is None + assert utxo_collection.count() == 0 + + def test_store_one_unspent_output(db_context, unspent_output_1, utxo_collection): from bigchaindb.backend import query