#17895: override_settings doesn't send the setting_changed signal when restoring
the original value
---------------------------------------------+------------------------
               Reporter:  aaugustin          |          Owner:  nobody
                   Type:  Bug                |         Status:  new
              Component:  Testing framework  |        Version:  SVN
               Severity:  Release blocker    |       Keywords:
           Triage Stage:  Unreviewed         |      Has patch:  1
    Needs documentation:  0                  |    Needs tests:  0
Patch needs improvement:  0                  |  Easy pickings:  0
                  UI/UX:  0                  |
---------------------------------------------+------------------------
 Django 1.4 introduces the `override_settings` context manager / decorator.
 When a setting is overridden, it fires the `setting_changed` signal. This
 signal allows to clean up or reset state that depends on a given setting,
 when that setting is changed.

 However, in the current implementation, the signal isn't fired when the
 original value of the setting is restored.

 I think `setting_changed` would be easier to use if it's fired whenever
 the value of a setting is "changed" in a broad sense, that is "overridden"
 or "reset".

 While discussing this on IRC, it was suggested to add an extra argument,
 like `state="pre" / "post"`, to distinguish between the two phases.

 I'm marking this ticket as a release blocker because it would
 significantly change the behavior of `setting_changed`; we must make a
 decision before 1.4.

 It's also a prerequisite for `17882-second-take.patch` on #17882.

 Patch w/ tests and docs attached.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/17895>
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 post to this group, send email to django-updates@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to