From 1fe3cec7466655a1f7ba636f53af796c6c132f47 Mon Sep 17 00:00:00 2001 From: Ryan Petrello Date: Thu, 25 Jun 2015 11:48:49 -0400 Subject: Fix a bug in the way `default_renderer` is applied. When an explicit `content_type` is specified to `pecan.expose()`, it should always take precendece over the `default_renderer` specified at the application level. Fixes-bug: #1465688 Change-Id: I633777a3d682f17b7f61cbe691c6e93f2ce2a310 --- pecan/decorators.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'pecan/decorators.py') diff --git a/pecan/decorators.py b/pecan/decorators.py index 68195a9..15808d4 100644 --- a/pecan/decorators.py +++ b/pecan/decorators.py @@ -23,9 +23,9 @@ def when_for(controller): def expose(template=None, - content_type='text/html', generic=False, - route=None): + route=None, + **kw): ''' Decorator used to flag controller methods as being "exposed" for @@ -46,6 +46,8 @@ def expose(template=None, wanted to route a function to `some-special-path'. ''' + content_type = kw.get('content_type', 'text/html') + if template == 'json': content_type = 'application/json' @@ -54,6 +56,7 @@ def expose(template=None, f.exposed = True cfg = _cfg(f) + cfg['explicit_content_type'] = 'content_type' in kw if route: # This import is here to avoid a circular import issue -- cgit v1.2.1