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': '******'")
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': {}})