def test_trigger_event_with_unknown_name(self, mock_api_get_events):
     mock_api_get_events.return_value = {}
     settings.EMARSYS_EVENTS = {}
     event = trigger_event("test event", "*****@*****.**")
     self.assertIsNotNone(event)
     self.assertEqual(event.state, EventInstance.STATE_ERROR)
     self.assertEqual(event.result, "unknown event name: 'test event'")
 def test_trigger_event_with_nonmatching_data_args(self,
                                                   mock_api_get_events):
     mock_api_get_events.return_value = {}
     settings.EMARSYS_EVENTS = {
         'test event': {
             'extra_user': ("User", "auth.User"),
         },
     }
     event = trigger_event("test event", self.user.email,
                           data=dict(obj=self.user))
     self.assertIsNotNone(event)
     self.assertEqual(event.state, EventInstance.STATE_ERROR)
     self.assertEqual(event.result,
                      "expected data args ['extra_user'], got ['obj']")
 def test_trigger_event_with_bad_data_value(self, mock_api_get_events):
     mock_api_get_events.return_value = {}
     settings.EMARSYS_EVENTS = {
         'test event': {
             'extra_user': ("User", "auth.User"),
         },
     }
     event = trigger_event(
         "test event", self.user.email,
         data=dict(extra_user="******"))
     self.assertIsNotNone(event)
     self.assertEqual(event.state, EventInstance.STATE_ERROR)
     self.assertEqual(event.result,
                      "expected instance of 'auth.User' for "
                      "argument 'extra_user': '******'")
예제 #4
0
    def form_valid(self, form):
        recipient_email = form.cleaned_data.pop('recipient_email')

        event_instance = trigger_event(
            event_name=self.event.name,
            recipient_email=recipient_email,
            data=form.cleaned_data,
            manual=True)

        if event_instance.state != 'success':
            messages.error(self.request, event_instance.result)
        else:
            messages.success(self.request,
                             "Event '{}' wurde getriggert.".format(self.event))

        # redisplay form even if it was valid - this allows the user to easily
        # trigger the same event again for testing
        return super(EventTriggerView, self).form_invalid(form)
    def test_trigger_automatic_event(self, mock_api_get_events,
                                     mock_api_trigger_event):
        settings.EMARSYS_EVENTS = {
            'test event': {
                'extra_user': ("User", "auth.User"),
            },
        }

        TEST_EVENT_ID = 1
        mock_api_get_events.return_value = {'test event': TEST_EVENT_ID}

        event = trigger_event("test event", self.user.email,
                              data=dict(extra_user=self.user))
        self.assertIsNotNone(event)
        self.assertEqual(event.state, EventInstance.STATE_SUCCESS)
        self.assertEqual(event.source, EventInstance.SOURCE_AUTOMATIC)
        self.assertEqual(event.emarsys_id, TEST_EVENT_ID)

        mock_api_get_events.assert_called_with()
        mock_api_trigger_event.assert_called_with(
            TEST_EVENT_ID, self.user.email, {'global': {}})