Merge remote-tracking branch 'origin/event-handler-tests' into events-api-first-cut

This commit is contained in:
vrde 2017-04-07 15:17:29 +02:00
commit 709eced0d3
No known key found for this signature in database
GPG Key ID: 6581C7C39B3D397D
3 changed files with 45 additions and 14 deletions

View File

@ -1,14 +0,0 @@
import multiprocessing as mp
from bigchaindb.events import EventHandler
def consume_events(events_queue):
event_handler = EventHandler(events_queue)
while True:
event = event_handler.get_event()
print('Event type: {} Event data: {}'.format(event.type, event.data))
def events_consumer(events_queue):
return mp.Process(target=consume_events, args=(events_queue,))

View File

@ -199,3 +199,27 @@ def test_full_pipeline(b, user_pk):
tx_from_block = set([tx.id for tx in invalid_block.transactions])
tx_from_backlog = set([tx['id'] for tx in list(query.get_stale_transactions(b.connection, 0))])
assert tx_from_block == tx_from_backlog
def test_handle_block_events():
from bigchaindb.events import setup_events_queue, EventTypes
events_queue = setup_events_queue()
e = election.Election(events_queue=events_queue)
block_id = 'a' * 64
assert events_queue.qsize() == 0
# no event should be emited in case a block is undecided
e.handle_block_events({'status': Bigchain.BLOCK_UNDECIDED}, block_id)
assert events_queue.qsize() == 0
# put an invalid block event in the queue
e.handle_block_events({'status': Bigchain.BLOCK_INVALID}, block_id)
event = e.event_handler.get_event()
assert event.type == EventTypes.BLOCK_INVALID
# put an valid block event in the queue
e.handle_block_events({'status': Bigchain.BLOCK_VALID}, block_id)
event = e.event_handler.get_event()
assert event.type == EventTypes.BLOCK_VALID

21
tests/test_events.py Normal file
View File

@ -0,0 +1,21 @@
def tests_event_handler():
from bigchaindb.events import (EventTypes, Event, EventHandler,
setup_events_queue)
# create and event
event_data = {'msg': 'some data'}
event = Event(EventTypes.BLOCK_VALID, event_data)
# create the events queue
events_queue = setup_events_queue()
# create event handler
event_handler = EventHandler(events_queue)
# push and event to the queue
event_handler.put_event(event)
# get the event from the queue
event_from_queue = event_handler.get_event()
assert event_from_queue.type == event.type
assert event_from_queue.data == event.data