def test_defects_is_tuple(self): h = header.HeaderFactory()('subject', 'this is a test') self.assertEqual(len(h.defects), 0) self.assertIsInstance(h.defects, tuple) # Make sure it is still true when there are defects. h = header.HeaderFactory()('date', '') self.assertEqual(len(h.defects), 1) self.assertIsInstance(h.defects, tuple)
def test_value(self): h = header.HeaderFactory()('subject', 'this is a test') self.assertEqual(h.value, 'this is a test') h = header.HeaderFactory()('subject', 'this is a test', 'unfolded value', use_decoded=True) self.assertEqual(h.value, 'unfolded value')
def test_folded_value_alone_auto_decoded_with_warning(self): value = self.NL.join(['this is', ' a test']) with self.assertWarnsRegex(DeprecationWarning, "linesep"): h = header.HeaderFactory()('subject', value) self.assertEqual(h, value) self.assertEqual(h.value, 'this is a test') self.assertIsNone(h.source)
def test_RFC2047_value_alone_auto_decoded_with_warning(self): value = '=?utf-8?q?this_is_a_test?=' with self.assertWarnsRegex(DeprecationWarning, "encoded word"): h = header.HeaderFactory()('subject', value) self.assertEqual(h, value) self.assertEqual(h.value, 'this is a test') self.assertIsNone(h.source)
class TestPickleCopyHeader(TestEmailBase): unstructured = header.HeaderFactory()('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 = header.HeaderFactory()('from', '*****@*****.**') 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))
def test_simple_address_list(self): value = ('Fred <*****@*****.**>, [email protected], ' '"Harry W. Hastings" <*****@*****.**>') h = header.HeaderFactory()('to', value, value) self.assertEqual(h, value) self.assertEqual(h.value, value) self.assertEqual(h.source, value) self.assertEqual(len(h.groups), 3) self.assertEqual(len(h.addresses), 3) self.assertEqual(h.groups[0], 'Fred <*****@*****.**>') self.assertEqual(h.groups[1], '*****@*****.**') self.assertEqual(h.groups[2], '"Harry W. Hastings" <*****@*****.**>') self.assertEqual(h.addresses[2].name, 'Harry W. Hastings')
def _test_single_addr(self, source, unfolded, decoded, defects, reformatted, name, addr_spec, username, domain, comment): h = header.HeaderFactory()('sender', source, unfolded, use_decoded=True) self.assertEqual(h, decoded) self.assertEqual(h.source, source) self.assertEqual(h.value, decoded) self.assertDefectsEqual(h.defects, defects) a = h.address self.assertEqual([a], list(h.groups)) self.assertEqual([a], list(h.addresses)) self.assertEqual(a.reformatted, reformatted) self.assertEqual(a.name, name) self.assertEqual(a.addr_spec, addr_spec) self.assertEqual(a.username, username) self.assertEqual(a.domain, domain)
def test_date_header_properties(self): h = header.HeaderFactory()('date', self.datestring) self.assertIsInstance(h, header.UniqueDateHeader) self.assertEqual(h.max_count, 1) self.assertEqual(h.defects, ())
def test_resent_date_header_properties(self): h = header.HeaderFactory()('resent-date', self.datestring) self.assertIsInstance(h, header.DateHeader) self.assertEqual(h.max_count, None) self.assertEqual(h.defects, ())
def _test_attr_ro(self, attr): h = header.HeaderFactory()('subject', 'this is a test') with self.assertRaises(AttributeError): setattr(h, attr, 'foo')
def test_no_value_is_defect(self): h = header.HeaderFactory()('date', '') self.assertEqual(len(h.defects), 1) self.assertIsInstance(h.defects[0], errors.HeaderMissingRequiredValue)
def test_set_from_datetime(self): h = header.HeaderFactory()('date', self.dt) self.assertEqual(h, self.datestring) self.assertEqual(h.datetime, self.dt) self.assertEqual(h.defects, ())
def test_source(self): h = header.HeaderFactory()('subject', 'this is a test') self.assertIsNone(h.source) h = header.HeaderFactory()('subject', 'this is a test', 'unfolded value') self.assertEqual(h.source, 'this is a test')
def test_str(self): h = header.HeaderFactory()('subject', 'this is a test') self.assertIsInstance(h, str) self.assertEqual(h, 'this is a test') self.assertEqual(str(h), 'this is a test')
def test_groups_read_only(self): h = header.HeaderFactory()('sender', '*****@*****.**') self.assertIsInstance(h.addresses, tuple) with self.assertRaises(AttributeError): h.groups = 'foo'
def test_substr(self): h = header.HeaderFactory()('subject', 'this is a test') self.assertEqual(h[5:7], 'is')
def test_address_read_only(self): h = header.HeaderFactory()('sender', '*****@*****.**') with self.assertRaises(AttributeError): h.address = 'foo'
def test_datetime_read_only(self): h = header.HeaderFactory()('date', self.datestring) with self.assertRaises(AttributeError): h.datetime = 'foo'
def test_has_name(self): h = header.HeaderFactory()('subject', 'this is a test') self.assertEqual(h.name, 'subject')
def test_parse_date(self): h = header.HeaderFactory()('date', self.datestring) self.assertEqual(h, self.datestring) self.assertEqual(h.datetime, self.dt) self.assertEqual(h.datetime.utcoffset(), self.utcoffset) self.assertEqual(h.defects, ())