2011-03-21 17:17:06 -04:00
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
import unittest
|
|
|
|
import test.support
|
2011-03-31 12:20:23 -04:00
|
|
|
import email
|
|
|
|
from test.test_email import __file__ as landmark
|
2011-03-21 17:17:06 -04:00
|
|
|
|
|
|
|
# used by regrtest and __main__.
|
|
|
|
def test_main():
|
|
|
|
here = os.path.dirname(__file__)
|
|
|
|
# Unittest mucks with the path, so we have to save and restore
|
|
|
|
# it to keep regrtest happy.
|
|
|
|
savepath = sys.path[:]
|
|
|
|
test.support._run_suite(unittest.defaultTestLoader.discover(here))
|
|
|
|
sys.path[:] = savepath
|
2011-03-31 12:20:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
# helper code used by a number of test modules.
|
|
|
|
|
|
|
|
def openfile(filename, *args, **kws):
|
|
|
|
path = os.path.join(os.path.dirname(landmark), 'data', filename)
|
|
|
|
return open(path, *args, **kws)
|
|
|
|
|
|
|
|
|
|
|
|
# Base test class
|
|
|
|
class TestEmailBase(unittest.TestCase):
|
|
|
|
|
|
|
|
def ndiffAssertEqual(self, first, second):
|
|
|
|
"""Like assertEqual except use ndiff for readable output."""
|
|
|
|
if first != second:
|
|
|
|
sfirst = str(first)
|
|
|
|
ssecond = str(second)
|
|
|
|
rfirst = [repr(line) for line in sfirst.splitlines()]
|
|
|
|
rsecond = [repr(line) for line in ssecond.splitlines()]
|
|
|
|
diff = difflib.ndiff(rfirst, rsecond)
|
|
|
|
raise self.failureException(NL + NL.join(diff))
|
|
|
|
|
|
|
|
def _msgobj(self, filename):
|
|
|
|
with openfile(filename) as fp:
|
|
|
|
return email.message_from_file(fp)
|