123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import unittest
- from celery import events
- class MockPublisher(object):
- def __init__(self, *args, **kwargs):
- self.sent = []
- def send(self, msg, *args, **kwargs):
- self.sent.append(msg)
- def close(self):
- pass
- def has_event(self, kind):
- for event in self.sent:
- if event["type"] == kind:
- return event
- return False
- class TestEvent(unittest.TestCase):
- def test_constructor(self):
- event = events.Event("world war II")
- self.assertEquals(event["type"], "world war II")
- self.assertTrue(event["timestamp"])
- class TestEventDispatcher(unittest.TestCase):
- def test_send(self):
- publisher = MockPublisher()
- eventer = events.EventDispatcher(object(), publisher=publisher)
- eventer.publisher = publisher
- eventer.enabled = True
- eventer.send("World War II", ended=True)
- self.assertTrue(publisher.has_event("World War II"))
- class TestEventReceiver(unittest.TestCase):
- def test_process(self):
- message = {"type": "world-war"}
- got_event = [False]
- def my_handler(event):
- got_event[0] = True
- r = events.EventReceiver(object(), handlers={
- "world-war": my_handler})
- r._receive(message, object())
- self.assertTrue(got_event[0])
- def test_catch_all_event(self):
- message = {"type": "world-war"}
- got_event = [False]
- def my_handler(event):
- got_event[0] = True
- r = events.EventReceiver(object())
- events.EventReceiver.handlers["*"] = my_handler
- try:
- r._receive(message, object())
- self.assertTrue(got_event[0])
- finally:
- events.EventReceiver.handlers = {}
|