0

在学习LearnPythonTheHardway的练习52时,我需要为web.py服务器的自动化测试编写代码。在 app.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")
4

1 回答 1

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")
于 2013-08-24T18:16:15.877 回答