Тестирование асинхронных возможностей приложения django + tornado - PullRequest
1 голос
/ 02 августа 2011

Я использую django-on-tornado , чтобы создать приложение, похожее на предложенное приложение чата. Все учебные пособия посвящены тому, как запустить приложение django на сервере торнадо, но как я могу протестировать асинхронную функцию, которая зависит от торнадо?

Мой текущий тест выполняет следующее:

  • Запускает тему, которая спит в течение некоторого времени, после чего отправляет сообщение чата
  • Сделать запрос на запрос сообщений
  • Когда запрос закончится, убедитесь, что пришло сообщение и что прошедшее время совместимо с временем ожидания потока

Когда я запускаю тест (с тестом manage.py), я получаю объект «AttributeError:« WSGIRequest »не имеет атрибута« _tornado_handler »», что ожидается, поскольку свойство _tornado_handler запроса установлено в команде runtornado .

Есть ли способ сделать эту настройку, чтобы я мог проверить асинхронную функцию? Я использую нос с плагином django_nose для тестов.

1 Ответ

0 голосов
/ 09 ноября 2011

На самом деле django-on-tornado никоим образом не изменяет команду Django теста manage.py test , поэтому торнадо вызывается только через runtornado . Вам нужно будет добавить команду к manage.py, который называется что-то вроде «testtornado» с реализацией, похожей на https://github.com/koblas/django-on-tornado/blob/master/myproject/django_tornado/management/commands/runtornado.py - он должен настроить _tornado_handler и продолжить запуск тестового кода.

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