3

比較的成熟した GAE アプリに gae-sessions を追加する際に、いくつかの問題が発生しています。readme を注意深く読み、デモも確認しました。

まず、アプリに gaesesions ディレクトリを追加するだけで、nose と noise-gae を使用してテストを実行すると、次のエラーが発生します。

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

すべてのテストは正常に実行されるため、大きな問題ではありませんが、何かが正しくないことを示唆しています。

次に、次の 2 行のコードを追加するとします。

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'

このエラーは、開発サーバーでは発生しません。

上記の修正に関する提案は大歓迎です。

4

1 に答える 1

3

私は同じ問題に遭遇しました。問題は、gae テストベッドが開発サーバーとは異なる動作をすることです。詳細はわかりませんが、追加することで解決しました

def setUp(self):
  testbed.Testbed().activate()
  # after activating the testbed:
  from gaesessions import Session, set_current_session
  set_current_session(Session())
于 2013-02-15T03:32:57.400 に答える