python-gae-sessions和鼻子错误

在将gae会话添加到相对成熟的GAE应用程序时,我遇到了一些问题.我仔细阅读了自述文件,并观看了演示.

首先,仅在将gaesesions目录添加到我的应用程序时,使用鼻子和鼻子-gae运行测试时会导致以下错误:

Exception ImportError: 'No module named threading' in <bound method local.__del__ of <_threading_local.local object at 0x103e10628>> ignored

所有测试都运行良好,因此不是一个大问题,但表明存在某些问题.

接下来,如果我添加以下两行代码:

from gaesessions import get_current_session
session = get_current_session()

并运行测试,然后出现以下错误:

Traceback (most recent call last):
  File "/Users/.../unit_tests.py", line 1421, in testParseFBRequest
    data = tasks.parse_fb_request(sr)
  File "/Users/.../tasks.py", line 220, in parse_fb_request
    session = get_current_session()
  File "/Users/.../gaesessions/__init__.py", line 36, in get_current_session
    return _tls.current_session
  File "/Library/.../python2.7/_threading_local.py", line 193, in __getattribute__
    return object.__getattribute__(self, name)
AttributeError: 'local' object has no attribute 'current_session'

在开发服务器上不会发生此错误.

任何解决上述问题的建议将不胜感激.

解决方法:

我遇到了同样的问题.问题似乎是gae测试平台的行为与开发服务器的行为不同.我不知道具体细节,但最终通过添加解决了

def setUp(self):
  testbed.Testbed().activate()
  # after activating the testbed:
  from gaesessions import Session, set_current_session
  set_current_session(Session())
上一篇:鼻子测试冻结在raw_input


下一篇:继承鼻子测试的基类