Всем привет, написал скрипт для подключения к telnet, хочу его протестировать но есть одна проблема, тест я написал, но тест останавливается в setUpClass и дальше ничего не выполняет, вот код теста
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
import SocketServer
from argparse import Namespace
from telnetsrv.threaded import TelnetHandler, command
from app.telnet import telnet
def args(cmd, host='localhost', user='a', password='a', port=10023):
    return Namespace(host=host, user=user, password=password, cmd=cmd, port=port)
class TelnetServer(SocketServer.TCPServer):
    allow_reuse_address = True
class MyHandler(TelnetHandler):
    @command('version')
    def version(self, params):
        self.writeresponse("V1.0")
    authNeedUser = True
    authNeedPass = True
    def authCallback(self, username, password):
        if username != "a" or password != 'a':
            raise RuntimeError('Wrong password!')
class TelnetTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.server = TelnetServer(("localhost", 10023), MyHandler)
        try:
            cls.server.serve_forever()
        except KeyboardInterrupt:
            print("Exiting telnet server")
    @classmethod
    def tearDownClass(cls):
        cls.server.close()
    def test_telnet(self):
        res = telnet(args("version"))
        print( res.run() )
        self.assertEqual(1, 1)
if __name__ == "__main__":
    unittest.main()
как видно я сначала хочу понять сервер, а потом выполнить тест, сделать это нужно в одном тесте, 
т.е. проблема такая, запускаю я тест он создает сервер и все, дальше так и висит, если попробовать сделать подключение к созданному серверу из другого терминала то все ок, но как сделать так чтобы оно все было в рамках одного скрипта?, пробовал делать так 
threading.Thread(target=cls.server.serve_forever).start()
т.е. запускать в отдельном потоке, но результата нет, прошу не очень ругать так как питон начал изучать не так давно)))