Opened 8 years ago

Last modified 7 years ago

#26677 closed Cleanup/optimization

Run i18n tests on disposable FS tree instead of source code — at Version 5

Reported by: Ramiro Morales Owned by: Ramiro Morales
Component: Internationalization Version: dev
Severity: Normal Keywords: tests isolation i18n serializemixin unit unittest
Cc: Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by 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.

Change History (5)

comment:1 by Ramiro Morales, 8 years ago

comment:2 by Ramiro Morales, 8 years ago

Owner: changed from nobody to Ramiro Morales
Status: newassigned

comment:3 by Ramiro Morales, 8 years ago

Summary: Run i18n tests on disposablle FS tree instead of source codeRun i18n tests on disposable FS tree instead of source code

comment:4 by Tim Graham, 8 years ago

Component: Testing frameworkInternationalization
Has patch: set
Triage Stage: UnreviewedAccepted

comment:5 by Ramiro Morales, 8 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top