mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
Merge remote-tracking branch 'origin/event-handler-tests' into events-api-first-cut
This commit is contained in:
commit
709eced0d3
@ -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,))
|
@ -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
21
tests/test_events.py
Normal 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
|
Loading…
x
Reference in New Issue
Block a user