Fix StringIO

This commit is contained in:
Stuart D. Gathman
2016-07-26 10:06:56 -04:00
parent 999a446484
commit ea84943f29
6 changed files with 28 additions and 14 deletions
+6 -3
View File
@@ -3,7 +3,10 @@
from __future__ import print_function from __future__ import print_function
import rfc822 import rfc822
import StringIO try:
from StringIO import StringIO
except:
from io import StringIO
import Milter import Milter
Milter.NOREPLY = Milter.CONTINUE Milter.NOREPLY = Milter.CONTINUE
@@ -152,14 +155,14 @@ class TestBase(object):
rc = self.body(buf) rc = self.body(buf)
if rc != Milter.CONTINUE: return rc if rc != Milter.CONTINUE: return rc
self._msg = msg self._msg = msg
self._body = StringIO.StringIO() self._body = StringIO()
rc = self.eom() rc = self.eom()
if self._bodyreplaced: if self._bodyreplaced:
body = self._body.getvalue() body = self._body.getvalue()
else: else:
msg.rewindbody() msg.rewindbody()
body = msg.fp.read() body = msg.fp.read()
self._body = StringIO.StringIO() self._body = StringIO()
self._body.writelines(msg.headers) self._body.writelines(msg.headers)
self._body.write('\n') self._body.write('\n')
self._body.write(body) self._body.write(body)
+5 -2
View File
@@ -9,7 +9,10 @@
from __future__ import print_function from __future__ import print_function
import Milter import Milter
import StringIO try:
from StringIO import StringIO
except:
from io import StringIO
import time import time
import email import email
import sys import sys
@@ -75,7 +78,7 @@ class myMilter(Milter.Base):
# NOTE: self.fp is only an *internal* copy of message data. You # NOTE: self.fp is only an *internal* copy of message data. You
# must use addheader, chgheader, replacebody to change the message # must use addheader, chgheader, replacebody to change the message
# on the MTA. # on the MTA.
self.fp = StringIO.StringIO() self.fp = StringIO()
self.canon_from = '@'.join(parse_addr(mailfrom)) self.canon_from = '@'.join(parse_addr(mailfrom))
self.fp.write('From %s %s\n' % (self.canon_from,time.ctime())) self.fp.write('From %s %s\n' % (self.canon_from,time.ctime()))
return Milter.CONTINUE return Milter.CONTINUE
+7 -4
View File
@@ -94,7 +94,10 @@
# This code is under the GNU General Public License. See COPYING for details. # This code is under the GNU General Public License. See COPYING for details.
from __future__ import print_function from __future__ import print_function
import StringIO try:
from StringIO import StringIO
except:
from io import StringIO
import socket import socket
import Milter import Milter
import zipfile import zipfile
@@ -113,7 +116,7 @@ from types import ListType,StringType
## Return a list of filenames in a zip file. ## Return a list of filenames in a zip file.
# Embedded zip files are recursively expanded. # Embedded zip files are recursively expanded.
def zipnames(txt): def zipnames(txt):
fp = StringIO.StringIO(txt) fp = StringIO(txt)
zipf = zipfile.ZipFile(fp,'r') zipf = zipfile.ZipFile(fp,'r')
names = [] names = []
for nm in zipf.namelist(): for nm in zipf.namelist():
@@ -241,7 +244,7 @@ class MimeMessage(Message):
def as_string(self, unixfrom=False): def as_string(self, unixfrom=False):
"Return the entire formatted message as a string." "Return the entire formatted message as a string."
fp = StringIO.StringIO() fp = StringIO()
self.dump(fp,unixfrom=unixfrom) self.dump(fp,unixfrom=unixfrom)
return fp.getvalue() return fp.getvalue()
@@ -503,7 +506,7 @@ def check_html(msg,savname=None):
if name and name.lower().endswith(".htm"): if name and name.lower().endswith(".htm"):
msgtype = 'text/html' msgtype = 'text/html'
if msgtype == 'text/html': if msgtype == 'text/html':
out = StringIO.StringIO() out = StringIO()
htmlfilter = HTMLScriptFilter(out) htmlfilter = HTMLScriptFilter(out)
try: try:
htmlfilter.write(msg.get_payload(decode=True)) htmlfilter.write(msg.get_payload(decode=True))
+5 -2
View File
@@ -7,7 +7,10 @@ from __future__ import print_function
import sys import sys
import os import os
import StringIO try:
from StringIO import StringIO
except:
from io import StringIO
import rfc822 import rfc822
import mime import mime
import Milter import Milter
@@ -39,7 +42,7 @@ class sampleMilter(Milter.Milter):
def envfrom(self,f,*str): def envfrom(self,f,*str):
"start of MAIL transaction" "start of MAIL transaction"
self.log("mail from",f,str) self.log("mail from",f,str)
self.fp = StringIO.StringIO() self.fp = StringIO()
self.tempname = None self.tempname = None
self.mailfrom = f self.mailfrom = f
self.bodysize = 0 self.bodysize = 0
+5 -2
View File
@@ -30,7 +30,10 @@ from __future__ import print_function
import unittest import unittest
import mime import mime
import socket import socket
import StringIO try:
from StringIO import StringIO
except:
from io import StringIO
import email import email
import sys import sys
import Milter import Milter
@@ -180,7 +183,7 @@ class MimeTestCase(unittest.TestCase):
self.assertEquals(rc,Milter.CONTINUE) self.assertEquals(rc,Milter.CONTINUE)
def testHTML(self,fname=""): def testHTML(self,fname=""):
result = StringIO.StringIO() result = StringIO()
filter = mime.HTMLScriptFilter(result) filter = mime.HTMLScriptFilter(result)
msg = """<! Illegal declaration used as comment> msg = """<! Illegal declaration used as comment>
<![if conditional]> Optional SGML <![endif]> <![if conditional]> Optional SGML <![endif]>
-1
View File
@@ -3,7 +3,6 @@ import Milter
import sample import sample
import mime import mime
import rfc822 import rfc822
import StringIO
from Milter.test import TestBase from Milter.test import TestBase
class TestMilter(TestBase,sample.sampleMilter): class TestMilter(TestBase,sample.sampleMilter):