@@ -372,7 +372,11 @@ def cmd_AUTHENTICATE(self, tag, args):
372
372
self ._send_tagged (tag , 'OK' , 'FAKEAUTH successful' )
373
373
def cmd_APPEND (self , tag , args ):
374
374
self ._send_textline ('+' )
375
- self .server .response = yield
375
+ self .server .response = args
376
+ literal = yield
377
+ self .server .response .append (literal )
378
+ literal = yield
379
+ self .server .response .append (literal )
376
380
self ._send_tagged (tag , 'OK' , 'okay' )
377
381
client , server = self ._setup (UTF8AppendServer )
378
382
self .assertEqual (client ._encoding , 'ascii' )
@@ -383,10 +387,13 @@ def cmd_APPEND(self, tag, args):
383
387
self .assertEqual (code , 'OK' )
384
388
self .assertEqual (client ._encoding , 'utf-8' )
385
389
msg_string = 'Subject: üñí©öðé'
386
- typ , data = client .append (None , None , None , msg_string .encode ('utf-8' ))
390
+ typ , data = client .append (
391
+ None , None , None , (msg_string + '\n ' ).encode ('utf-8' ))
387
392
self .assertEqual (typ , 'OK' )
388
393
self .assertEqual (server .response ,
389
- ('UTF8 (%s)\r \n ' % msg_string ).encode ('utf-8' ))
394
+ ['INBOX' , 'UTF8' ,
395
+ '(~{25}' , ('%s\r \n ' % msg_string ).encode ('utf-8' ),
396
+ b')\r \n ' ])
390
397
391
398
def test_search_disallows_charset_in_utf8_mode (self ):
392
399
class UTF8Server (SimpleIMAPHandler ):
@@ -881,7 +888,11 @@ def test_enable_UTF8_True_append(self):
881
888
class UTF8AppendServer (self .UTF8Server ):
882
889
def cmd_APPEND (self , tag , args ):
883
890
self ._send_textline ('+' )
884
- self .server .response = yield
891
+ self .server .response = args
892
+ literal = yield
893
+ self .server .response .append (literal )
894
+ literal = yield
895
+ self .server .response .append (literal )
885
896
self ._send_tagged (tag , 'OK' , 'okay' )
886
897
887
898
with self .reaped_pair (UTF8AppendServer ) as (server , client ):
@@ -895,12 +906,12 @@ def cmd_APPEND(self, tag, args):
895
906
self .assertEqual (client ._encoding , 'utf-8' )
896
907
msg_string = 'Subject: üñí©öðé'
897
908
typ , data = client .append (
898
- None , None , None , msg_string .encode ('utf-8' ))
909
+ None , None , None , ( msg_string + ' \n ' ) .encode ('utf-8' ))
899
910
self .assertEqual (typ , 'OK' )
900
- self .assertEqual (
901
- server . response ,
902
- ( 'UTF8 (%s) \r \n ' % msg_string ).encode ('utf-8' )
903
- )
911
+ self .assertEqual (server . response ,
912
+ [ 'INBOX' , 'UTF8' ,
913
+ '(~{25}' , ( '%s \r \n ' % msg_string ).encode ('utf-8' ),
914
+ b') \r \n ' ] )
904
915
905
916
# XXX also need a test that makes sure that the Literal and Untagged_status
906
917
# regexes uses unicode in UTF8 mode instead of the default ASCII.
0 commit comments