Ticket #20: additional_headers2.patch

File additional_headers2.patch, 3.4 kB (added by fs, 1 year ago)

I fixed the Message class so now the use of lists is working, too. Apply this patch after applying the first one

  • turbomail_tests/basic_tests.py

     
    9090        self.failIf(msg.has_key('Old-Return-Path')) 
    9191        self.failIf(msg.has_key('Return-Path')) 
    9292 
    93     def test_add_custom_headers(self): 
    94         "Test that custom headers can be attached." 
     93    def test_add_custom_headers_dict(self): 
     94        "Test that custom headers (dict type) can be attached." 
    9595        extra_headers = {'Precendence': 'bulk', 'X-User': 'Alice'} 
    9696        message = turbomail.Message('sender@foo.example',  
    9797                                    'recipient@foo.example', 'foo bar') 
     
    104104            self.failUnless(msg.has_key(header_name)) 
    105105            self.assertEquals(extra_headers[header_name], msg[header_name]) 
    106106 
     107    def test_add_custom_headers_tuple(self): 
     108        "Test that a custom header (tuple type) can be attached." 
     109        extra_headers = (('Precendence', 'bulk'), ('X-User', 'Alice')) 
     110        message = turbomail.Message('sender@foo.example',  
     111                                    'recipient@foo.example', 'foo bar') 
     112        message.plain = 'Hello World!' 
     113        message.headers = extra_headers 
     114        turbomail.enqueue(message) 
     115        msginfo = get_received_mail(self.sink) 
     116        msg = email.message_from_string(msginfo['mail'])  
     117        for name, value in extra_headers: 
     118            self.failUnless(msg.has_key(name)) 
     119            self.assertEquals(value, msg[name]) 
     120 
     121    def test_add_custom_headers_list(self): 
     122        "Test that a custom header (list type) can be attached." 
     123        extra_headers = [('Precendence', 'bulk'), ('X-User', 'Alice')] 
     124        message = turbomail.Message('sender@foo.example',  
     125                                    'recipient@foo.example', 'foo bar') 
     126        message.plain = 'Hello World!' 
     127        message.headers = extra_headers 
     128        turbomail.enqueue(message) 
     129        msginfo = get_received_mail(self.sink) 
     130        msg = email.message_from_string(msginfo['mail'])  
     131        for name, value in extra_headers: 
     132            self.failUnless(msg.has_key(name)) 
     133            self.assertEquals(value, msg[name]) 
     134 
  • turbomail/documentation/guide.wiki

     
    109109 * `date` -- The Date header. 
    110110 * `disposition` -- Request disposition notification be sent to this address. 
    111111 * `encoding` -- Content encoding specific to this message. 
    112  * `headers` -- A dictionary or a tuple with additional headers. 
     112 * `headers` -- Additional headers for this message (dict, list or tuple of tuples/lists) 
    113113 * `organization` -- The descriptive Organization header. 
    114114 * `plain` -- Plain text content.  Can be automatically generated. 
    115115 * `priority` -- The X-Priority header, in the range of 1-5. 
  • turbomail/turbomail/message.py

     
    300300 
    301301                message.add_header('X-Mailer', "TurboMail TurboGears Extension v.%s" % release.version) 
    302302                 
    303                 if type(self.headers) == type(()): 
     303                if type(self.headers) in [type(()), type([])]: 
    304304                        for header in self.headers: 
    305305                                if type(header) in [type(()), type([])]: 
    306306                                        message.add_header(*header)