modify_main_app dont setup aiohttp_debugtoolbar for nested apps
Skorpyon opened this issue · comments
Reproduce:
nested_app = Application()
nested_app['name'] = 'api'
app = Application()
app['name'] = 'main_app'
app.add_subapp('/api', nested_app)
adev runserver .
500 Internal Server Error
Traceback:
Traceback (most recent call last):
File "/home/anton/virtualenvs/extremedialer/lib/python3.6/site-packages/aiohttp/web_server.py", line 62, in handle_request
resp = yield from self._handler(request)
File "/home/anton/virtualenvs/extremedialer/lib/python3.6/site-packages/aiohttp/web.py", line 270, in _handle
resp = yield from handler(request)
File "/home/anton/virtualenvs/extremedialer/lib/python3.6/site-packages/aiohttp_debugtoolbar/middlewares.py", line 59, in toolbar_middleware
toolbar = DebugToolbar(request, panel_classes, global_panel_classes)
File "/home/anton/virtualenvs/extremedialer/lib/python3.6/site-packages/aiohttp_debugtoolbar/toolbar.py", line 24, in __init__
panel_inst = panel_class(request)
File "/home/anton/virtualenvs/extremedialer/lib/python3.6/site-packages/aiohttp_debugtoolbar/panels/traceback.py", line 21, in __init__
self.exc_history = request.app[APP_KEY]['exc_history']
File "/home/anton/virtualenvs/extremedialer/lib/python3.6/site-packages/aiohttp/web.py", line 71, in __getitem__
return self._state[key]
KeyError: 'aiohttp_debugtoolbar'
If manual setup for nested app it works OK
nested_app = Application()
nested_app['name'] = 'api'
aiohttp_debugtoolbar.setup(nested_app)
Is it possible add cheching nested apps and auto setup debug_toolbar for it?
Add to this issue another related: livereload doen't watch for nested apps files changes.
I've tested and livereload works fine.
I've created a PR #40 to fix the issue with debugtoolbar however currently aiohttp-debugtoolbar doesn't support sub-apps so it's not working.
We're removing debugtoolbar now, as it's pretty much impossible to setup correctly automatically within devtools. It should be used and setup explicitly by the user.