Merge pull request #802 from yunstanford/add-match-info

Add match_info property to request class
This commit is contained in:
Eli Uriegas 2017-06-18 10:15:46 -07:00 committed by GitHub
commit b37e6187d4
2 changed files with 18 additions and 0 deletions

View File

@ -178,6 +178,11 @@ class Request(dict):
def content_type(self):
return self.headers.get('Content-Type', DEFAULT_HTTP_CONTENT_TYPE)
@property
def match_info(self):
"""return matched info after resolving route"""
return self.app.router.get(self)[2]
@property
def path(self):
return self._parsed_url.path.decode('utf-8')

View File

@ -211,6 +211,19 @@ def test_content_type():
assert response.text == 'application/json'
def test_match_info():
app = Sanic('test_match_info')
@app.route('/api/v1/user/<user_id>/')
async def handler(request, user_id):
return json(request.match_info)
request, response = app.test_client.get('/api/v1/user/sanic_user/')
assert request.match_info == {"user_id": "sanic_user"}
assert json_loads(response.text) == {"user_id": "sanic_user"}
# ------------------------------------------------------------ #
# POST
# ------------------------------------------------------------ #