Ticket #33: IMAPClient-fix-fetch.diff

File IMAPClient-fix-fetch.diff, 2.2 KB (added by menno, 2 years ago)

Fergal's patch (originally sent via email)

  • imapclient/imapclient.py

    diff -r 71ad4da899dc imapclient/imapclient.py
    a b  
    605605 
    606606            assert data.startswith('('), data 
    607607            data = data[1:] 
    608             if data.endswith(')'): 
    609                 data = data[:-1] 
    610  
    611608        else: 
    612609            msgid = None 
     610 
     611        if data.endswith(')'): 
     612            data = data[:-1] 
    613613 
    614614        for name, item in FetchTokeniser().process_pairs(data): 
    615615            name = name.upper() 
  • imapclient/test/test_FetchParser.py

    diff -r 71ad4da899dc imapclient/test/test_FetchParser.py
    a b  
    179179            ) 
    180180 
    181181    def testMultiTypesWithLiteral(self): 
     182        expected = {1: { 
     183                    'INTERNALDATE': datetime_to_native(datetime.datetime(2007, 2, 9, 
     184                                                                         17, 8, 8, 0, 
     185                                                                         FixedOffset(60))), 
     186                    'RFC822': 'Subject: test\r\n\r\nbody', 
     187                    } 
     188                } 
    182189        self._parse_test( 
    183190            [ 
    184191                ('1 (INTERNALDATE " 9-Feb-2007 17:08:08 +0100" RFC822 {21}', 
    185192                      'Subject: test\r\n\r\nbody'), 
    186193                ')' 
    187194                ], 
    188             {1: { 
    189                     'INTERNALDATE': datetime_to_native(datetime.datetime(2007, 2, 9, 
    190                                                                          17, 8, 8, 0, 
    191                                                                          FixedOffset(60))), 
    192                     'RFC822': 'Subject: test\r\n\r\nbody', 
    193                     } 
    194                 } 
     195            expected 
     196            ) 
     197        self._parse_test( 
     198            [ 
     199                ('1 (RFC822 {21}', 
     200                      'Subject: test\r\n\r\nbody'), 
     201                ' INTERNALDATE " 9-Feb-2007 17:08:08 +0100")' 
     202                ], 
     203            expected 
    195204            ) 
    196205 
    197206    def testLiteralsWithSections(self):