﻿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 disposablle FS tree instead of source code	Ramiro Morales	nobody	"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 loated 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 which causes a couple of consecutive runs if 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	new	Testing framework	dev	Normal		tests isolation i18n serializemixin unit unittest		Unreviewed	0	0	0	0	0	0
