2013-08-21 51 views
0

学习LearnPythonTheHardway的练习52时,我需要编写用于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代码中,使用request(“/ 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") 
相关问题