Пользовательский сервер RequestHandler во время Unittest.В соединении отказано - PullRequest
0 голосов
/ 02 октября 2018

У меня проблемы с порождением нового HTTP-сервера для тестирования запросов к серверу.В настоящее время он просто создает тестовую базу данных, но запрос застревает и никогда не отвечает, что приводит к необходимости вручную завершать процесс.RequestHandler - это пользовательский обработчик, и он прекрасно работает при тестировании его на моем док-контейнере через Postman, поэтому я знаю, что это не проблема.

ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it

Я не знаю, что делать с этим обязательноЭто.Может я что то не так делаю.Буду признателен за любые подсказки или, возможно, я неправильно выполняю модульное тестирование конечных точек API.Вот единственный тест на данный момент:

class ViewsTestSuite(unittest.TestCase):

    db_string = "sqlite:///unittest.db"
    engine = create_engine(db_string)
    Base = declarative_base()
    port = 8000
    server = HTTPServer(('', port), RequestHandler)

    def setUp(self):

        self.Base.metadata.drop_all(bind=self.engine)
        self.Base.metadata.create_all(self.engine)
        try:
            self.server.serve_forever()
        except KeyboardInterrupt:
            pass
        self.server.server_close()

    def tearDown(self):
        self.Base.metadata.drop_all(bind=self.engine)
        self.server.shutdown()

    def test_get_recipes(self):
        '''
            TEST FOR GET /recipes ENDPOINT. IT SHOULD RETURN 200
            AND A LIST OF RECIPE OBJECTS.
        '''
        # ADD request POST to include element in database
        r = requests.get('http://localhost:8000/recipes')
        recipes = [{
            "id": 1,
            'name': 'First Response',
            'prep_time': 400,
            "difficulty": 1,
            "vegeterian": True,
            "rating": 4.0
        }]
        self.assertEqual(r.json(), recipes)
        self.assertEqual(r.status_code, 200)

Спасибо, я был бы признателен за любую помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...