Esempio n. 1
0
    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),
        )
Esempio n. 2
0
    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),
        )
Esempio n. 3
0
    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),
        )
Esempio n. 4
0
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}")