Hi Tim,
Thanks again for your help and sorry for the long delay. We've now solved the issue but I'd like to share the changes we made. I'm not sure which are essential and they're all in the RTFM category, however, they might serve as useful pointer to someone:
1. Make sure the TestCase version of test lifecycle methods is *always* run (setUpTestData, setUp etc.). Be careful with any mixins or missing super() calls that might be circumventing the TestCase version of the method (it seems like you could get away with this in 1.7 but not 1.8)
2. Avoid setUpClass, use setUpTestData instead
3. Don't mix django TestCase and unittest.TestCase in the same suite. Use SimpleTestCase where you need a lightweight test.
4. If a test spawns threads that need to access the database data, use TransactionalTestCase, not TestCase.
5. RTFM:
https://docs.djangoproject.com/en/1.8/topics/testing/tools/Thanks again,
Simon