Changeset 147:78f3eda1c1f0 for imapclient
- Timestamp:
- 05/05/10 13:27:39 (2 years ago)
- Branch:
- default
- Location:
- imapclient
- Files:
-
- 2 modified
-
imap_utf7.py (modified) (1 diff)
-
test/test_imap_utf7.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
imapclient/imap_utf7.py
r62 r147 24 24 25 25 26 class FolderNameError(ValueError): 27 pass 28 29 26 30 def encode(s): 31 if isinstance(s, str) and sum(n for n in (ord(c) for c in s) if n > 127): 32 raise FolderNameError("%r contains characters not valid in a str folder name. " 33 "Convert to unicode first?" % s) 34 27 35 r = [] 28 36 _in = [] -
imapclient/test/test_imap_utf7.py
r146 r147 23 23 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24 24 25 from imapclient.imap_utf7 import decode, encode 25 from imapclient.imap_utf7 import decode, encode, FolderNameError 26 26 import unittest 27 27 … … 38 38 [u'~peter/mail/\u65e5\u672c\u8a9e/\u53f0\u5317', 39 39 '~peter/mail/&ZeVnLIqe-/&U,BTFw-'], # example from RFC 2060 40 ['\x00foo', '&AAA-foo'], 40 41 ] 41 42 … … 48 49 for (input, output) in self.tests: 49 50 self.assertEquals(input, decode(output)) 51 52 53 def test_illegal_chars(self): 54 not_valid_as_str = [ 55 'blah' + chr(0x80) + 'sne', 56 chr(0xaa) + 'foo', 57 'blah' + chr(0xff) + 'sne'] 58 59 for name in not_valid_as_str: 60 self.assertRaises(FolderNameError, encode, name) 61 62 unicode_names = [unicode(name, 'latin-1') for name in not_valid_as_str] 63 for name in unicode_names: 64 assert isinstance(encode(name), str) 50 65 51 66 … … 62 77 self.failUnlessEqual(decode('&-'), '&') 63 78 79 80 def test_FolderNameError_super(self): 81 self.assert_(issubclass(FolderNameError, ValueError)) 82 83 64 84 if __name__ == '__main__': 65 85 unittest.main()
