[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz test/gzz/modules/email/converter.test gzz/m...
From: |
Marc Schiereck |
Subject: |
[Gzz-commits] gzz test/gzz/modules/email/converter.test gzz/m... |
Date: |
Fri, 01 Nov 2002 14:40:29 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Marc Schiereck <address@hidden> 02/11/01 14:40:29
Modified files:
test/gzz/modules/email: converter.test
gzz/modules/email: converter.py
Log message:
First Version of storeMail and some changes in converter.test to work
with storeMail
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/test/gzz/modules/email/converter.test.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/modules/email/converter.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
Patches:
Index: gzz/gzz/modules/email/converter.py
diff -u gzz/gzz/modules/email/converter.py:1.3
gzz/gzz/modules/email/converter.py:1.4
--- gzz/gzz/modules/email/converter.py:1.3 Fri Oct 25 17:30:24 2002
+++ gzz/gzz/modules/email/converter.py Fri Nov 1 14:40:29 2002
@@ -16,9 +16,13 @@
#
import gzz
+import java
import mailbox
+import mimetools
+import multifile
import re
import string
+import StringIO
def storeMailbox(file, mediaserver):
mbox = mailbox.UnixMailbox(file)
@@ -34,4 +38,79 @@
header = p.sub('\r\n', header)
body = p.sub('\r\n', body)
- mediaserver.addDatum(header + '\r\n' + body , "message/rfc822")
+ storeMail(header + '\r\n' + body, mediaserver)
+
+def storeMail(mail, mediaserver):
+ mail = re.sub('(\r\n|\n)', '\r\n', mail)
+ mail = StringIO.StringIO(mail)
+ msg = mimetools.Message(mail)
+ msgtype = msg.gettype()
+ msgID = msg.getheader("Message-ID")
+ ctparams = []
+
+ for param in msg.getplist():
+ ctparams.append(string.join(['; ', param], ''))
+
+ if msgtype[:10] == "multipart/":
+ headerLinesH = java.util.ArrayList()
+ headerLinesH.add('Content-Type: message/rfc822')
+
+ headerData = string.join(msg.headers, '') + '\r\n'
+ mulmsg = multifile.MultiFile(mail, 0)
+ mulmsg.push(msg.getparam("boundary"))
+
+ while mulmsg.next():
+ ctparams = []
+ submsg = mimetools.Message(mulmsg)
+ headerLinesB = java.util.ArrayList()
+
+ for param in submsg.getplist():
+ ctparams.append(string.join(['; ', param], ''))
+
+ headerLinesB.add('Content-Type: ' + submsg.gettype()
+ + string.join(ctparams, ''))
+ headerLinesB.add('Message-ID: ' + msgID)
+ headerLinesB.add('Content-Transfer-Encoding: ' +
submsg.getencoding())
+
+ id = '<ID>'
+ headerData += '--' + msg.getparam("boundary") + '\r\n'
+
+ headerData += 'Content-Type: message/external-body;\r\n'
+ headerData += ' access-type=\"x-storm\";\r\n'
+ headerData += ' block=\"' + id + '\"\r\n\r\n'
+
+ headerData += string.join(submsg.headers, '')
+ headerData += 'Content-Transfer-Encoding: binary\r\n'
+ headerData += 'Content-ID: ' + id + '\r\n\r\n'
+
+ body = string.join(submsg.fp.readlines(), '')
+ mediaserver.addDatum(body, headerLinesB, None, 0)
+
+ headerData += '--' + msg.getparam("boundary") + '--\r\n\r\n'
+ mediaserver.addDatum(headerData, headerLinesH, None, 0)
+ else:
+ headerLinesH = java.util.ArrayList()
+ headerLinesB = java.util.ArrayList()
+ headerLinesH.add('Content-Type: message/rfc822')
+ headerLinesB.add('Content-Type: ' + msgtype
+ + string.join(ctparams, ''))
+ headerLinesB.add('Message-ID: ' + msgID)
+ headerLinesB.add('Content-Transfer-Encoding: ' + msg.getencoding())
+
+ id = '<ID>'
+
+ headerA = 'Content-Type: message/external-body;\r\n'
+ headerA += ' access-type=\"x-storm\";\r\n'
+ headerA += ' block=\"' + id + '\"\r\n'
+
+ mailHeader = string.join(msg.headers, '')
+ mailHeader += 'Content-Type: ' + msgtype + '\r\n'
+ mailHeader += 'Content-Transfer-Encoding: binary\r\n'
+ mailHeader += 'Content-ID: ' + id + '\r\n'
+
+ mediaserver.addDatum(headerA + '\r\n'
+ + mailHeader + '\r\n',
+ headerLinesH, None, 0)
+
+ body = string.join(msg.fp.readlines(), '')
+ mediaserver.addDatum(body, headerLinesB, None, 0)
Index: gzz/test/gzz/modules/email/converter.test
diff -u gzz/test/gzz/modules/email/converter.test:1.2
gzz/test/gzz/modules/email/converter.test:1.3
--- gzz/test/gzz/modules/email/converter.test:1.2 Fri Oct 25 17:29:59 2002
+++ gzz/test/gzz/modules/email/converter.test Fri Nov 1 14:40:29 2002
@@ -27,8 +27,8 @@
Envelope-to: address@hidden
Delivery-date: Wed, 16 Oct 2002 00:15:44 +0200
Received: from mschiereck by taihoubuta with local (Exim 3.35 #1 (Debian))
- id 181ZyV-0003pD-00
- for <address@hidden>; Wed, 16 Oct 2002 00:15:39 +0200
+ id 181ZyV-0003pD-00
+ for <address@hidden>; Wed, 16 Oct 2002 00:15:39 +0200
Date: Wed, 16 Oct 2002 00:15:35 +0200
To: Marc Schiereck <address@hidden>
Subject: TestMail
@@ -38,6 +38,7 @@
Content-Disposition: inline
User-Agent: Mutt/1.3.28i
From: Marc Schiereck <address@hidden>
+Content-Transfer-Encoding: binary
Status: RO
Content-Length: 10
Lines: 1
@@ -45,14 +46,47 @@
TestMail.
"""
+mail1HeaderID =
gzz.mediaserver.Mediaserver.Id("017BCFE43371744AEFFB231B529D12721AF296A9CD")
+mail1BodyID =
gzz.mediaserver.Mediaserver.Id("01FC34E8A4E4260459918A94AB046299191E452433")
+
+
+mail1Header = "Content-Type: message/external-body;\r\n"
+mail1Header += " access-type=\"x-storm\";\r\n"
+mail1Header += " block=\"<ID>\"\r\n"
+mail1Header += "\r\n"
+mail1Header += "Return-path: <address@hidden>\r\n"
+mail1Header += "Envelope-to: address@hidden"
+mail1Header += "Delivery-date: Wed, 16 Oct 2002 00:15:44 +0200\r\n"
+mail1Header += "Received: from mschiereck by taihoubuta with local (Exim 3.35
#1 (Debian))\r\n"
+mail1Header += " id 181ZyV-0003pD-00\r\n"
+mail1Header += " for <address@hidden>; Wed, 16 Oct 2002 00:15:39
+0200\r\n"
+mail1Header += "Date: Wed, 16 Oct 2002 00:15:35 +0200\r\n"
+mail1Header += "To: Marc Schiereck <address@hidden>\r\n"
+mail1Header += "Subject: TestMail\r\n"
+mail1Header += "Message-ID: <address@hidden>\r\n"
+mail1Header += "Mime-Version: 1.0\r\n"
+mail1Header += "Content-Type: text/plain; charset=us-ascii\r\n"
+mail1Header += "Content-Disposition: inline\r\n"
+mail1Header += "User-Agent: Mutt/1.3.28i\r\n"
+mail1Header += "From: Marc Schiereck <address@hidden>\r\n"
+mail1Header += "Content-Transfer-Encoding: binary\r\n"
+mail1Header += "Status: RO\r\n"
+mail1Header += "Content-Length: 10\r\n"
+mail1Header += "Lines: 1\r\n"
+mail1Header += "Content-Type: text/plain\r\n"
+mail1Header += "Content-Transfer-Encoding: binary\r\n"
+mail1Header += "Content-ID: <ID>\r\n\r\n"
+
+mail1Body = "TestMail.\r\n"
+
mail2f = "From address@hidden Wed Oct 16 00:17:32 2002\n"
mail2 = """Return-path: <address@hidden>
Envelope-to: address@hidden
Delivery-date: Wed, 16 Oct 2002 00:17:32 +0200
Received: from mschiereck by taihoubuta with local (Exim 3.35 #1 (Debian))
- id 181a0G-0003pY-00
- for <address@hidden>; Wed, 16 Oct 2002 00:17:28 +0200
+ id 181a0G-0003pY-00
+ for <address@hidden>; Wed, 16 Oct 2002 00:17:28 +0200
Date: Wed, 16 Oct 2002 00:17:24 +0200
To: Marc Schiereck <address@hidden>
Subject: TestMail 2
@@ -71,14 +105,45 @@
"""
+mail2HeaderID =
gzz.mediaserver.Mediaserver.Id("01C8475E44CE645291A74EA8AAB8E2EE876359E4F8")
+mail2BodyID =
gzz.mediaserver.Mediaserver.Id("01B5F43554E0A5D65B4EC6337D3466D59E398C15EB")
+
+mail2Header = "Content-Type: message/external-body;\r\n"
+mail2Header += " access-type=\"x-storm\";\r\n"
+mail2Header += " block=\"<ID>\"\r\n\r\n"
+mail2Header += "Return-path: <address@hidden>\r\n"
+mail2Header += "Envelope-to: address@hidden"
+mail2Header += "Delivery-date: Wed, 16 Oct 2002 00:17:32 +0200\r\n"
+mail2Header += "Received: from mschiereck by taihoubuta with local (Exim 3.35
#1 (Debian))\r\n"
+mail2Header += " id 181a0G-0003pY-00\r\n"
+mail2Header += " for <address@hidden>; Wed, 16 Oct 2002 00:17:28
+0200\r\n"
+mail2Header += "Date: Wed, 16 Oct 2002 00:17:24 +0200\r\n"
+mail2Header += "To: Marc Schiereck <address@hidden>\r\n"
+mail2Header += "Subject: TestMail 2\r\n"
+mail2Header += "Message-ID: <address@hidden>\r\n"
+mail2Header += "Mime-Version: 1.0\r\n"
+mail2Header += "Content-Type: text/plain; charset=us-ascii\r\n"
+mail2Header += "Content-Disposition: inline\r\n"
+mail2Header += "User-Agent: Mutt/1.3.28i\r\n"
+mail2Header += "From: Marc Schiereck <address@hidden>\r\n"
+mail2Header += "Status: RO\r\n"
+mail2Header += "Content-Length: 51\r\n"
+mail2Header += "Lines: 3\r\n"
+mail2Header += "Content-Type: text/plain\r\n"
+mail2Header += "Content-Transfer-Encoding: binary\r\n"
+mail2Header += "Content-ID: <ID>\r\n\r\n"
+
+mail2Body = "test test test test test\r\n"
+mail2Body += "test test test test test\r\n\r\n"
+
mail3f = "From address@hidden Wed Oct 16 00:19:04 2002\n"
mail3 = """Return-path: <address@hidden>
Envelope-to: address@hidden
Delivery-date: Wed, 16 Oct 2002 00:19:04 +0200
Received: from mschiereck by taihoubuta with local (Exim 3.35 #1 (Debian))
- id 181a1l-0003pz-00
- for <address@hidden>; Wed, 16 Oct 2002 00:19:01 +0200
+ id 181a1l-0003pz-00
+ for <address@hidden>; Wed, 16 Oct 2002 00:19:01 +0200
Date: Wed, 16 Oct 2002 00:18:57 +0200
To: Marc Schiereck <address@hidden>
Subject: Test
@@ -102,14 +167,15 @@
--n8g4imXOkfNTN/H1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=testmbox
+Content-Transfer-Encoding: 7bit; filename=oink
>From address@hidden Wed Oct 16 00:15:44 2002
Return-path: <address@hidden>
Envelope-to: address@hidden
Delivery-date: Wed, 16 Oct 2002 00:15:44 +0200
Received: from mschiereck by taihoubuta with local (Exim 3.35 #1 (Debian))
- id 181ZyV-0003pD-00
- for <address@hidden>; Wed, 16 Oct 2002 00:15:39 +0200
+ id 181ZyV-0003pD-00
+ for <address@hidden>; Wed, 16 Oct 2002 00:15:39 +0200
Date: Wed, 16 Oct 2002 00:15:35 +0200
To: Marc Schiereck <address@hidden>
Subject: TestMail
@@ -130,8 +196,8 @@
Envelope-to: address@hidden
Delivery-date: Wed, 16 Oct 2002 00:17:32 +0200
Received: from mschiereck by taihoubuta with local (Exim 3.35 #1 (Debian))
- id 181a0G-0003pY-00
- for <address@hidden>; Wed, 16 Oct 2002 00:17:28 +0200
+ id 181a0G-0003pY-00
+ for <address@hidden>; Wed, 16 Oct 2002 00:17:28 +0200
Date: Wed, 16 Oct 2002 00:17:24 +0200
To: Marc Schiereck <address@hidden>
Subject: TestMail 2
@@ -171,16 +237,14 @@
mail3c = p.sub('\r\n', mail3)
mailIDs = medServ.getIDs()
- if mailIDs.size() != 3:
+ if mailIDs.size() != 7:
raise java.lang.Error()
- m1 = m2 = m3 = 0
-
- for mail in mailIDs.iterator():
- tmail = java.lang.String(medServ.getDatum(mail).getBytes())
- if tmail.equals(mail1c): m1 = 1
- if tmail.equals(mail2c): m2 = 1
- if tmail.equals(mail3c): m3 = 1
-
- if not (m1 and m2 and m3):
+ if not
java.lang.String(medServ.getDatum(mail1HeaderID).getBytes()).equals(mail1Header):
+ raise java.lang.Error()
+ if not
java.lang.String(medServ.getDatum(mail1BodyID).getBytes()).equals(mail1Body):
+ raise java.lang.Error()
+ if not
java.lang.String(medServ.getDatum(mail2HeaderID).getBytes()).equals(mail2Header):
+ raise java.lang.Error()
+ if not
java.lang.String(medServ.getDatum(mail2BodyID).getBytes()).equals(mail2Body):
raise java.lang.Error()
- [Gzz-commits] gzz test/gzz/modules/email/converter.test gzz/m...,
Marc Schiereck <=