[Zope-Checkins] SVN: Zope/trunk/src/OFS/tests/testRanges.py Stop using multifile and use email instead.
Yusei Tahara
yusei at domen.cx
Sat Apr 10 01:25:41 EDT 2010
Log message for revision 110704:
Stop using multifile and use email instead.
Changed:
U Zope/trunk/src/OFS/tests/testRanges.py
-=-
Modified: Zope/trunk/src/OFS/tests/testRanges.py
===================================================================
--- Zope/trunk/src/OFS/tests/testRanges.py 2010-04-09 17:45:34 UTC (rev 110703)
+++ Zope/trunk/src/OFS/tests/testRanges.py 2010-04-10 05:25:40 UTC (rev 110704)
@@ -178,9 +178,8 @@
def expectMultipleRanges(self, range, sets, draft=0):
import cStringIO
- from mimetools import Message
- from multifile import MultiFile
import re
+ import email
rangeParse = re.compile('bytes\s*(\d+)-(\d+)/(\d+)')
req = self.app.REQUEST
rsp = req.RESPONSE
@@ -211,20 +210,16 @@
# Decode the multipart message
bodyfile = cStringIO.StringIO('Content-Type: %s\n\n%s' % (
rsp.getHeader('content-type'), body))
- bodymessage = Message(bodyfile)
- partfiles = MultiFile(bodyfile)
- partfiles.push(bodymessage.getparam('boundary'))
+ partmessages = [part
+ for part in email.message_from_file(bodyfile).walk()]
- partmessages = []
- add = partmessages.append
- while partfiles.next():
- add(Message(cStringIO.StringIO(partfiles.read())))
-
# Check the different parts
returnedRanges = []
add = returnedRanges.append
for part in partmessages:
- range = part['content-range']
+ if part.get_content_maintype() == 'multipart':
+ continue
+ range = part.get('content-range')
start, end, size = rangeParse.search(range).groups()
start, end, size = int(start), int(end), int(size)
end = end + 1
@@ -233,13 +228,7 @@
'Part Content-Range header reported incorrect length. '
'Expected %d, got %d.' % (len(self.data), size))
- part.rewindbody()
- body = part.fp.read()
- # Whotcha! Bug in MultiFile; the CRLF that is part of the boundary
- # is returned as part of the body. Note that this bug is resolved
- # in Python 2.2.
- if body[-2:] == '\r\n':
- body = body[:-2]
+ body = part.get_payload()
self.failIf(len(body) != end - start,
'Part (%d, %d) is of wrong length, expected %d, got %d.' % (
More information about the Zope-Checkins
mailing list