Commit 82669256 authored by Russell Keith-Magee's avatar Russell Keith-Magee
Browse files

[1.2.X] Fixed #10215 -- Ensured that there is parity between enter and leave...

[1.2.X] Fixed #10215 -- Ensured that there is parity between enter and leave transaction calls in loaddata when commit=False. The test case for this is the fixtures_regress unittests under MyISAM, which were failing previous to this fix. Thanks to MockSoul for the report.

Backport of r13978 from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@13979 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 1429a3db
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ class Command(BaseCommand):
                self.stderr.write(
                    self.style.ERROR("Problem installing fixture '%s': %s is not a known serialization format.\n" %
                        (fixture_name, format)))
                if commit:
                    transaction.rollback(using=using)
                    transaction.leave_transaction_management(using=using)
                return
@@ -152,6 +153,7 @@ class Command(BaseCommand):
                            fixture.close()
                            self.stderr.write(self.style.ERROR("Multiple fixtures named '%s' in %s. Aborting.\n" %
                                (fixture_name, humanize(fixture_dir))))
                            if commit:
                                transaction.rollback(using=using)
                                transaction.leave_transaction_management(using=using)
                            return
@@ -178,6 +180,7 @@ class Command(BaseCommand):
                            except Exception:
                                import traceback
                                fixture.close()
                                if commit:
                                    transaction.rollback(using=using)
                                    transaction.leave_transaction_management(using=using)
                                if show_traceback:
@@ -196,6 +199,7 @@ class Command(BaseCommand):
                                self.stderr.write(
                                    self.style.ERROR("No fixture data found for '%s'. (File format may be invalid.)\n" %
                                        (fixture_name)))
                                if commit:
                                    transaction.rollback(using=using)
                                    transaction.leave_transaction_management(using=using)
                                return