gzz-commits
[Top][All Lists]
Advanced

[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()




reply via email to

[Prev in Thread] Current Thread [Next in Thread]