我在向相对成熟的GAE应用添加gae-sessions时遇到了一些问题。我仔细阅读了自述文件并查看了演示。
首先,只是将gaesesions目录添加到我的应用程序会导致运行带有nose和nose-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'
在开发服务器上不会发生此错误。
任何有关修复上述内容的建议都将不胜感激。
答案 0 :(得分:3)
我遇到了同样的问题。问题似乎是gae测试平台的行为与开发服务器不同。我不知道具体细节,但最后通过添加
来解决它def setUp(self):
testbed.Testbed().activate()
# after activating the testbed:
from gaesessions import Session, set_current_session
set_current_session(Session())