Re: [PATCH 1/2] tests: Run FuzzTest within a transaction
On Mon, 2017-08-28 at 14:08 +0100, Stephen Finucane wrote: > On Mon, 2017-08-28 at 19:39 +0800, Jeremy Kerr wrote: > > 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 > > Looks good to me, with one nit below (can be fixed at merge time). > > Reviewed-by: Stephen Finucane Both of these patches are now applied to 'master' and backported to 'stable/2.0'. Stephen ___ Patchwork mailing list Patchwork@lists.ozlabs.org https://lists.ozlabs.org/listinfo/patchwork
Re: [PATCH 1/2] tests: Run FuzzTest within a transaction
On Mon, 2017-08-28 at 19:39 +0800, Jeremy Kerr wrote: > 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 Looks good to me, with one nit below (can be fixed at merge time). Reviewed-by: Stephen Finucane > --- > patchwork/tests/test_parser.py | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/patchwork/tests/test_parser.py b/patchwork/tests/test_parser.py > index 583dfcc..9389f28 100644 > --- a/patchwork/tests/test_parser.py > +++ b/patchwork/tests/test_parser.py > @@ -25,7 +25,7 @@ from email.utils import make_msgid > import os > import unittest > > -from django.test import TestCase > +from django.test import TestCase, TransactionTestCase We should break these onto two different lines. It's a pet peeve of mine :) > from django.utils import six > > from patchwork.models import Comment > @@ -865,7 +865,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') ___ Patchwork mailing list Patchwork@lists.ozlabs.org https://lists.ozlabs.org/listinfo/patchwork
[PATCH 1/2] tests: Run FuzzTest within a transaction
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 --- patchwork/tests/test_parser.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patchwork/tests/test_parser.py b/patchwork/tests/test_parser.py index 583dfcc..9389f28 100644 --- a/patchwork/tests/test_parser.py +++ b/patchwork/tests/test_parser.py @@ -25,7 +25,7 @@ from email.utils import make_msgid import os import unittest -from django.test import TestCase +from django.test import TestCase, TransactionTestCase from django.utils import six from patchwork.models import Comment @@ -865,7 +865,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') -- 2.7.4 ___ Patchwork mailing list Patchwork@lists.ozlabs.org https://lists.ozlabs.org/listinfo/patchwork