示例#1
0
def add_mail_man(request):
    mail = request.POST['email']
    lead_id = request.POST['id']
    name_zone = RawLeads.objects.get(id=lead_id).name_zone

    # RawLeads.objects.filter(name_zone=name_zone).update(mail=mail)
    rls = RawLeads.objects.filter(name_zone=name_zone)
    for rl in rls:
        mail = mail.replace('RegistrantEmail:', '')
        rl.mail = mail
        rl.save()

    if Emails.objects.filter(name_zone=name_zone).exists():
        # Emails.objects.filter(name_zone=name_zone).update(email=mail)
        ems = Emails.objects.filter(name_zone=name_zone)
        for em in ems:
            em.email = mail
            em.save()
    else:
        new = Emails(name_zone=name_zone, email=mail)
        new.save()

    ids = map(attrgetter('id'), RawLeads.objects.filter(name_zone=name_zone))
    response = {
        'ids': ids,
    }
    return HttpResponse(json.dumps(response), content_type="application/json")
示例#2
0
 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)
示例#3
0
 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)
示例#4
0
    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)
示例#5
0
    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)
示例#6
0
    def testAccountNotification(self):
        """
        Test account notification command.
        """
        invoice = Invoice.objects.all().order_by('?')[0]

        mail = 'Received: from pokus.cz (unknown [192.168.1.201]) \
 by ubuntu (Postfix) with ESMTP id 38FB344053    \
 for <*****@*****.**>; Sat,  2 Feb 2013 17:57:07 +0100 (CET)   \
 P=F8=EDjem na kont=EC: 2400260986 =C8=E1stka: %i,00 VS: %i\
 Zpr=E1va p=F8=EDjemci: =20 Aktu=E1ln=ED z=F9statek: 20 144,82\
 Proti=FA=E8et: 321-2500109888/2010 SS:=12345 KS: 0%i'

        baseArgs = ('*****@*****.**', '*****@*****.**')
        i = Invoice.objects.get(id=invoice.id)

        # test wrong direction
        outmail = mail.replace('P=F8=EDjem na kont=EC', 'vydaj')
        args = baseArgs + (
            outmail % (invoice.totalPrice(), invoice.id, 117),
        )
        call_command('accountNotification', *args, v=117)
        assert i.paid == False
        try:
            BadIncommingTransfer.objects.get(typee='l', invoice=i)
            raise AssertionError('BadIncommingTransfer generated on OUT dir')
        except BadIncommingTransfer.DoesNotExist:
            pass

        args = baseArgs + (
            mail % (invoice.totalPrice() - 4, invoice.id, 117),
        )
        call_command('accountNotification', *args, v=3)

        assert i.paid == False
        try:
            BadIncommingTransfer.objects.get(typee='l', invoice=i)
        except BadIncommingTransfer.DoesNotExist:
            raise AssertionError('BadIncommingTransfer not exists')

        args = baseArgs + (
            mail % (invoice.totalPrice() + 4, invoice.id, 117),
        )
        call_command('accountNotification', *args)

        i = Invoice.objects.get(id=invoice.id)
        assert i.paid == False
        try:
            BadIncommingTransfer.objects.get(typee='m', invoice=i)
        except BadIncommingTransfer.DoesNotExist:
            raise AssertionError('BadIncommingTransfer not exists')

        args = baseArgs + (
            mail % (invoice.totalPrice(), invoice.id, 117),
        )
        call_command('accountNotification', *args)

        i = Invoice.objects.get(id=invoice.id)
        assert i.paid == True

        # bad const symbol
        args = baseArgs + (
            mail % (invoice.totalPrice(), invoice.id, 1117),
        )
        call_command('accountNotification', *args)

        try:
            BadIncommingTransfer.objects.get(typee='u')
        except BadIncommingTransfer.DoesNotExist:
            errmess = 'BadIncommingTransfer (bad const symbol) not exists'
            raise AssertionError(errmess)