测试django + tornado应用程序的异步功能



我正在使用django-on-tornado构建一个类似于建议的聊天应用程序的应用程序。所有的教程都集中在如何在龙卷风服务器上运行django应用程序,但是我如何测试依赖于龙卷风的异步功能?

我当前的测试执行以下操作:

  • 启动一个休眠一段时间的线程,然后发送一个聊天消息
  • 执行请求请求消息
  • 当请求结束时,检查消息是否到达并且经过的时间是否与线程睡眠时间兼容

当我运行测试(与manage.py测试)时,我得到一个"AttributeError: 'WSGIRequest'对象没有属性'_tornado_handler'",这是预期的,因为请求的_tornado_handler属性在runtornado命令中设置。

是否有办法使这个设置,以便我可以测试异步功能?我使用nose和django_nose插件进行测试。

实际上Django -on- Tornado无论如何都不会改变Django的manage.py test命令,所以Tornado只能通过runtornado调用。您需要在manage.py中添加一个类似"testtornado"的命令,其实现类似于https://github.com/koblas/django-on-tornado/blob/master/myproject/django_tornado/management/commands/runtornado.py—它应该设置_tornado_handler并继续启动您的测试代码。

最新更新