Пример #1
0
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()
Пример #2
0
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
Пример #3
0
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)
Пример #4
0
def test_email_model_sets_message_id():
  email = Email.construct_incoming_email(**email_1)
  assert email.message_id == '<11471247.33986.1361999987364.JavaMail.root@vms170015>'
Пример #5
0
def test_email_model_corrects_attachment():
  email_dict = dict(email_1, **{'attachments': 1})
  Email.construct_incoming_email(**email_dict)
Пример #6
0
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
Пример #7
0
def test_email_model_sets_direction():
  email = Email.construct_incoming_email(**email_1)
  assert email.email_direction == Email.email_direction_incoming
Пример #8
0
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
Пример #9
0
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