Added tests for MIMEAudio class/module

This commit is contained in:
Barry Warsaw 2001-10-09 19:23:57 +00:00
parent 2ae0b0163a
commit fee435af8b

View file

@ -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
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 = ''
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
""") """)
# 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):
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):
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():
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))