misc: fix missing variable in bounce processing

This commit is contained in:
Frédéric Péters 2015-09-19 16:29:04 +02:00
parent 01027d0887
commit 6e7f88400f
2 changed files with 4 additions and 11 deletions

View File

@ -3,16 +3,10 @@ import StringIO
from wcs.ctl.process_bounce import CmdProcessBounce
def test_garbage():
msg = StringIO.StringIO('garbage')
addrs = CmdProcessBounce.get_bounce_addrs(msg)
assert addrs is None
def test_normal_email():
msg = email.message_from_string('test')
msg['From'] = 'bar@example.net'
msg['To'] = 'foo@example.net'
msg = StringIO.StringIO(msg.as_string())
addrs = CmdProcessBounce.get_bounce_addrs(msg)
assert addrs is None
@ -24,6 +18,5 @@ def test_bounce_email():
# this is how exim adds failed recipients in its outgoing bounce emails
msg['x-failed-recipients'] = 'baz@example.net'
msg = StringIO.StringIO(msg.as_string())
addrs = CmdProcessBounce.get_bounce_addrs(msg)
assert addrs == ['baz@example.net']

View File

@ -42,7 +42,9 @@ class CmdProcessBounce(Command):
return
try:
addrs = self.get_bounce_addrs(sys.stdin)
parser = email.Parser.Parser()
msg = parser.parse(sys.stdin)
addrs = self.get_bounce_addrs(msg)
if addrs is None:
# not a bounce
return
@ -81,11 +83,9 @@ class CmdProcessBounce(Command):
sys.exit(1)
@classmethod
def get_bounce_addrs(cls, message_fd):
parser = email.Parser.Parser()
def get_bounce_addrs(cls, msg):
bouncers_dir = os.path.join(os.path.dirname(__file__), 'Bouncers')
sys.path.append(bouncers_dir)
msg = parser.parse(message_fd)
for modname in BouncerAPI.BOUNCE_PIPELINE:
__import__(modname)
addrs = sys.modules[modname].process(msg)