@@ -325,7 +325,11 @@ def cmd_AUTHENTICATE(self, tag, args):
325325 self ._send_tagged (tag , 'OK' , 'FAKEAUTH successful' )
326326 def cmd_APPEND (self , tag , args ):
327327 self ._send_textline ('+' )
328- self .server .response = yield
328+ self .server .response = args
329+ literal = yield
330+ self .server .response .append (literal )
331+ literal = yield
332+ self .server .response .append (literal )
329333 self ._send_tagged (tag , 'OK' , 'okay' )
330334 client , server = self ._setup (UTF8AppendServer )
331335 self .assertEqual (client ._encoding , 'ascii' )
@@ -336,10 +340,13 @@ def cmd_APPEND(self, tag, args):
336340 self .assertEqual (code , 'OK' )
337341 self .assertEqual (client ._encoding , 'utf-8' )
338342 msg_string = 'Subject: üñí©öðé'
339- typ , data = client .append (None , None , None , msg_string .encode ('utf-8' ))
343+ typ , data = client .append (
344+ None , None , None , (msg_string + '\n ' ).encode ('utf-8' ))
340345 self .assertEqual (typ , 'OK' )
341346 self .assertEqual (server .response ,
342- ('UTF8 (%s)\r \n ' % msg_string ).encode ('utf-8' ))
347+ ['INBOX' , 'UTF8' ,
348+ '(~{25}' , ('%s\r \n ' % msg_string ).encode ('utf-8' ),
349+ b')\r \n ' ])
343350
344351 def test_search_disallows_charset_in_utf8_mode (self ):
345352 class UTF8Server (SimpleIMAPHandler ):
@@ -764,7 +771,11 @@ def test_enable_UTF8_True_append(self):
764771 class UTF8AppendServer (self .UTF8Server ):
765772 def cmd_APPEND (self , tag , args ):
766773 self ._send_textline ('+' )
767- self .server .response = yield
774+ self .server .response = args
775+ literal = yield
776+ self .server .response .append (literal )
777+ literal = yield
778+ self .server .response .append (literal )
768779 self ._send_tagged (tag , 'OK' , 'okay' )
769780
770781 with self .reaped_pair (UTF8AppendServer ) as (server , client ):
@@ -778,12 +789,12 @@ def cmd_APPEND(self, tag, args):
778789 self .assertEqual (client ._encoding , 'utf-8' )
779790 msg_string = 'Subject: üñí©öðé'
780791 typ , data = client .append (
781- None , None , None , msg_string .encode ('utf-8' ))
792+ None , None , None , ( msg_string + ' \n ' ) .encode ('utf-8' ))
782793 self .assertEqual (typ , 'OK' )
783- self .assertEqual (
784- server . response ,
785- ( 'UTF8 (%s) \r \n ' % msg_string ).encode ('utf-8' )
786- )
794+ self .assertEqual (server . response ,
795+ [ 'INBOX' , 'UTF8' ,
796+ '(~{25}' , ( '%s \r \n ' % msg_string ).encode ('utf-8' ),
797+ b') \r \n ' ] )
787798
788799 # XXX also need a test that makes sure that the Literal and Untagged_status
789800 # regexes uses unicode in UTF8 mode instead of the default ASCII.
0 commit comments