diff --git a/CHANGES.txt b/CHANGES.txt index 4385aa73c2e..b549e4b3f3b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -35,7 +35,10 @@ CHANGES - Server has 75 seconds keepalive timeout now, was non-keepalive by default. -- Application doesn't accept `**kwargs` anymore (#243). +- Application doesn't accept `**kwargs` anymore (#243). + +- Request is inherited from dict now for making per-request storage to + middlewares (#242). 0.13.1 (12-31-2014) diff --git a/aiohttp/web.py b/aiohttp/web.py index eb8ce08915c..5c805712fc1 100644 --- a/aiohttp/web.py +++ b/aiohttp/web.py @@ -139,7 +139,7 @@ def content_length(self, _CONTENT_LENGTH=hdrs.CONTENT_LENGTH): ############################################################ -class Request(HeadersMixin): +class Request(dict, HeadersMixin): def __init__(self, app, message, payload, transport, reader, writer, *, _HOST=hdrs.HOST): diff --git a/tests/test_web_request.py b/tests/test_web_request.py index 68175374b57..11aab0e35b3 100644 --- a/tests/test_web_request.py +++ b/tests/test_web_request.py @@ -161,3 +161,9 @@ def test_match_info(self): match = {'a': 'b'} req._match_info = match self.assertIs(match, req.match_info) + + def test_request_is_dict(self): + req = self.make_request('GET', '/') + self.assertTrue(isinstance(req, dict)) + req['key'] = 'value' + self.assertEqual('value', req['key'])