Всем привет, написал скрипт для подключения к 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()
т.е. запускать в отдельном потоке, но результата нет, прошу не очень ругать так как питон начал изучать не так давно)))