2013-08-21 1 views
0

Изучая упражнение 52 LearnPythonTheHardway, мне нужно запрограммировать автоматическое тестирование для сервера web.py. В app.py, я просто поставил функцию:Как инициализировать сеанс на основе web.py в тестовом коде?

app = web.application(urls, globals()) 
if web.config.get('_session') is None: 
    store = web.session.DiskStore('sessions') 
    init = {'room': None, 'count': 100} 
    session = web.session.Session(app, store, initializer=init) 
    web.config._session = session 
else: 
    session = web.config._session 

class count: 
    def GET(self): 
     print 'session', session 
     session.count += 1 
     return session.count 

В app_test.py, как я могу инициализировать сеанс, чтобы проверить состояние приложения? Следующие коды не работают должным образом. Session.count не 51, как я хочу, чтобы это было, но всегда 101.

session.count = 50 
resp = app.request("/count") 
assert_equal(resp.data, "51") 

ответ

0

От zhihu.com (китайский аналог Quora) Я получил разрешение.

Просто получите значение из web.input(), чтобы установить начальный статус в app.py. В коде app_test.py используйте запрос («/ count? XX = XX»), чтобы перенести исходный статус для проверки различных ситуаций.

class count: 
    def GET(self): 
    initcount = web.input(i='') 
    if init != '': 
     session.count = int(initcount) 

    session.count += 1 
    return session.count 

и в test.py:

resp = app.request("/initcount?i=50") 
assert_equal(resp.data, "51")