@@ -373,7 +373,11 @@ def cmd_AUTHENTICATE(self, tag, args):
373373 self ._send_tagged (tag , 'OK' , 'FAKEAUTH successful' )
374374 def cmd_APPEND (self , tag , args ):
375375 self ._send_textline ('+' )
376- self .server .response = yield
376+ self .server .response = args
377+ literal = yield
378+ self .server .response .append (literal )
379+ literal = yield
380+ self .server .response .append (literal )
377381 self ._send_tagged (tag , 'OK' , 'okay' )
378382 client , server = self ._setup (UTF8AppendServer )
379383 self .assertEqual (client ._encoding , 'ascii' )
@@ -384,10 +388,13 @@ def cmd_APPEND(self, tag, args):
384388 self .assertEqual (code , 'OK' )
385389 self .assertEqual (client ._encoding , 'utf-8' )
386390 msg_string = 'Subject: üñí©öðé'
387- typ , data = client .append (None , None , None , msg_string .encode ('utf-8' ))
391+ typ , data = client .append (
392+ None , None , None , (msg_string + '\n ' ).encode ('utf-8' ))
388393 self .assertEqual (typ , 'OK' )
389394 self .assertEqual (server .response ,
390- ('UTF8 (%s)\r \n ' % msg_string ).encode ('utf-8' ))
395+ ['INBOX' , 'UTF8' ,
396+ '(~{25}' , ('%s\r \n ' % msg_string ).encode ('utf-8' ),
397+ b')\r \n ' ])
391398
392399 def test_search_disallows_charset_in_utf8_mode (self ):
393400 class UTF8Server (SimpleIMAPHandler ):
@@ -887,7 +894,11 @@ def test_enable_UTF8_True_append(self):
887894 class UTF8AppendServer (self .UTF8Server ):
888895 def cmd_APPEND (self , tag , args ):
889896 self ._send_textline ('+' )
890- self .server .response = yield
897+ self .server .response = args
898+ literal = yield
899+ self .server .response .append (literal )
900+ literal = yield
901+ self .server .response .append (literal )
891902 self ._send_tagged (tag , 'OK' , 'okay' )
892903
893904 with self .reaped_pair (UTF8AppendServer ) as (server , client ):
@@ -901,12 +912,12 @@ def cmd_APPEND(self, tag, args):
901912 self .assertEqual (client ._encoding , 'utf-8' )
902913 msg_string = 'Subject: üñí©öðé'
903914 typ , data = client .append (
904- None , None , None , msg_string .encode ('utf-8' ))
915+ None , None , None , ( msg_string + ' \n ' ) .encode ('utf-8' ))
905916 self .assertEqual (typ , 'OK' )
906- self .assertEqual (
907- server . response ,
908- ( 'UTF8 (%s) \r \n ' % msg_string ).encode ('utf-8' )
909- )
917+ self .assertEqual (server . response ,
918+ [ 'INBOX' , 'UTF8' ,
919+ '(~{25}' , ( '%s \r \n ' % msg_string ).encode ('utf-8' ),
920+ b') \r \n ' ] )
910921
911922 # XXX also need a test that makes sure that the Literal and Untagged_status
912923 # regexes uses unicode in UTF8 mode instead of the default ASCII.
0 commit comments