serg_small_developer
@serg_small_developer
Начинающий прогер

Как запустить telnet сервер и выполнить тест?

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

т.е. запускать в отдельном потоке, но результата нет, прошу не очень ругать так как питон начал изучать не так давно)))
  • Вопрос задан
  • 647 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы