Testing IMAPlib method even setup fails

Hi, I am trying to write a test for new method for IMAPLib, but I cannot even create basic message in the mocked IMAP server.

def test_move_messages(self):
    from email.message import EmailMessage

    class MoveServer(SimpleIMAPHandler):
        capabilities = 'ENABLE UTF8=ACCEPT'

        def cmd_ENABLE(self, tag, args):
            self._send_tagged(tag, 'OK', 'ENABLE successful')

        def cmd_AUTHENTICATE(self, tag, args):
            self._send_textline('+')
            self.server.response = yield
            self._send_tagged(tag, 'OK', 'FAKEAUTH successful')

        def cmd_APPEND(self, tag, args):
            self._send_textline('+')
            self.server.response = yield
            self._send_tagged(tag, 'OK', 'okay')

        def cmd_CREATE(self, tag, args):
            self._send_textline('* CREATE ' + args[0])
            self._send_tagged(tag, 'OK', 'okay')

        def cmd_MOVE(self, tag, args):
            self._send_textline('* MOVE ' + args[0])
            self._send_tagged(tag, 'OK', 'okay')

        def cmd_SELECT(self, tag, args):
            self.server.is_selected = True
            self._send_textline('* 2 EXISTS')
            self._send_tagged(tag, 'OK', '[READ-WRITE] SELECT completed.')

    client, _ = self._setup(MoveServer)
    typ, data = client.login('user', 'pass')
    typ, data = client.create('source')
    typ, data = client.create('target')
    typ, data = client.select('source')

    msg = EmailMessage()
    msg['Subject'] = 'Test message'
    msg['From'] = 'test@example.com'
    msg['To'] = 'testee@example.com'
    msg.set_content('This is a testing message')
    print(f'=========================\nmsg:\n{msg}=============')
    typ, data = client.append('source', None, None, msg.as_bytes())
    typ, data = client.search(None, 'ALL')  # HERE IT FAILS


    typ, data = client.move_messages('target', data[0])
    self.assertEqual(typ, 'OK')
    typ, data = client.search(None, 'target', 'ALL')
    self.assertEqual(typ, 'OK')
    self.assertEqual(int(data[0]), 1)

leads to this:

    cpython@stitny (33327_move_messages *+)$ ./python -m unittest test.test_imaplib.NewIMAPTests.test_move_messages
    SENT: b'* OK IMAP4rev1'
    GOT: b'DGCB0 CAPABILITY'
    SENT: b'* CAPABILITY IMAP4rev1 ENABLE UTF8=ACCEPT'
    SENT: b'DGCB0 OK CAPABILITY completed'
    GOT: b'DGCB1 LOGIN user "pass"'
    SENT: b'DGCB1 OK LOGIN completed'
    GOT: b'DGCB2 CAPABILITY'
    SENT: b'* CAPABILITY IMAP4rev1 ENABLE UTF8=ACCEPT'
    SENT: b'DGCB2 OK CAPABILITY completed'
    GOT: b'DGCB3 CREATE source'
    SENT: b'* CREATE source'
    SENT: b'DGCB3 OK okay'
    GOT: b'DGCB4 CREATE target'
    SENT: b'* CREATE target'
    SENT: b'DGCB4 OK okay'
    GOT: b'DGCB5 SELECT source'
    SENT: b'* 2 EXISTS'
    SENT: b'DGCB5 OK [READ-WRITE] SELECT completed.'
    =========================
    msg:
    Subject: Test message
    From: test@example.com
    To: testee@example.com
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: 7bit
    MIME-Version: 1.0
    
    This is a testing message
    =============
    GOT: b'DGCB6 APPEND source {195}'
    SENT: b'+'
    GOT: b'Subject: Test message'
    SENT: b'DGCB6 OK okay'
    GOT: b'From: test@example.com'
    SENT: b'From: BAD test@example.com unknown'
    GOT: b'To: testee@example.com'
    SENT: b'To: BAD testee@example.com unknown'
    GOT: b'Content-Type: text/plain; charset="utf-8"'
    SENT: b'Content-Type: BAD text/plain; unknown'
    ----------------------------------------
    Exception occurred during processing of request from ('127.0.0.1', 36260)
    Traceback (most recent call last):
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/socketserver.py", line 316, in _handle_request_noblock
        self.process_request(request, client_address)
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/socketserver.py", line 347, in process_request
        self.finish_request(request, client_address)
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/socketserver.py", line 360, in finish_request
        self.RequestHandlerClass(request, client_address, self)
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/socketserver.py", line 720, in __init__
        self.handle()
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/test/test_imaplib.py", line 178, in handle
        self._send_tagged(tag, 'BAD', cmd + ' unknown')
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/test/test_imaplib.py", line 136, in _send_tagged
        self._send_textline(' '.join((tag, code, message)))
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/test/test_imaplib.py", line 133, in _send_textline
        self._send_line(message.encode('ASCII'))
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/test/test_imaplib.py", line 130, in _send_line
        self._send(message + b'\r\n')
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/test/test_imaplib.py", line 127, in _send
        self.wfile.write(message)
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/socketserver.py", line 799, in write
        self._sock.sendall(b)
    BrokenPipeError: [Errno 32] Broken pipe
    ----------------------------------------
    E
    ======================================================================
    ERROR: test_move_messages (test.test_imaplib.NewIMAPTests)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/imaplib.py", line 1095, in _command_complete
        typ, data = self._get_tagged_response(tag, expect_bye=logout)
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/imaplib.py", line 1225, in _get_tagged_response
        self._get_response()
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/imaplib.py", line 1156, in _get_response
        raise self.abort("unexpected response: %r" % resp)
    imaplib.IMAP4.abort: unexpected response: b'From: BAD test@example.com unknown'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/test/test_imaplib.py", line 587, in test_move_messages
        typ, data = client.search(None, 'ALL')
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/imaplib.py", line 782, in search
        typ, dat = self._simple_command(name, *criteria)
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/imaplib.py", line 1282, in _simple_command
        return self._command_complete(name, self._command(name, *args))
      File "/home/matej/archiv/knihovna/repos/cpython/Lib/imaplib.py", line 1097, in _command_complete
        raise self.abort('command: %s => %s' % (name, val))
    imaplib.IMAP4.abort: command: SEARCH => unexpected response: b'From: BAD test@example.com unknown'
    
    ----------------------------------------------------------------------
    Ran 1 test in 0.025s
    
    FAILED (errors=1)
    cpython@stitny (33327_move_messages *+)$ 

    typ, data = client.move_messages('target', data[0])
    self.assertEqual(typ, 'OK')
    typ, data = client.search(None, 'target', 'ALL')
    self.assertEqual(typ, 'OK')
    self.assertEqual(int(data[0]), 1)

even when commenting out everything after the first client.search() call.

Any idea, what’s wrong? Does anybody here understand the intricacies of the test module?