def test_email_is_created_from_attrs(): email = Email.construct_incoming_email(**email_1) email_id = email_service.save_or_update(email).id email_aggregate = Email.objects.get(pk=email_id) assert 1 == Email.objects.count()
def test_email_model_sets_date(): some_date = timezone.now() datetime_parser = MagicMock() datetime_parser.get_datetime = MagicMock(return_value=some_date) email = Email.construct_incoming_email(_datetime_parser=datetime_parser, **email_1) assert email.sent_date == some_date
def email_web_hook(request): if request.GET.get('token') != settings.EXTERNAL_API_TOKEN and not settings.DEBUG: return HttpResponseForbidden() else: if not email_service.is_spam(**dict(request.POST.items())): try: email = Email.construct_incoming_email(**dict(request.POST.items())) email_service.create_incoming_mail(email) except (EmailParseError, IntegrityError): logger.info('ignoring invalid email') except Exception: logger.exception('error accepting email') return HttpResponseServerError() else: logger.info('spam detected') return HttpResponse(status=200)
def test_email_model_sets_message_id(): email = Email.construct_incoming_email(**email_1) assert email.message_id == '<11471247.33986.1361999987364.JavaMail.root@vms170015>'
def test_email_model_corrects_attachment(): email_dict = dict(email_1, **{'attachments': 1}) Email.construct_incoming_email(**email_dict)
def test_email_model_corrects_from_keyword(): from_address = '*****@*****.**' email = Email.construct_incoming_email(**dict(email_1, **{'from': from_address})) assert email.from_address == from_address
def test_email_model_sets_direction(): email = Email.construct_incoming_email(**email_1) assert email.email_direction == Email.email_direction_incoming
def test_email_model_sets_reply_message_id(): reply_message = '<*****@*****.**>' in_reply_to = 'In-Reply-To: %s\r\n' % reply_message email = Email.construct_incoming_email(**dict(email_1, **{'headers': email_1['headers'] + in_reply_to})) assert email.in_reply_to_message_id == reply_message
def test_email_fails_with_high_spam(): with pytest.raises(ValidationError): email = Email.construct_incoming_email(**dict(email_1, **{'spam_score': 10})) email_id = email_service.save_or_update(email).id