﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
26677	Run i18n tests on disposable FS tree instead of source code	Ramiro Morales	Ramiro Morales	"Currently, tests that exercise translatable literal extraction to `.po` files by ''makemessages'' (located on `test_extraction.py`) and test that exercise compilation of `.po` files to `.mo` files by ''compilemessages'' (`test_compilation.py`) are run under the `test/i18n` test source code tree creating subdirectories and files under the different work projects/applications located there.

Proposal is to copy the relevant filesystem tree to a tempdir as provided by `runtests.py` + `tempfile.mkdtemp()` as part of every test case setup.

This has the following advantages:

* Avoid weird bogus errors and failures caused by stray directories left by previous runs/debugging sessions.
* Allows us to solve the fact that currently tests on `test_compilation.py` aren't marked as needing seralized execution and are actually being run in parallel. This, for instance, causes a couple of consecutive runs of the i18n test on my Ubuntu 1.4.04 system to report misleading failures, most probably because of race conditions.
* Ensure actual isolation among test cases
* Allow each of these test cases to be actually run in in parallel by our existing machinery. This allows us to be able to stop relying on `django.test.testcases.SerializeMixin`

These changes possibly aren't visible on our CI infrastructure as every job there always use a clean tree but can be of help to those running the test suite and/or working on i18n tests.

Other tests (`tests.py`, `test_percents.py`) don't have write access to disk so they are unaffected."	Cleanup/optimization	closed	Internationalization	dev	Normal	fixed	tests isolation i18n serializemixin unit unittest		Ready for checkin	1	0	0	0	0	0
