#32894: isinstance(LazyConfig, str) raises Excepion
-------------------------------------+-------------------------------------
               Reporter:             |          Owner:  nobody
  hiaselhans                         |
                   Type:             |         Status:  new
  Uncategorized                      |
              Component:  Core       |        Version:  3.2
  (Other)                            |       Keywords:  lazyobject
               Severity:  Normal     |  lazysettings
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  1
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 steps to reproduce:


 {{{
 import django.conf

 settings = django.conf.LazySettings()
 isinstance(settings, dict)

 ---------------------------------------------------------------------------
 ImproperlyConfigured                      Traceback (most recent call
 last)
 <ipython-input-36-201b302c2983> in <module>
       2
       3 settings = django.conf.LazySettings()
 ----> 4 isinstance(settings, str)

 ~/.local/lib/python3.9/site-packages/django/utils/functional.py in
 inner(self, *args)
     244     def inner(self, *args):
     245         if self._wrapped is empty:
 --> 246             self._setup()
     247         return func(self._wrapped, *args)
     248     return inner

 ~/.local/lib/python3.9/site-packages/django/conf/__init__.py in
 _setup(self, name)
      61         if not settings_module:
      62             desc = ("setting %s" % name) if name else "settings"
 ---> 63             raise ImproperlyConfigured(
      64                 "Requested %s, but settings are not configured. "
      65                 "You must either define the environment variable
 %s "

 ImproperlyConfigured: Requested settings, but settings are not configured.
 You must either define the environment variable DJANGO_SETTINGS_MODULE or
 call settings.configure() before accessing settings.
 }}}

 isinstance is accessing __class__ which wants to setup the lazyobject
 maybe __class__ should fall back to returning the "LazyObject"

-- 
Ticket URL: <https://code.djangoproject.com/ticket/32894>
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/053.9f26e7f6ca6e5f021969a98768c392fc%40djangoproject.com.

Reply via email to