mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
Merge with 3.5
This commit is contained in:
commit
2a2becc1d1
5 changed files with 59 additions and 10 deletions
|
@ -120,6 +120,10 @@ def parameterize(cls):
|
|||
Note: if and only if the generated test name is a valid identifier can it
|
||||
be used to select the test individually from the unittest command line.
|
||||
|
||||
The values in the params dict can be a single value, a tuple, or a
|
||||
dict. If a single value of a tuple, it is passed to the test function
|
||||
as positional arguments. If a dict, it is a passed via **kw.
|
||||
|
||||
"""
|
||||
paramdicts = {}
|
||||
testers = collections.defaultdict(list)
|
||||
|
@ -148,8 +152,12 @@ def parameterize(cls):
|
|||
if name.startswith(paramsname):
|
||||
testnameroot = 'test_' + name[len(paramsname):]
|
||||
for paramname, params in paramsdict.items():
|
||||
test = (lambda self, name=name, params=params:
|
||||
getattr(self, name)(*params))
|
||||
if hasattr(params, 'keys'):
|
||||
test = (lambda self, name=name, params=params:
|
||||
getattr(self, name)(**params))
|
||||
else:
|
||||
test = (lambda self, name=name, params=params:
|
||||
getattr(self, name)(*params))
|
||||
testname = testnameroot + '_' + paramname
|
||||
test.__name__ = testname
|
||||
testfuncs[testname] = test
|
||||
|
|
|
@ -7,6 +7,7 @@ producing RFC valid messages.
|
|||
import io
|
||||
import unittest
|
||||
from email import policy, message_from_bytes
|
||||
from email.message import EmailMessage
|
||||
from email.generator import BytesGenerator
|
||||
from test.test_email import TestEmailBase, parameterize
|
||||
|
||||
|
@ -23,7 +24,10 @@ def dedent(bstr):
|
|||
|
||||
|
||||
@parameterize
|
||||
class TestInversion(TestEmailBase, unittest.TestCase):
|
||||
class TestInversion(TestEmailBase):
|
||||
|
||||
policy = policy.default
|
||||
message = EmailMessage
|
||||
|
||||
def msg_as_input(self, msg):
|
||||
m = message_from_bytes(msg, policy=policy.SMTP)
|
||||
|
@ -44,6 +48,23 @@ class TestInversion(TestEmailBase, unittest.TestCase):
|
|||
|
||||
}
|
||||
|
||||
payload_params = {
|
||||
'plain_text': dict(payload='This is a test\n'*20),
|
||||
'base64_text': dict(payload=(('xy a'*40+'\n')*5), cte='base64'),
|
||||
'qp_text': dict(payload=(('xy a'*40+'\n')*5), cte='quoted-printable'),
|
||||
}
|
||||
|
||||
def payload_as_body(self, payload, **kw):
|
||||
msg = self._make_message()
|
||||
msg['From'] = 'foo'
|
||||
msg['To'] = 'bar'
|
||||
msg['Subject'] = 'payload round trip test'
|
||||
msg.set_content(payload, **kw)
|
||||
b = bytes(msg)
|
||||
msg2 = message_from_bytes(b, policy=self.policy)
|
||||
self.assertEqual(bytes(msg2), b)
|
||||
self.assertEqual(msg2.get_content(), payload)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue