Exemplo n.º 1
0
    def test_webhook_send_signal(self):
        self.signal_received_count = 0
        test_event = {"event": "send", "msg": {}}

        def my_callback(sender, event_type, data, **kwargs):
            self.signal_received_count += 1
            self.assertEqual(event_type, 'send')
            self.assertEqual(data, test_event)

        try:
            webhook_event.connect(my_callback, weak=False)  # local callback func, so don't use weak ref
            response = self.client.post('/webhook/?secret=abc123', {
                'mandrill_events': json.dumps([test_event])
            })
        finally:
            webhook_event.disconnect(my_callback)

        self.assertEqual(response.status_code, 200)
        self.assertEqual(self.signal_received_count, 1)
Exemplo n.º 2
0
    def test_webhook_send_signal(self):
        self.signal_received_count = 0
        test_event = {"event": "send", "msg": {}}

        def my_callback(sender, event_type, data, **kwargs):
            self.signal_received_count += 1
            self.assertEqual(event_type, 'send')
            self.assertEqual(data, test_event)

        try:
            webhook_event.connect(
                my_callback,
                weak=False)  # local callback func, so don't use weak ref
            response = self.client.post(
                '/webhook/?secret=abc123',
                {'mandrill_events': json.dumps([test_event])})
        finally:
            webhook_event.disconnect(my_callback)

        self.assertEqual(response.status_code, 200)
        self.assertEqual(self.signal_received_count, 1)
Exemplo n.º 3
0
    def test_webhook_sync_event(self):
        # Mandrill sync events use a different format from other events
        # https://mandrill.zendesk.com/hc/en-us/articles/205583297-Sync-Event-Webhook-format
        self.signal_received_count = 0
        test_event = {"type": "whitelist", "action": "add"}

        def my_callback(sender, event_type, data, **kwargs):
            self.signal_received_count += 1
            self.assertEqual(event_type, 'whitelist_add')  # synthesized event_type
            self.assertEqual(data, test_event)

        try:
            webhook_event.connect(my_callback, weak=False)  # local callback func, so don't use weak ref
            response = self.client.post('/webhook/?secret=abc123', {
                'mandrill_events': json.dumps([test_event])
            })
        finally:
            webhook_event.disconnect(my_callback)

        self.assertEqual(response.status_code, 200)
        self.assertEqual(self.signal_received_count, 1)
Exemplo n.º 4
0
    def test_webhook_sync_event(self):
        # Mandrill sync events use a different format from other events
        # https://mandrill.zendesk.com/hc/en-us/articles/205583297-Sync-Event-Webhook-format
        self.signal_received_count = 0
        test_event = {"type": "whitelist", "action": "add"}

        def my_callback(sender, event_type, data, **kwargs):
            self.signal_received_count += 1
            self.assertEqual(event_type,
                             'whitelist_add')  # synthesized event_type
            self.assertEqual(data, test_event)

        try:
            webhook_event.connect(
                my_callback,
                weak=False)  # local callback func, so don't use weak ref
            response = self.client.post(
                '/webhook/?secret=abc123',
                {'mandrill_events': json.dumps([test_event])})
        finally:
            webhook_event.disconnect(my_callback)

        self.assertEqual(response.status_code, 200)
        self.assertEqual(self.signal_received_count, 1)