From 2c57809a560cb67c79b9e8a77cc713e8a2424c8e Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Wed, 6 Jun 2012 15:45:28 +0200 Subject: [PATCH] Prevented TestNoInitialDataLoading to pollute other tests (Refs #15926) Tests were still failing with MySQL. It seems a rollback is solving the issue. --- .../fixtures_model_package/tests.py | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/tests/modeltests/fixtures_model_package/tests.py b/tests/modeltests/fixtures_model_package/tests.py index 1d2cc23577..a415fdf6a7 100644 --- a/tests/modeltests/fixtures_model_package/tests.py +++ b/tests/modeltests/fixtures_model_package/tests.py @@ -1,5 +1,6 @@ from django.core import management -from django.test import TestCase +from django.db import transaction +from django.test import TestCase, TransactionTestCase from .models import Article, Book @@ -20,16 +21,18 @@ class SampleTestCase(TestCase): ) -class TestNoInitialDataLoading(TestCase): +class TestNoInitialDataLoading(TransactionTestCase): def test_syncdb(self): - Book.objects.all().delete() + with transaction.commit_manually(): + Book.objects.all().delete() - management.call_command( - 'syncdb', - verbosity=0, - load_initial_data=False - ) - self.assertQuerysetEqual(Book.objects.all(), []) + management.call_command( + 'syncdb', + verbosity=0, + load_initial_data=False + ) + self.assertQuerysetEqual(Book.objects.all(), []) + transaction.rollback() def test_flush(self): # Test presence of fixture (flush called by TransactionTestCase) @@ -40,13 +43,16 @@ class TestNoInitialDataLoading(TestCase): lambda a: a.name ) - management.call_command( - 'flush', - verbosity=0, - interactive=False, - load_initial_data=False - ) - self.assertQuerysetEqual(Book.objects.all(), []) + with transaction.commit_manually(): + management.call_command( + 'flush', + verbosity=0, + interactive=False, + commit=False, + load_initial_data=False + ) + self.assertQuerysetEqual(Book.objects.all(), []) + transaction.rollback() class FixtureTestCase(TestCase):