@@ -311,7 +311,11 @@ def cmd_AUTHENTICATE(self, tag, args):
311
311
self ._send_tagged (tag , 'OK' , 'FAKEAUTH successful' )
312
312
def cmd_APPEND (self , tag , args ):
313
313
self ._send_textline ('+' )
314
- self .server .response = yield
314
+ self .server .response = args
315
+ literal = yield
316
+ self .server .response .append (literal )
317
+ literal = yield
318
+ self .server .response .append (literal )
315
319
self ._send_tagged (tag , 'OK' , 'okay' )
316
320
client , server = self ._setup (UTF8AppendServer )
317
321
self .assertEqual (client ._encoding , 'ascii' )
@@ -322,10 +326,13 @@ def cmd_APPEND(self, tag, args):
322
326
self .assertEqual (code , 'OK' )
323
327
self .assertEqual (client ._encoding , 'utf-8' )
324
328
msg_string = 'Subject: üñí©öðé'
325
- typ , data = client .append (None , None , None , msg_string .encode ('utf-8' ))
329
+ typ , data = client .append (
330
+ None , None , None , (msg_string + '\n ' ).encode ('utf-8' ))
326
331
self .assertEqual (typ , 'OK' )
327
332
self .assertEqual (server .response ,
328
- ('UTF8 (%s)\r \n ' % msg_string ).encode ('utf-8' ))
333
+ ['INBOX' , 'UTF8' ,
334
+ '(~{25}' , ('%s\r \n ' % msg_string ).encode ('utf-8' ),
335
+ b')\r \n ' ])
329
336
330
337
def test_search_disallows_charset_in_utf8_mode (self ):
331
338
class UTF8Server (SimpleIMAPHandler ):
@@ -759,7 +766,11 @@ def test_enable_UTF8_True_append(self):
759
766
class UTF8AppendServer (self .UTF8Server ):
760
767
def cmd_APPEND (self , tag , args ):
761
768
self ._send_textline ('+' )
762
- self .server .response = yield
769
+ self .server .response = args
770
+ literal = yield
771
+ self .server .response .append (literal )
772
+ literal = yield
773
+ self .server .response .append (literal )
763
774
self ._send_tagged (tag , 'OK' , 'okay' )
764
775
765
776
with self .reaped_pair (UTF8AppendServer ) as (server , client ):
@@ -773,12 +784,12 @@ def cmd_APPEND(self, tag, args):
773
784
self .assertEqual (client ._encoding , 'utf-8' )
774
785
msg_string = 'Subject: üñí©öðé'
775
786
typ , data = client .append (
776
- None , None , None , msg_string .encode ('utf-8' ))
787
+ None , None , None , ( msg_string + ' \n ' ) .encode ('utf-8' ))
777
788
self .assertEqual (typ , 'OK' )
778
- self .assertEqual (
779
- server . response ,
780
- ( 'UTF8 (%s) \r \n ' % msg_string ).encode ('utf-8' )
781
- )
789
+ self .assertEqual (server . response ,
790
+ [ 'INBOX' , 'UTF8' ,
791
+ '(~{25}' , ( '%s \r \n ' % msg_string ).encode ('utf-8' ),
792
+ b') \r \n ' ] )
782
793
783
794
# XXX also need a test that makes sure that the Literal and Untagged_status
784
795
# regexes uses unicode in UTF8 mode instead of the default ASCII.
0 commit comments