#23525: admin/docs/filters|tags __file__ attribute errors for egg extensions
-------------------------+-------------------------------------------------
     Reporter:           |      Owner:  nobody
  welbornprod            |     Status:  new
         Type:  Bug      |    Version:  1.7
    Component:           |   Keywords:  __file__ AttributeError filters
  contrib.admindocs      |  tags
     Severity:  Normal   |  Has patch:  1
 Triage Stage:           |      UI/UX:  0
  Unreviewed             |
Easy pickings:  1        |
-------------------------+-------------------------------------------------
 Accessing `hostname.com/admin/doc/filters` and
 `hostname.com/admin/doc/tags` causes an Internal Server Error on Django
 1.7.

 In `django/contrib/admindocs/views.py`, the function
 `load_all_installed_template_libraries()` already gracefully fails on
 `OSError` when finding python files. However, when the module being
 checked has no `__file__` attribute the error bubbles up and causes an
 Internal Server Error.

 Someone on django-users suggested that it may be because some extensions
 are installed as eggs. I've attached a naive patch that simply adds
 `AttributeError` to the caught exceptions, causing the function to fail
 gracefully instead of letting it bubble up.

 The code that triggers the error:
 {{{#!python
 try:
     libraries = [
         os.path.splitext(p)[0]
         for p in os.listdir(os.path.dirname(upath(mod.__file__)))
         if p.endswith('.py') and p[0].isalpha()
     ]
 except OSError:
     libraries = []
 }}}

 I've simply added another error to that block:

 {{{#!python
 try:
    # ...same code from above.
 except OSError, AttributeError:
     libraries = []
 }}}

--
Ticket URL: <https://code.djangoproject.com/ticket/23525>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/054.181533c19d76ec6590f6c12db69a1fd3%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to