mirror of https://github.com/python/cpython
58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
import unittest
|
|
import textwrap
|
|
import copy
|
|
import pickle
|
|
from email import policy
|
|
from email import message_from_string
|
|
from email._headerregistry import HeaderRegistry
|
|
from test.test_email import TestEmailBase
|
|
|
|
class TestPickleCopyHeader(TestEmailBase):
|
|
|
|
unstructured = HeaderRegistry()('subject', 'this is a test')
|
|
|
|
def test_deepcopy_unstructured(self):
|
|
h = copy.deepcopy(self.unstructured)
|
|
self.assertEqual(str(h), str(self.unstructured))
|
|
|
|
def test_pickle_unstructured(self):
|
|
p = pickle.dumps(self.unstructured)
|
|
h = pickle.loads(p)
|
|
self.assertEqual(str(h), str(self.unstructured))
|
|
|
|
address = HeaderRegistry()('from', 'frodo@mordor.net')
|
|
|
|
def test_deepcopy_address(self):
|
|
h = copy.deepcopy(self.address)
|
|
self.assertEqual(str(h), str(self.address))
|
|
|
|
def test_pickle_address(self):
|
|
p = pickle.dumps(self.address)
|
|
h = pickle.loads(p)
|
|
self.assertEqual(str(h), str(self.address))
|
|
|
|
|
|
class TestPickleCopyMessage(TestEmailBase):
|
|
|
|
testmsg = message_from_string(textwrap.dedent("""\
|
|
From: frodo@mordor.net
|
|
To: bilbo@underhill.org
|
|
Subject: help
|
|
|
|
I think I forgot the ring.
|
|
"""), policy=policy.default)
|
|
|
|
def test_deepcopy(self):
|
|
msg2 = copy.deepcopy(self.testmsg)
|
|
self.assertEqual(msg2.as_string(), self.testmsg.as_string())
|
|
|
|
def test_pickle(self):
|
|
p = pickle.dumps(self.testmsg)
|
|
msg2 = pickle.loads(p)
|
|
self.assertEqual(msg2.as_string(), self.testmsg.as_string())
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|