2010-01-27 70 views
4

Django的测试服务器,因为我写它采用双绞线网络的服务请求的异步和Django的正常内容交付的应用程序,我认为这将是不错的通过相同的扭曲反应器下运行Django的WSGI接口。运行下扭曲网

我也想用Django提供的漂亮的测试服务器工具来测试我的应用程序。起初,我只是简单地创建了测试数据库并在反应堆下触发了WSGIHandler,但是这并不起作用,因为WSGIHandler在初始化过程中没有看到创建的测试数据库。

因此,我决定周围写工作并具有分贝创建并装载在第一请求,这是细用于测试服务器装置。下面是我使用(精简)脚本:

import os, sys 
import django.core.handlers.wsgi 

from django.core.management import call_command 
from django.db import connection 

from twisted.web.wsgi import WSGIResource 
from twisted.internet import reactor 
from twisted.web.server import Site 

sys.path.append('/path/to/myapp') 
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings' 

_app = django.core.handlers.wsgi.WSGIHandler() 
initialized = False 
fixtures = (...) # Put your fixtures path here 

def app(e,sr): 
    global initialized 

    if not initialized: 
    connection.creation.create_test_db(verbosity=1) 
    call_command('loaddata', *fixtures, verbosity=1) 
    initialized = True 

    return _app(e,sr) 

res = WSGIResource(reactor, reactor.getThreadPool(), app) 
factory = Site(res) 
reactor.listenTCP(8888, factory) 

    reactor.run() 

我知道这是一个黑客位的,所以如果你已经一个更好的解决方案,请在此报告。

谢谢。

回答