2010-10-29 2 views
0

Я бегу django на витой. У меня есть специальная переменная, которую мой движок передается каждому запросу. Возьмите loook на следующий код:Django Testing - Как мне это сделать сейчас?

# Django setup 
sys.path.append("shoout_web") 
os.environ['DJANGO_SETTINGS_MODULE'] = 'shoout_web.settings' 
from django.core.handlers.wsgi import WSGIHandler 

def wsgi_resource(): 
    pool = threadpool.ThreadPool() 
    pool.start() 
    # Allow Ctrl-C to get you out cleanly: 
    reactor.addSystemEventTrigger('after', 'shutdown', pool.stop) 

    generic = WSGIHandler() 
    def wrapper(environ, start_response): 
     environ['engine'] = engine 
     return generic(environ, start_response) 

    wsgi_resource = wsgi.WSGIResource(reactor, pool, wrapper) 
    return wsgi_resource 

wsgi_root = wsgi_resource() 

reactor.listenTCP(DJANGO_PORT, server.Site(wsgi_root, logPath=os.path.join(log_dir, '.django.log'))) 

Обратите внимание на строку «ENVIRON [„двигатель“] = двигатель» Прямо сейчас я заинтересован в письменном тесте все мои просмотры Джанго. Как мне это сделать?

Sample функция просмотра:

def push_message(request): 
    engine = request.META['engine'] 
    if request.method == "POST": 
     user_hexid = request.session['user_hexid'] 
     room_hexid = request.POST['room_hexid'] 
     message_body = request.POST['message_body'] 
     ret = blockingCallFromThread(reactor, engine.push_public_message, user_hexid, room_hexid, message_body) 
     return HttpResponse(cjson.encode({'thread_hexid':ret})) 

EDIT: Просто чтобы прояснить некоторые сомнения: Я не думаю, что я могу поставить этот двигатель в настройках, потому что двигатель на самом деле скрученная сервер, который является прослушивает определенный порт

ответ

0

Видимо это не документирована, но от глядя на test client кода, вы можете передать дополнительные ключи окружат, используя настройки по умолчанию ключевое слово аргумент:

client = Client(defaults={'engine': engine}) 
Смежные вопросы