diff --git a/wsme/protocols/__init__.py b/wsme/protocols/__init__.py index ed9d813..137d142 100644 --- a/wsme/protocols/__init__.py +++ b/wsme/protocols/__init__.py @@ -13,12 +13,16 @@ registered_protocols = {} class CallContext(object): def __init__(self, request): - self.request = weakref.proxy(request) + self._request = weakref.ref(request) self.path = None self.func = None self.funcdef = None + @property + def request(self): + return self._request() + def register_protocol(protocol): registered_protocols[protocol.name] = protocol diff --git a/wsme/tests/test_protocols.py b/wsme/tests/test_protocols.py index ae6e906..f073497 100644 --- a/wsme/tests/test_protocols.py +++ b/wsme/tests/test_protocols.py @@ -24,7 +24,7 @@ class DummyProtocol(object): return ['touch'] def read_arguments(self, context): - self.lastreq = context.request.__init__.__self__ + self.lastreq = context.request self.hits += 1 return {}