]> git.ipfire.org Git - thirdparty/patchwork.git/commitdiff
tests: Run FuzzTest within a transaction
authorJeremy Kerr <jk@ozlabs.org>
Mon, 28 Aug 2017 11:39:17 +0000 (19:39 +0800)
committerStephen Finucane <stephen@that.guru>
Thu, 31 Aug 2017 08:44:03 +0000 (09:44 +0100)
Currently, the FuzzTests fail for me with:

/backends/base/base.py", line 428, in validate_no_broken_transaction
    "An error occurred in the current transaction. You can't "
TransactionManagementError: An error occurred in the current transaction. You can't execute queries until the end of the 'atomic' block.

- because the SQL inserts can fail, during an active transaction (the
first failure I see is attempting to insert \0 chars in
codec-null.mbox); this causes the setup for the next test case to fail.

Instead, run each test in its own transaction.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Reviewed-by: Stephen Finucane <stephen@that.guru>
(cherry picked from commit e505f1fd26224fc7dcadf43146bc1408a470fe15)

patchwork/tests/test_parser.py

index 583dfcc4b4e8811130e723169dfc56c6cea4f111..c21040eeb0b84ee0128f2ff45811246d45d4da16 100644 (file)
@@ -26,6 +26,7 @@ import os
 import unittest
 
 from django.test import TestCase
+from django.test import TransactionTestCase
 from django.utils import six
 
 from patchwork.models import Comment
@@ -865,7 +866,7 @@ class SubjectTest(TestCase):
         self.assertEqual(parse_version('Hello, world (V6)', []), 6)
 
 
-class FuzzTest(TestCase):
+class FuzzTest(TransactionTestCase):
     """Test fuzzed patches."""
     def setUp(self):
         create_project(listid='patchwork.ozlabs.org')