def test_firing_event_notifies_all_subscribers_different_events( self, req_mock): new_event = Event(event_id="HELLO", retry_policy='{"max_retries": 3}') new_event.save() new_subscriber = Subscription(webhook="http://gamal.com", event=new_event) new_subscriber.save() new_subscriber = Subscription(webhook="http://ahmed.com", event=new_event) new_subscriber.save() new_event2 = Event(event_id="BORED", retry_policy='{"max_retries": 10}') new_event2.save() new_subscriber2 = Subscription(webhook="http://wtf.com", event=new_event2) new_subscriber2.save() Event.dispatch("HELLO", {"foo": "bar"}) self.assertEqual(req_mock.call_count, 2) req_mock.assert_called_with( ( new_subscriber.webhook, new_event.event_id, { "foo": "bar" }, {}, ), retry=True, retry_policy=json.loads(new_event.retry_policy), )
def test_firing_event_notifies_subscribers_with_headers(self, req_mock): new_event = Event(event_id="HELLO", retry_policy='{"max_retries": 3}') new_event.save() new_subscriber = Subscription(webhook="http://gamal.com", event=new_event, headers={'test': 'headers'}) new_subscriber.save() Event.dispatch("HELLO", {"foo": "bar"}) self.assertEqual(req_mock.call_count, 1) req_mock.assert_called_with( ( new_subscriber.webhook, new_event.event_id, { "foo": "bar" }, { 'test': 'headers' }, ), retry=True, retry_policy=json.loads(new_event.retry_policy), )
def test_firing_event_notifies_subscribers_no_cloud_function( self, req_mock, token_mock): new_event = Event(event_id="HELLO", retry_policy='{"max_retries": 3}') new_event.save() new_subscriber = Subscription(webhook="http://gamal.com", event=new_event, headers={'test': 'test'}, is_cloud_function=False, client_email='test', token_uri='www.test.uri', private_key='private') new_subscriber.save() Event.dispatch("HELLO", {"foo": "bar"}) self.assertEqual(req_mock.call_count, 1) self.assertEqual(token_mock.call_count, 0) req_mock.assert_called_with( ( new_subscriber.webhook, new_event.event_id, { "foo": "bar" }, { 'test': 'test', }, ), retry=True, retry_policy=json.loads(new_event.retry_policy), )
def fire_action_pubsub(event, payload): logger.info(f"Firing event {event} payload {payload}") try: eventful_Event.dispatch(event, payload) except Exception as e: logger.error(f"Error {e} while dispatching event {event} with payload {payload}")