BaseCommand doesn't restore translation
|Reported by:||rvdrijst||Owned by:||nobody|
|Component:||Core (Management commands)||Version:||master|
|Severity:||Normal||Keywords:||basecommand execute syncdb translation testing|
|Cc:||rvdrijst@…||Triage Stage:||Ready for checkin|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
The implementation of BaseCommand.execute() sets the translation to 'en-us' for the duration of the command execution, but doesn't restore the original translation. This is not a problem when execution stops when the command is done (command line use)
However in tests, the syncdb command is called programmatically, running the tests with the 'en-us' translation activated even when this is not the same as settings.LANGUAGE_CODE.
The attached patch fixes this by restoring the language that was activated when the command started.
Note: this ticket is related to #10078, but whereas that ticket is about documentation, this ticket fixes a bug.
Change History (7)
comment:1 Changed 7 years ago by
|Patch needs improvement:||unset|
|Triage Stage:||Unreviewed → Accepted|
comment:3 Changed 5 years ago by
|Component:||Core (Other) → Core (Management commands)|