diff --git a/bowerstatic/renderer.py b/bowerstatic/renderer.py index bcaba45..a29de8e 100644 --- a/bowerstatic/renderer.py +++ b/bowerstatic/renderer.py @@ -35,8 +35,10 @@ def renderer(self, resource): def make_renderer(renderer): if isinstance(renderer, string_types): def string_renderer(resource): - return renderer.format(url=resource.url(), - content=resource.content()) + if '{content}' in renderer: + return renderer.format(content=resource.content()) + else: + return renderer.format(url=resource.url()) return string_renderer if callable(renderer): diff --git a/bowerstatic/tests/bower_components/favicon_main/.bower.json b/bowerstatic/tests/bower_components/favicon_main/.bower.json new file mode 100644 index 0000000..006ae50 --- /dev/null +++ b/bowerstatic/tests/bower_components/favicon_main/.bower.json @@ -0,0 +1,7 @@ +{ + "name": "favicon_main", + "version": "1.0.0", + "main": [ + "dist/favicon.ico" + ] +} diff --git a/bowerstatic/tests/bower_components/favicon_main/bower.json b/bowerstatic/tests/bower_components/favicon_main/bower.json new file mode 100644 index 0000000..006ae50 --- /dev/null +++ b/bowerstatic/tests/bower_components/favicon_main/bower.json @@ -0,0 +1,7 @@ +{ + "name": "favicon_main", + "version": "1.0.0", + "main": [ + "dist/favicon.ico" + ] +} diff --git a/bowerstatic/tests/bower_components/favicon_main/dist/favicon.ico b/bowerstatic/tests/bower_components/favicon_main/dist/favicon.ico new file mode 100644 index 0000000..3455c3f Binary files /dev/null and b/bowerstatic/tests/bower_components/favicon_main/dist/favicon.ico differ diff --git a/bowerstatic/tests/test_injector.py b/bowerstatic/tests/test_injector.py index 6b4b2e8..381ed4d 100644 --- a/bowerstatic/tests/test_injector.py +++ b/bowerstatic/tests/test_injector.py @@ -744,3 +744,27 @@ def wsgi(environ, start_response): assert response.body == ( b'Hello!') + + +def test_injector_favicon_renderer(): + bower = bowerstatic.Bower() + + components = bower.components('components', os.path.join( + os.path.dirname(__file__), 'bower_components')) + + def wsgi(environ, start_response): + start_response('200 OK', [('Content-Type', 'text/html;charset=UTF-8')]) + include = components.includer(environ) + include('favicon_main') + return [b'Hello!'] + + injector = bower.injector(wsgi) + + c = Client(injector) + + response = c.get('/') + assert response.body == ( + b'' + b'' + b'Hello!')