Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
b8b57e75
Kaydet (Commit)
b8b57e75
authored
May 09, 2004
tarafından
Barry Warsaw
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
A bunch of new tests, and updated tests for the email 3.0 FeedParser.
üst
e7169eb9
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
189 additions
and
63 deletions
+189
-63
test_email.py
Lib/email/test/test_email.py
+189
-63
No files found.
Lib/email/test/test_email.py
Dosyayı görüntüle @
b8b57e75
# Copyright (C) 2001
,2002,2003
Python Software Foundation
# Copyright (C) 2001
-2004
Python Software Foundation
# email package unit tests
# email package unit tests
import
os
import
os
...
@@ -9,7 +9,6 @@ import difflib
...
@@ -9,7 +9,6 @@ import difflib
import
unittest
import
unittest
import
warnings
import
warnings
from
cStringIO
import
StringIO
from
cStringIO
import
StringIO
from
types
import
StringType
,
ListType
import
email
import
email
...
@@ -42,12 +41,6 @@ SPACE = ' '
...
@@ -42,12 +41,6 @@ SPACE = ' '
# We don't care about DeprecationWarnings
# We don't care about DeprecationWarnings
warnings
.
filterwarnings
(
'ignore'
,
''
,
DeprecationWarning
,
__name__
)
warnings
.
filterwarnings
(
'ignore'
,
''
,
DeprecationWarning
,
__name__
)
try
:
True
,
False
except
NameError
:
True
=
1
False
=
0
def
openfile
(
filename
,
mode
=
'r'
):
def
openfile
(
filename
,
mode
=
'r'
):
...
@@ -1100,7 +1093,41 @@ This is the dingus fish.
...
@@ -1100,7 +1093,41 @@ This is the dingus fish.
unless
(
not
m0
.
is_multipart
())
unless
(
not
m0
.
is_multipart
())
unless
(
not
m1
.
is_multipart
())
unless
(
not
m1
.
is_multipart
())
def
test_no_parts_in_a_multipart
(
self
):
def
test_empty_multipart_idempotent
(
self
):
text
=
"""
\
Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain
--BOUNDARY
--BOUNDARY--
"""
msg
=
Parser
()
.
parsestr
(
text
)
self
.
ndiffAssertEqual
(
text
,
msg
.
as_string
())
def
test_no_parts_in_a_multipart_with_none_epilogue
(
self
):
outer
=
MIMEBase
(
'multipart'
,
'mixed'
)
outer
[
'Subject'
]
=
'A subject'
outer
[
'To'
]
=
'aperson@dom.ain'
outer
[
'From'
]
=
'bperson@dom.ain'
outer
.
set_boundary
(
'BOUNDARY'
)
self
.
ndiffAssertEqual
(
outer
.
as_string
(),
'''
\
Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain
--BOUNDARY
--BOUNDARY--'''
)
def
test_no_parts_in_a_multipart_with_empty_epilogue
(
self
):
outer
=
MIMEBase
(
'multipart'
,
'mixed'
)
outer
=
MIMEBase
(
'multipart'
,
'mixed'
)
outer
[
'Subject'
]
=
'A subject'
outer
[
'Subject'
]
=
'A subject'
outer
[
'To'
]
=
'aperson@dom.ain'
outer
[
'To'
]
=
'aperson@dom.ain'
...
@@ -1108,31 +1135,132 @@ This is the dingus fish.
...
@@ -1108,31 +1135,132 @@ This is the dingus fish.
outer
.
preamble
=
''
outer
.
preamble
=
''
outer
.
epilogue
=
''
outer
.
epilogue
=
''
outer
.
set_boundary
(
'BOUNDARY'
)
outer
.
set_boundary
(
'BOUNDARY'
)
msg
=
MIMEText
(
'hello world'
)
self
.
ndiffAssertEqual
(
outer
.
as_string
(),
'''
\
self
.
assertEqual
(
outer
.
as_string
(),
'''
\
Content-Type: multipart/mixed; boundary="BOUNDARY"
Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
MIME-Version: 1.0
Subject: A subject
Subject: A subject
To: aperson@dom.ain
To: aperson@dom.ain
From: bperson@dom.ain
From: bperson@dom.ain
--BOUNDARY
--BOUNDARY
--BOUNDARY--
--BOUNDARY--
'''
)
'''
)
def
test_one_part_in_a_multipart
(
self
):
def
test_one_part_in_a_multipart
(
self
):
eq
=
self
.
ndiffAssertEqual
outer
=
MIMEBase
(
'multipart'
,
'mixed'
)
outer
[
'Subject'
]
=
'A subject'
outer
[
'To'
]
=
'aperson@dom.ain'
outer
[
'From'
]
=
'bperson@dom.ain'
outer
.
set_boundary
(
'BOUNDARY'
)
msg
=
MIMEText
(
'hello world'
)
outer
.
attach
(
msg
)
eq
(
outer
.
as_string
(),
'''
\
Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain
--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
hello world
--BOUNDARY--'''
)
def
test_seq_parts_in_a_multipart_with_empty_preamble
(
self
):
eq
=
self
.
ndiffAssertEqual
eq
=
self
.
ndiffAssertEqual
outer
=
MIMEBase
(
'multipart'
,
'mixed'
)
outer
=
MIMEBase
(
'multipart'
,
'mixed'
)
outer
[
'Subject'
]
=
'A subject'
outer
[
'Subject'
]
=
'A subject'
outer
[
'To'
]
=
'aperson@dom.ain'
outer
[
'To'
]
=
'aperson@dom.ain'
outer
[
'From'
]
=
'bperson@dom.ain'
outer
[
'From'
]
=
'bperson@dom.ain'
outer
.
preamble
=
''
outer
.
preamble
=
''
outer
.
epilogue
=
''
msg
=
MIMEText
(
'hello world'
)
outer
.
attach
(
msg
)
outer
.
set_boundary
(
'BOUNDARY'
)
eq
(
outer
.
as_string
(),
'''
\
Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain
--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
hello world
--BOUNDARY--'''
)
def
test_seq_parts_in_a_multipart_with_none_preamble
(
self
):
eq
=
self
.
ndiffAssertEqual
outer
=
MIMEBase
(
'multipart'
,
'mixed'
)
outer
[
'Subject'
]
=
'A subject'
outer
[
'To'
]
=
'aperson@dom.ain'
outer
[
'From'
]
=
'bperson@dom.ain'
outer
.
preamble
=
None
msg
=
MIMEText
(
'hello world'
)
outer
.
attach
(
msg
)
outer
.
set_boundary
(
'BOUNDARY'
)
outer
.
set_boundary
(
'BOUNDARY'
)
eq
(
outer
.
as_string
(),
'''
\
Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain
--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
hello world
--BOUNDARY--'''
)
def
test_seq_parts_in_a_multipart_with_none_epilogue
(
self
):
eq
=
self
.
ndiffAssertEqual
outer
=
MIMEBase
(
'multipart'
,
'mixed'
)
outer
[
'Subject'
]
=
'A subject'
outer
[
'To'
]
=
'aperson@dom.ain'
outer
[
'From'
]
=
'bperson@dom.ain'
outer
.
epilogue
=
None
msg
=
MIMEText
(
'hello world'
)
msg
=
MIMEText
(
'hello world'
)
outer
.
attach
(
msg
)
outer
.
attach
(
msg
)
outer
.
set_boundary
(
'BOUNDARY'
)
eq
(
outer
.
as_string
(),
'''
\
Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain
--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
hello world
--BOUNDARY--'''
)
def
test_seq_parts_in_a_multipart_with_empty_epilogue
(
self
):
eq
=
self
.
ndiffAssertEqual
outer
=
MIMEBase
(
'multipart'
,
'mixed'
)
outer
[
'Subject'
]
=
'A subject'
outer
[
'To'
]
=
'aperson@dom.ain'
outer
[
'From'
]
=
'bperson@dom.ain'
outer
.
epilogue
=
''
msg
=
MIMEText
(
'hello world'
)
outer
.
attach
(
msg
)
outer
.
set_boundary
(
'BOUNDARY'
)
eq
(
outer
.
as_string
(),
'''
\
eq
(
outer
.
as_string
(),
'''
\
Content-Type: multipart/mixed; boundary="BOUNDARY"
Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
MIME-Version: 1.0
...
@@ -1149,14 +1277,14 @@ hello world
...
@@ -1149,14 +1277,14 @@ hello world
--BOUNDARY--
--BOUNDARY--
'''
)
'''
)
def
test_seq_parts_in_a_multipart
(
self
):
def
test_seq_parts_in_a_multipart_with_nl_epilogue
(
self
):
eq
=
self
.
ndiffAssertEqual
eq
=
self
.
ndiffAssertEqual
outer
=
MIMEBase
(
'multipart'
,
'mixed'
)
outer
=
MIMEBase
(
'multipart'
,
'mixed'
)
outer
[
'Subject'
]
=
'A subject'
outer
[
'Subject'
]
=
'A subject'
outer
[
'To'
]
=
'aperson@dom.ain'
outer
[
'To'
]
=
'aperson@dom.ain'
outer
[
'From'
]
=
'bperson@dom.ain'
outer
[
'From'
]
=
'bperson@dom.ain'
outer
.
preamble
=
''
outer
.
epilogue
=
'
\n
'
outer
.
epilogue
=
''
msg
=
MIMEText
(
'hello world'
)
msg
=
MIMEText
(
'hello world'
)
outer
.
attach
(
msg
)
outer
.
attach
(
msg
)
outer
.
set_boundary
(
'BOUNDARY'
)
outer
.
set_boundary
(
'BOUNDARY'
)
...
@@ -1174,6 +1302,7 @@ Content-Transfer-Encoding: 7bit
...
@@ -1174,6 +1302,7 @@ Content-Transfer-Encoding: 7bit
hello world
hello world
--BOUNDARY--
--BOUNDARY--
'''
)
'''
)
...
@@ -1187,25 +1316,21 @@ class TestNonConformant(TestEmailBase):
...
@@ -1187,25 +1316,21 @@ class TestNonConformant(TestEmailBase):
eq
(
msg
.
get_main_type
(),
None
)
eq
(
msg
.
get_main_type
(),
None
)
eq
(
msg
.
get_subtype
(),
None
)
eq
(
msg
.
get_subtype
(),
None
)
## XXX: No longer fails with the new parser. Should it ?
def
test_same_boundary_inner_outer
(
self
):
## def test_bogus_boundary(self):
unless
=
self
.
failUnless
## fp = openfile(findfile('msg_15.txt'))
msg
=
self
.
_msgobj
(
'msg_15.txt'
)
## try:
# XXX We can probably eventually do better
## data = fp.read()
inner
=
msg
.
get_payload
(
0
)
## finally:
unless
(
hasattr
(
inner
,
'defects'
))
## fp.close()
self
.
assertEqual
(
len
(
inner
.
defects
),
1
)
## p = Parser(strict=True)
unless
(
isinstance
(
inner
.
defects
[
0
],
Errors
.
StartBoundaryNotFound
))
## # Note, under a future non-strict parsing mode, this would parse the
## # message into the intended message tree.
## self.assertRaises(Errors.BoundaryError, p.parsestr, data)
def
test_multipart_no_boundary
(
self
):
def
test_multipart_no_boundary
(
self
):
fp
=
openfile
(
findfile
(
'msg_25.txt'
))
unless
=
self
.
failUnless
try
:
msg
=
self
.
_msgobj
(
'msg_25.txt'
)
self
.
assertRaises
(
Errors
.
BoundaryError
,
unless
(
isinstance
(
msg
.
get_payload
(),
str
))
email
.
message_from_file
,
fp
)
self
.
assertEqual
(
len
(
msg
.
defects
),
1
)
finally
:
unless
(
isinstance
(
msg
.
defects
[
0
],
Errors
.
NoBoundaryInMultipart
))
fp
.
close
()
def
test_invalid_content_type
(
self
):
def
test_invalid_content_type
(
self
):
eq
=
self
.
assertEqual
eq
=
self
.
assertEqual
...
@@ -1245,22 +1370,18 @@ message 2
...
@@ -1245,22 +1370,18 @@ message 2
--BOUNDARY--
--BOUNDARY--
"""
)
"""
)
## XXX: No longer fails with the new parser. Should it ?
def
test_no_separating_blank_line
(
self
):
## def test_no_separating_blank_line(self):
eq
=
self
.
ndiffAssertEqual
## eq = self.ndiffAssertEqual
msg
=
self
.
_msgobj
(
'msg_35.txt'
)
## msg = self._msgobj('msg_35.txt')
eq
(
msg
.
as_string
(),
"""
\
## eq(msg.as_string(), """\
From: aperson@dom.ain
## From: aperson@dom.ain
To: bperson@dom.ain
## To: bperson@dom.ain
Subject: here's something interesting
## Subject: here's something interesting
##
counter to RFC 2822, there's no separating newline here
## counter to RFC 2822, there's no separating newline here
"""
)
## """)
## # strict=True should raise an exception
## self.assertRaises(Errors.HeaderParseError,
## self._msgobj, 'msg_35.txt', True)
##
##
# Test RFC 2047 header encoding and decoding
# Test RFC 2047 header encoding and decoding
class
TestRFC2047
(
unittest
.
TestCase
):
class
TestRFC2047
(
unittest
.
TestCase
):
...
@@ -1351,7 +1472,7 @@ class TestMIMEMessage(TestEmailBase):
...
@@ -1351,7 +1472,7 @@ class TestMIMEMessage(TestEmailBase):
r
=
MIMEMessage
(
m
)
r
=
MIMEMessage
(
m
)
eq
(
r
.
get_type
(),
'message/rfc822'
)
eq
(
r
.
get_type
(),
'message/rfc822'
)
payload
=
r
.
get_payload
()
payload
=
r
.
get_payload
()
unless
(
type
(
payload
),
ListType
)
unless
(
isinstance
(
payload
,
list
)
)
eq
(
len
(
payload
),
1
)
eq
(
len
(
payload
),
1
)
subpart
=
payload
[
0
]
subpart
=
payload
[
0
]
unless
(
subpart
is
m
)
unless
(
subpart
is
m
)
...
@@ -1392,7 +1513,7 @@ Here is the body of the message.
...
@@ -1392,7 +1513,7 @@ Here is the body of the message.
msg
=
self
.
_msgobj
(
'msg_11.txt'
)
msg
=
self
.
_msgobj
(
'msg_11.txt'
)
eq
(
msg
.
get_type
(),
'message/rfc822'
)
eq
(
msg
.
get_type
(),
'message/rfc822'
)
payload
=
msg
.
get_payload
()
payload
=
msg
.
get_payload
()
unless
(
isinstance
(
payload
,
ListType
))
unless
(
isinstance
(
payload
,
list
))
eq
(
len
(
payload
),
1
)
eq
(
len
(
payload
),
1
)
submsg
=
payload
[
0
]
submsg
=
payload
[
0
]
self
.
failUnless
(
isinstance
(
submsg
,
Message
))
self
.
failUnless
(
isinstance
(
submsg
,
Message
))
...
@@ -1449,7 +1570,7 @@ Your message cannot be delivered to the following recipients:
...
@@ -1449,7 +1570,7 @@ Your message cannot be delivered to the following recipients:
subpart
=
msg
.
get_payload
(
2
)
subpart
=
msg
.
get_payload
(
2
)
eq
(
subpart
.
get_type
(),
'message/rfc822'
)
eq
(
subpart
.
get_type
(),
'message/rfc822'
)
payload
=
subpart
.
get_payload
()
payload
=
subpart
.
get_payload
()
unless
(
isinstance
(
payload
,
ListType
))
unless
(
isinstance
(
payload
,
list
))
eq
(
len
(
payload
),
1
)
eq
(
len
(
payload
),
1
)
subsubpart
=
payload
[
0
]
subsubpart
=
payload
[
0
]
unless
(
isinstance
(
subsubpart
,
Message
))
unless
(
isinstance
(
subsubpart
,
Message
))
...
@@ -1468,7 +1589,7 @@ Your message cannot be delivered to the following recipients:
...
@@ -1468,7 +1589,7 @@ Your message cannot be delivered to the following recipients:
msg
[
'From'
]
=
'aperson@dom.ain'
msg
[
'From'
]
=
'aperson@dom.ain'
msg
[
'To'
]
=
'bperson@dom.ain'
msg
[
'To'
]
=
'bperson@dom.ain'
msg
[
'Subject'
]
=
'Test'
msg
[
'Subject'
]
=
'Test'
msg
.
preamble
=
'MIME message
\n
'
msg
.
preamble
=
'MIME message'
msg
.
epilogue
=
'End of MIME message
\n
'
msg
.
epilogue
=
'End of MIME message
\n
'
msg1
=
MIMEText
(
'One'
)
msg1
=
MIMEText
(
'One'
)
msg2
=
MIMEText
(
'Two'
)
msg2
=
MIMEText
(
'Two'
)
...
@@ -1560,7 +1681,7 @@ Two
...
@@ -1560,7 +1681,7 @@ Two
neq
=
self
.
ndiffAssertEqual
neq
=
self
.
ndiffAssertEqual
# Set up container
# Set up container
container
=
MIMEMultipart
(
'digest'
,
'BOUNDARY'
)
container
=
MIMEMultipart
(
'digest'
,
'BOUNDARY'
)
container
.
epilogue
=
'
\n
'
container
.
epilogue
=
''
# Set up subparts
# Set up subparts
subpart1a
=
MIMEText
(
'message 1
\n
'
)
subpart1a
=
MIMEText
(
'message 1
\n
'
)
subpart2a
=
MIMEText
(
'message 2
\n
'
)
subpart2a
=
MIMEText
(
'message 2
\n
'
)
...
@@ -1729,6 +1850,10 @@ class TestIdempotent(TestEmailBase):
...
@@ -1729,6 +1850,10 @@ class TestIdempotent(TestEmailBase):
msg
,
text
=
self
.
_msgobj
(
'msg_34.txt'
)
msg
,
text
=
self
.
_msgobj
(
'msg_34.txt'
)
self
.
_idempotent
(
msg
,
text
)
self
.
_idempotent
(
msg
,
text
)
def
test_nested_multipart_mixeds
(
self
):
msg
,
text
=
self
.
_msgobj
(
'msg_12a.txt'
)
self
.
_idempotent
(
msg
,
text
)
def
test_content_type
(
self
):
def
test_content_type
(
self
):
eq
=
self
.
assertEquals
eq
=
self
.
assertEquals
unless
=
self
.
failUnless
unless
=
self
.
failUnless
...
@@ -1741,8 +1866,8 @@ class TestIdempotent(TestEmailBase):
...
@@ -1741,8 +1866,8 @@ class TestIdempotent(TestEmailBase):
params
[
pk
]
=
pv
params
[
pk
]
=
pv
eq
(
params
[
'report-type'
],
'delivery-status'
)
eq
(
params
[
'report-type'
],
'delivery-status'
)
eq
(
params
[
'boundary'
],
'D1690A7AC1.996856090/mail.example.com'
)
eq
(
params
[
'boundary'
],
'D1690A7AC1.996856090/mail.example.com'
)
eq
(
msg
.
preamble
,
'This is a MIME-encapsulated message.
\n
\n
'
)
eq
(
msg
.
preamble
,
'This is a MIME-encapsulated message.
\n
'
)
eq
(
msg
.
epilogue
,
'
\n
\n
'
)
eq
(
msg
.
epilogue
,
'
\n
'
)
eq
(
len
(
msg
.
get_payload
()),
3
)
eq
(
len
(
msg
.
get_payload
()),
3
)
# Make sure the subparts are what we expect
# Make sure the subparts are what we expect
msg1
=
msg
.
get_payload
(
0
)
msg1
=
msg
.
get_payload
(
0
)
...
@@ -1755,7 +1880,7 @@ class TestIdempotent(TestEmailBase):
...
@@ -1755,7 +1880,7 @@ class TestIdempotent(TestEmailBase):
eq
(
msg3
.
get_type
(),
'message/rfc822'
)
eq
(
msg3
.
get_type
(),
'message/rfc822'
)
self
.
failUnless
(
isinstance
(
msg3
,
Message
))
self
.
failUnless
(
isinstance
(
msg3
,
Message
))
payload
=
msg3
.
get_payload
()
payload
=
msg3
.
get_payload
()
unless
(
isinstance
(
payload
,
ListType
))
unless
(
isinstance
(
payload
,
list
))
eq
(
len
(
payload
),
1
)
eq
(
len
(
payload
),
1
)
msg4
=
payload
[
0
]
msg4
=
payload
[
0
]
unless
(
isinstance
(
msg4
,
Message
))
unless
(
isinstance
(
msg4
,
Message
))
...
@@ -1770,12 +1895,12 @@ class TestIdempotent(TestEmailBase):
...
@@ -1770,12 +1895,12 @@ class TestIdempotent(TestEmailBase):
# Make sure the payload is a list of exactly one sub-Message, and that
# Make sure the payload is a list of exactly one sub-Message, and that
# that submessage has a type of text/plain
# that submessage has a type of text/plain
payload
=
msg
.
get_payload
()
payload
=
msg
.
get_payload
()
unless
(
isinstance
(
payload
,
ListType
))
unless
(
isinstance
(
payload
,
list
))
eq
(
len
(
payload
),
1
)
eq
(
len
(
payload
),
1
)
msg1
=
payload
[
0
]
msg1
=
payload
[
0
]
self
.
failUnless
(
isinstance
(
msg1
,
Message
))
self
.
failUnless
(
isinstance
(
msg1
,
Message
))
eq
(
msg1
.
get_type
(),
'text/plain'
)
eq
(
msg1
.
get_type
(),
'text/plain'
)
self
.
failUnless
(
isinstance
(
msg1
.
get_payload
(),
StringType
))
self
.
failUnless
(
isinstance
(
msg1
.
get_payload
(),
str
))
eq
(
msg1
.
get_payload
(),
'
\n
'
)
eq
(
msg1
.
get_payload
(),
'
\n
'
)
...
@@ -2027,12 +2152,13 @@ class TestMiscellaneous(unittest.TestCase):
...
@@ -2027,12 +2152,13 @@ class TestMiscellaneous(unittest.TestCase):
class
TestIterators
(
TestEmailBase
):
class
TestIterators
(
TestEmailBase
):
def
test_body_line_iterator
(
self
):
def
test_body_line_iterator
(
self
):
eq
=
self
.
assertEqual
eq
=
self
.
assertEqual
neq
=
self
.
ndiffAssertEqual
# First a simple non-multipart message
# First a simple non-multipart message
msg
=
self
.
_msgobj
(
'msg_01.txt'
)
msg
=
self
.
_msgobj
(
'msg_01.txt'
)
it
=
Iterators
.
body_line_iterator
(
msg
)
it
=
Iterators
.
body_line_iterator
(
msg
)
lines
=
list
(
it
)
lines
=
list
(
it
)
eq
(
len
(
lines
),
6
)
eq
(
len
(
lines
),
6
)
eq
(
EMPTYSTRING
.
join
(
lines
),
msg
.
get_payload
())
n
eq
(
EMPTYSTRING
.
join
(
lines
),
msg
.
get_payload
())
# Now a more complicated multipart
# Now a more complicated multipart
msg
=
self
.
_msgobj
(
'msg_02.txt'
)
msg
=
self
.
_msgobj
(
'msg_02.txt'
)
it
=
Iterators
.
body_line_iterator
(
msg
)
it
=
Iterators
.
body_line_iterator
(
msg
)
...
@@ -2040,7 +2166,7 @@ class TestIterators(TestEmailBase):
...
@@ -2040,7 +2166,7 @@ class TestIterators(TestEmailBase):
eq
(
len
(
lines
),
43
)
eq
(
len
(
lines
),
43
)
fp
=
openfile
(
'msg_19.txt'
)
fp
=
openfile
(
'msg_19.txt'
)
try
:
try
:
eq
(
EMPTYSTRING
.
join
(
lines
),
fp
.
read
())
n
eq
(
EMPTYSTRING
.
join
(
lines
),
fp
.
read
())
finally
:
finally
:
fp
.
close
()
fp
.
close
()
...
@@ -2094,8 +2220,8 @@ class TestParsers(TestEmailBase):
...
@@ -2094,8 +2220,8 @@ class TestParsers(TestEmailBase):
eq
(
msg
[
'from'
],
'ppp-request@zzz.org'
)
eq
(
msg
[
'from'
],
'ppp-request@zzz.org'
)
eq
(
msg
[
'to'
],
'ppp@zzz.org'
)
eq
(
msg
[
'to'
],
'ppp@zzz.org'
)
eq
(
msg
.
get_type
(),
'multipart/mixed'
)
eq
(
msg
.
get_type
(),
'multipart/mixed'
)
eq
(
msg
.
is_multipart
(),
0
)
self
.
failIf
(
msg
.
is_multipart
()
)
self
.
failUnless
(
isinstance
(
msg
.
get_payload
(),
StringType
))
self
.
failUnless
(
isinstance
(
msg
.
get_payload
(),
str
))
def
test_whitespace_continuaton
(
self
):
def
test_whitespace_continuaton
(
self
):
eq
=
self
.
assertEqual
eq
=
self
.
assertEqual
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment