예제 #1
0
 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)
예제 #2
0
 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')
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
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))
예제 #6
0
 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')
예제 #7
0
 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)
예제 #8
0
 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, ())
예제 #9
0
 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, ())
예제 #10
0
 def _test_attr_ro(self, attr):
     h = header.HeaderFactory()('subject', 'this is a test')
     with self.assertRaises(AttributeError):
         setattr(h, attr, 'foo')
예제 #11
0
 def test_no_value_is_defect(self):
     h = header.HeaderFactory()('date', '')
     self.assertEqual(len(h.defects), 1)
     self.assertIsInstance(h.defects[0], errors.HeaderMissingRequiredValue)
예제 #12
0
 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, ())
예제 #13
0
 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')
예제 #14
0
 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')
예제 #15
0
 def test_groups_read_only(self):
     h = header.HeaderFactory()('sender', '*****@*****.**')
     self.assertIsInstance(h.addresses, tuple)
     with self.assertRaises(AttributeError):
         h.groups = 'foo'
예제 #16
0
 def test_substr(self):
     h = header.HeaderFactory()('subject', 'this is a test')
     self.assertEqual(h[5:7], 'is')
예제 #17
0
 def test_address_read_only(self):
     h = header.HeaderFactory()('sender', '*****@*****.**')
     with self.assertRaises(AttributeError):
         h.address = 'foo'
예제 #18
0
 def test_datetime_read_only(self):
     h = header.HeaderFactory()('date', self.datestring)
     with self.assertRaises(AttributeError):
         h.datetime = 'foo'
예제 #19
0
 def test_has_name(self):
     h = header.HeaderFactory()('subject', 'this is a test')
     self.assertEqual(h.name, 'subject')
예제 #20
0
 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, ())