def post(self, request, format=None, **kwargs): form = SendAdhocRecipientsForm(request.data, user=request.user) if form.is_valid(): for recipient in form.cleaned_data['recipients']: # send and save message recipient.send_message( content=form.cleaned_data['content'], eta=form.cleaned_data['scheduled_time'], sent_by=str(self.request.user) ) if form.cleaned_data['scheduled_time'] is None: msg_txt = "Sending \"{0}\"...\nPlease check the logs for verification...".format( form.cleaned_data['content'] ) msg = { 'type_': 'info', 'text': msg_txt, } else: msg = { 'type_': 'info', 'text': "'{0}' has been successfully queued.".format(form.cleaned_data['content']) } return Response({'messages': [msg], 'errors': {}}, status=status.HTTP_201_CREATED) return Response({'messages': [], 'errors': form.errors}, status=status.HTTP_400_BAD_REQUEST)
def test_missing_person(self): """Test no person supplied""" form_data = { 'content': 'This is a message', } form = SendAdhocRecipientsForm(data=form_data) assert form.is_valid() is False
def test_missing_content(self, recipients): """Test no content supplied""" form_data = { 'recipient': '1', } form = SendAdhocRecipientsForm(data=form_data) assert form.is_valid() is False
def post(self, request, format=None, **kwargs): form = SendAdhocRecipientsForm(request.data, user=request.user) if form.is_valid(): for recipient in form.cleaned_data["recipients"]: # send and save message recipient.send_message( content=form.cleaned_data["content"], eta=form.cleaned_data["scheduled_time"], sent_by=str(self.request.user), ) if form.cleaned_data["scheduled_time"] is None: msg_txt = 'Sending "{0}"...\nPlease check the logs for verification...'.format( form.cleaned_data["content"]) msg = {"type_": "info", "text": msg_txt} else: msg = { "type_": "info", "text": "'{0}' has been successfully queued.".format( form.cleaned_data["content"]), } return Response({ "messages": [msg], "errors": {} }, status=status.HTTP_201_CREATED) return Response({ "messages": [], "errors": form.errors }, status=status.HTTP_400_BAD_REQUEST)
def test_missing_person(self): """Test no person supplied""" form_data = { 'content': 'This is a message', } form = SendAdhocRecipientsForm(data=form_data, user=UserMock()) assert form.is_valid() is False
def post(self, request, *args, **kwargs): form = SendAdhocRecipientsForm(request.POST, ('recipients',)) if form.is_valid(): for recipient in form.cleaned_data['recipients']: # send and save message recipient.send_message(content=form.cleaned_data['content'], eta=form.cleaned_data['scheduled_time'], sent_by=str(request.user)) if form.cleaned_data['scheduled_time'] is None: messages.info( request, "Sending \"{0}\"...\nPlease check the logs for verification...".format( form.cleaned_data['content'] ) ) else: messages.info( request, "'{0}' has been successfully queued.".format( form.cleaned_data['content'] ) ) return redirect(reverse("send_adhoc")) else: return render(request, "apostello/send_adhoc.html", {'form': form})
def post(self, request, format=None, **kwargs): form = SendAdhocRecipientsForm(request.data, user=request.user) if form.is_valid(): for recipient in form.cleaned_data['recipients']: # send and save message recipient.send_message(content=form.cleaned_data['content'], eta=form.cleaned_data['scheduled_time'], sent_by=str(self.request.user)) if form.cleaned_data['scheduled_time'] is None: msg_txt = "Sending \"{0}\"...\nPlease check the logs for verification...".format( form.cleaned_data['content']) msg = { 'type_': 'info', 'text': msg_txt, } else: msg = { 'type_': 'info', 'text': "'{0}' has been successfully queued.".format( form.cleaned_data['content']) } return Response({ 'messages': [msg], 'errors': {} }, status=status.HTTP_201_CREATED) return Response({ 'messages': [], 'errors': form.errors }, status=status.HTTP_400_BAD_REQUEST)
def test_disabled_user_limit(self, form_content, form_recipients, recipients): """Tests the SMS cost limit check is disabled.""" form_recipients = [recipients[x].pk for x in form_recipients] form_data = {"content": form_content, "recipients": form_recipients} user = UserMock() user.profile.message_cost_limit = 0 form = SendAdhocRecipientsForm(data=form_data, user=user) assert form.is_valid()
def test_empty_content(self, recipients): """Test empty message""" form_data = { 'content': '', 'recipient': '1', } form = SendAdhocRecipientsForm(data=form_data) assert form.is_valid() is False
def test_correct_single(self, form_content, form_recipients, recipients): """Tests valid form inputs""" form_data = { 'content': form_content, 'recipients': form_recipients, } form = SendAdhocRecipientsForm(data=form_data) assert form.is_valid()
def test_illegal_chars(self, recipients): """Test illegal (non-GSM) characters""" form_data = { 'content': u"This should not pass…", 'recipient': '1', } form = SendAdhocRecipientsForm(data=form_data) assert form.is_valid() is False
def test_empty_person(self): """Test no recipients""" form_data = { 'content': 'Hi!', 'recipient': '', } form = SendAdhocRecipientsForm(data=form_data) assert form.is_valid() is False
def test_max_length(self, recipients): """Test message far too long""" form_data = { 'content': 50 * "test", 'recipient': '1', } form = SendAdhocRecipientsForm(data=form_data) assert form.is_valid() is False
def test_fails_user_limit(self, form_content, form_recipients, recipients): """Tests the SMS cost limit check.""" form_recipients = [recipients[x].pk for x in form_recipients] form_data = {"content": form_content, "recipients": form_recipients} user = UserMock() user.profile.message_cost_limit = 0.01 form = SendAdhocRecipientsForm(data=form_data, user=user) assert not form.is_valid() assert "cost no more than ${0}".format(user.profile.message_cost_limit) in "\n".join(form.errors["__all__"])
def test_correct_single(self, form_content, form_recipients, recipients): """Tests valid form inputs""" form_recipients = [recipients[x].pk for x in form_recipients] form_data = { 'content': form_content, 'recipients': form_recipients, } form = SendAdhocRecipientsForm(data=form_data, user=UserMock()) assert form.is_valid()
def test_disabled_user_limit( self, form_content, form_recipients, recipients ): """Tests the SMS cost limit check is disabled.""" form_recipients = [recipients[x].pk for x in form_recipients] form_data = {'content': form_content, 'recipients': form_recipients, } user = UserMock() user.profile.message_cost_limit = 0 form = SendAdhocRecipientsForm(data=form_data, user=user) assert form.is_valid()
def test_fails_user_limit(self, form_content, form_recipients, recipients): """Tests the SMS cost limit check.""" form_recipients = [recipients[x].pk for x in form_recipients] form_data = { 'content': form_content, 'recipients': form_recipients, } user = UserMock() user.profile.message_cost_limit = 0.01 form = SendAdhocRecipientsForm(data=form_data, user=user) assert not form.is_valid() assert 'cost no more than ${0}'.format(user.profile.message_cost_limit) in '\n'.join(form.errors['__all__'])
def post(self, request, *args, **kwargs): """Handle sending form submission.""" context = self.context form = SendAdhocRecipientsForm(request.POST, ('recipients', )) if form.is_valid(): for recipient in form.cleaned_data['recipients']: # send and save message recipient.send_message(content=form.cleaned_data['content'], eta=form.cleaned_data['scheduled_time'], sent_by=str(request.user)) if form.cleaned_data['scheduled_time'] is None: messages.info( request, "Sending \"{0}\"...\nPlease check the logs for verification..." .format(form.cleaned_data['content'])) else: messages.info( request, "'{0}' has been successfully queued.".format( form.cleaned_data['content'])) return redirect(reverse("send_adhoc")) else: context['form'] = form return render(request, "apostello/send_adhoc.html", context)
def test_correct_single(self, form_content, form_recipients, recipients): """Tests valid form inputs""" form_data = {'content': form_content, 'recipients': form_recipients, } form = SendAdhocRecipientsForm(data=form_data) assert form.is_valid()
def test_empty_person(self): """Test no recipients""" form_data = {"content": "Hi!", "recipient": ""} form = SendAdhocRecipientsForm(data=form_data) assert form.is_valid() is False
def test_missing_person(self): """Test no person supplied""" form_data = {"content": "This is a message"} form = SendAdhocRecipientsForm(data=form_data, user=UserMock()) assert form.is_valid() is False
def test_empty_content(self, recipients): """Test empty message""" form_data = {"content": "", "recipient": "1"} form = SendAdhocRecipientsForm(data=form_data) assert form.is_valid() is False