@@ -227,6 +227,7 @@ def cmd_IDLE(self, tag, args):
227227 self ._send_line (b'* 1 RECENT' )
228228 r = yield
229229 if r == b'DONE\r \n ' :
230+ self ._send_line (b'* 9 RECENT' )
230231 self ._send_tagged (tag , 'OK' , 'Idle completed' )
231232 else :
232233 self ._send_tagged (tag , 'BAD' , 'Expected DONE' )
@@ -552,9 +553,11 @@ def test_idle_iter(self):
552553 # iteration should have consumed untagged responses
553554 _ , data = client .response ('EXISTS' )
554555 self .assertEqual (data , [None ])
555- # responses not iterated should remain after idle
556+ # responses not iterated should be available after idle
556557 _ , data = client .response ('RECENT' )
557- self .assertEqual (data , [b'1' ])
558+ self .assertEqual (data [0 ], b'1' )
559+ # responses received after 'DONE' should be available after idle
560+ self .assertEqual (data [1 ], b'9' )
558561
559562 def test_idle_burst (self ):
560563 client , _ = self ._setup (IdleCmdHandler )
@@ -565,7 +568,7 @@ def test_idle_burst(self):
565568 self .assertEqual (len (batch ), 4 )
566569 # burst() should not have consumed later responses
567570 _ , data = client .response ('RECENT' )
568- self .assertEqual (data , [b'1' ])
571+ self .assertEqual (data , [b'1' , b'9' ])
569572
570573 def test_login (self ):
571574 client , _ = self ._setup (SimpleIMAPHandler )
0 commit comments