def test_spam(self): count_messages = len(self.req.messages) name, domain = self.req.secret_address.split('@') recipient = self.secret_address with open(p("test_mail_01.txt"), 'rb') as f: mail = f.read().decode('ascii').replace('*****@*****.**', '*****@*****.**') process_mail.delay(mail.encode('ascii')) self.assertEqual(count_messages, FoiMessage.objects.filter(request=self.req).count()) dms = DeferredMessage.objects.filter(recipient=recipient, spam=True) self.assertEqual(len(dms), 1)
def test_spam(self): count_messages = len(self.req.messages) name, domain = self.req.secret_address.split('@') recipient = '*****@*****.**' with open(p("test_mail_01.txt"), 'rb') as f: mail = f.read().decode('ascii').replace('*****@*****.**', '*****@*****.**') process_mail.delay(mail.encode('ascii')) self.assertEqual(count_messages, FoiMessage.objects.filter(request=self.req).count()) dms = DeferredMessage.objects.filter(recipient=recipient, spam=True) self.assertEqual(len(dms), 1)
def test_double_deferred(self): count_messages = len(self.req.messages) name, domain = self.req.secret_address.split('@') bad_mail = '@'.join((name + 'x', domain)) with open(p("test_mail_01.txt"), 'rb') as f: mail = f.read().decode('ascii') mail = mail.replace(self.secret_address, bad_mail) self.assertEqual(DeferredMessage.objects.count(), 0) # there is one deferredmessage matching, so deliver to associated request DeferredMessage.objects.create(recipient=bad_mail, request=self.req) process_mail.delay(mail.encode('ascii')) self.assertEqual(count_messages + 1, FoiMessage.objects.filter(request=self.req).count()) self.assertEqual(DeferredMessage.objects.count(), 1) # there is more than one deferredmessage matching # So delivery is ambiguous, create deferred message instead DeferredMessage.objects.create(recipient=bad_mail, request=self.other_req) process_mail.delay(mail.encode('ascii')) self.assertEqual(count_messages + 1, FoiMessage.objects.filter(request=self.req).count()) self.assertEqual(DeferredMessage.objects.count(), 3)
def test_double_deferred(self): count_messages = len(self.req.get_messages()) name, domain = self.req.secret_address.split('@') bad_mail = '@'.join((name + 'x', domain)) with open(p("test_mail_01.txt"), 'rb') as f: mail = f.read().decode('ascii') mail = mail.replace(self.secret_address, bad_mail) self.assertEqual(DeferredMessage.objects.count(), 0) # there is one deferredmessage matching, so deliver to associated request DeferredMessage.objects.create(recipient=bad_mail, request=self.req) process_mail.delay(mail.encode('ascii')) self.assertEqual(count_messages + 1, FoiMessage.objects.filter(request=self.req).count()) self.assertEqual(DeferredMessage.objects.count(), 1) # there is more than one deferredmessage matching # So delivery is ambiguous, create deferred message instead DeferredMessage.objects.create(recipient=bad_mail, request=self.other_req) process_mail.delay(mail.encode('ascii')) self.assertEqual(count_messages + 1, FoiMessage.objects.filter(request=self.req).count()) self.assertEqual(DeferredMessage.objects.count(), 3)
def test_deferred(self): count_messages = len(self.req.messages) name, domain = self.req.secret_address.split('@') bad_mail = '@'.join((name + 'x', domain)) with open(p("test_mail_01.txt"), 'rb') as f: mail = f.read().decode('ascii') mail = mail.replace(self.secret_address, bad_mail) process_mail.delay(mail.encode('ascii')) self.assertEqual(count_messages, FoiMessage.objects.filter(request=self.req).count()) dms = DeferredMessage.objects.filter(recipient=bad_mail) self.assertEqual(len(dms), 1) dm = dms[0] dm.redeliver(self.req) req = FoiRequest.objects.get(id=self.req.id) self.assertEqual(len(req.messages), count_messages + 1) dm = DeferredMessage.objects.get(id=dm.id) self.assertEqual(dm.request, req)
def test_deferred(self): count_messages = len(self.req.messages) name, domain = self.req.secret_address.split('@') bad_mail = '@'.join((name + 'x', domain)) with open(p("test_mail_01.txt"), 'rb') as f: mail = f.read().decode('ascii') mail = mail.replace(u'*****@*****.**', bad_mail) process_mail.delay(mail.encode('ascii')) self.assertEqual(count_messages, FoiMessage.objects.filter(request=self.req).count()) dms = DeferredMessage.objects.filter(recipient=bad_mail) self.assertEqual(len(dms), 1) dm = dms[0] dm.redeliver(self.req) req = FoiRequest.objects.get(id=self.req.id) self.assertEqual(len(req.messages), count_messages + 1) dm = DeferredMessage.objects.get(id=dm.id) self.assertEqual(dm.request, req)