Commit fee435af authored by Barry Warsaw's avatar Barry Warsaw

Added tests for MIMEAudio class/module

parent 2ae0b016
...@@ -13,6 +13,7 @@ import email ...@@ -13,6 +13,7 @@ import email
from email.Parser import Parser from email.Parser import Parser
from email.Generator import Generator, DecodedGenerator from email.Generator import Generator, DecodedGenerator
from email.Message import Message from email.Message import Message
from email.MIMEAudio import MIMEAudio
from email.MIMEText import MIMEText from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage from email.MIMEImage import MIMEImage
from email.MIMEBase import MIMEBase from email.MIMEBase import MIMEBase
...@@ -22,7 +23,8 @@ from email import Errors ...@@ -22,7 +23,8 @@ from email import Errors
from email import Encoders from email import Encoders
from email import Iterators from email import Iterators
import test.regrtest import test_email
from test_support import findfile
NL = '\n' NL = '\n'
EMPTYSTRING = '' EMPTYSTRING = ''
...@@ -30,8 +32,7 @@ EMPTYSTRING = '' ...@@ -30,8 +32,7 @@ EMPTYSTRING = ''
def openfile(filename): def openfile(filename):
path = os.path.join(os.path.dirname(test.regrtest.__file__), path = os.path.join(os.path.dirname(test_email.__file__), 'data', filename)
'data', filename)
return open(path) return open(path)
...@@ -310,6 +311,60 @@ Blah blah blah ...@@ -310,6 +311,60 @@ Blah blah blah
""") """)
# Test the basic MIMEAudio class
class TestMIMEAudio(unittest.TestCase):
def setUp(self):
# In Python, audiotest.au lives in Lib/test not Lib/test/data
fp = open(findfile('audiotest.au'))
try:
self._audiodata = fp.read()
finally:
fp.close()
self._au = MIMEAudio(self._audiodata)
def test_guess_minor_type(self):
self.assertEqual(self._au.get_type(), 'audio/basic')
def test_encoding(self):
payload = self._au.get_payload()
self.assertEqual(base64.decodestring(payload), self._audiodata)
def checkSetMinor(self):
au = MIMEAudio(self._audiodata, 'fish')
self.assertEqual(im.get_type(), 'audio/fish')
def test_custom_encoder(self):
eq = self.assertEqual
def encoder(msg):
orig = msg.get_payload()
msg.set_payload(0)
msg['Content-Transfer-Encoding'] = 'broken64'
au = MIMEAudio(self._audiodata, _encoder=encoder)
eq(au.get_payload(), 0)
eq(au['content-transfer-encoding'], 'broken64')
def test_add_header(self):
eq = self.assertEqual
unless = self.failUnless
self._au.add_header('Content-Disposition', 'attachment',
filename='audiotest.au')
eq(self._au['content-disposition'],
'attachment; filename="audiotest.au"')
eq(self._au.get_params(header='content-disposition'),
[('attachment', ''), ('filename', 'audiotest.au')])
eq(self._au.get_param('filename', header='content-disposition'),
'audiotest.au')
missing = []
eq(self._au.get_param('attachment', header='content-disposition'), '')
unless(self._au.get_param('foo', failobj=missing,
header='content-disposition') is missing)
# Try some missing stuff
unless(self._au.get_param('foobar', missing) is missing)
unless(self._au.get_param('attachment', missing,
header='foobar') is missing)
# Test the basic MIMEImage class # Test the basic MIMEImage class
class TestMIMEImage(unittest.TestCase): class TestMIMEImage(unittest.TestCase):
...@@ -768,7 +823,6 @@ class TestMiscellaneous(unittest.TestCase): ...@@ -768,7 +823,6 @@ class TestMiscellaneous(unittest.TestCase):
for subpart in msg.walk(): for subpart in msg.walk():
unless(isinstance(subpart, MyMessage)) unless(isinstance(subpart, MyMessage))
def test_message_from_file_with_class(self): def test_message_from_file_with_class(self):
unless = self.failUnless unless = self.failUnless
# Create a subclass # Create a subclass
...@@ -790,6 +844,16 @@ class TestMiscellaneous(unittest.TestCase): ...@@ -790,6 +844,16 @@ class TestMiscellaneous(unittest.TestCase):
for subpart in msg.walk(): for subpart in msg.walk():
unless(isinstance(subpart, MyMessage)) unless(isinstance(subpart, MyMessage))
def test__all__(self):
module = __import__('email')
all = module.__all__
all.sort()
self.assertEqual(all, ['Encoders', 'Errors', 'Generator', 'Iterators',
'MIMEAudio', 'MIMEBase', 'MIMEImage',
'MIMEMessage', 'MIMEText', 'Message', 'Parser',
'Utils',
'message_from_file', 'message_from_string'])
# Test the iterator/generators # Test the iterator/generators
...@@ -830,6 +894,7 @@ def suite(): ...@@ -830,6 +894,7 @@ def suite():
suite.addTest(unittest.makeSuite(TestEncoders)) suite.addTest(unittest.makeSuite(TestEncoders))
suite.addTest(unittest.makeSuite(TestLongHeaders)) suite.addTest(unittest.makeSuite(TestLongHeaders))
suite.addTest(unittest.makeSuite(TestFromMangling)) suite.addTest(unittest.makeSuite(TestFromMangling))
suite.addTest(unittest.makeSuite(TestMIMEAudio))
suite.addTest(unittest.makeSuite(TestMIMEImage)) suite.addTest(unittest.makeSuite(TestMIMEImage))
suite.addTest(unittest.makeSuite(TestMIMEText)) suite.addTest(unittest.makeSuite(TestMIMEText))
suite.addTest(unittest.makeSuite(TestMultipartMixed)) suite.addTest(unittest.makeSuite(TestMultipartMixed))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment