added tests for the events

This commit is contained in:
Rodolphe Marques 2017-04-07 15:02:49 +02:00
parent d260e16f11
commit da29bbc605
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