Opened 3 years ago
Closed 3 years ago
#33633 closed Cleanup/optimization (fixed)
Some test_utils tests fail on databases that don't support transactions.
Reported by: | Xiang Zhang | Owned by: | Xiang Zhang |
---|---|---|---|
Component: | Core (Other) | Version: | 4.0 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Ready for checkin | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
FAIL: test_reset_sequences (test_utils.test_testcase.TestTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/zhangyangyu/repos/django-tidb/django_tests_dir/django/tests/test_utils/test_testcase.py", line 47, in test_reset_sequences old_reset_sequences = self.reset_sequences File "/opt/homebrew/Cellar/python@3.9/3.9.12/Frameworks/Python.framework/Versions/3.9/lib/python3.9/contextlib.py", line 126, in __exit__ next(self.gen) File "/Users/zhangyangyu/repos/django-tidb/django_tests_dir/django/django/test/testcases.py", line 807, in _assert_raises_or_warns_cm yield cm AssertionError: TypeError not raised
FAIL: test_execute_tree (test_utils.tests.CaptureOnCommitCallbacksTests) A visualisation of the callback tree tested. Each node is expected to ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/zhangyangyu/repos/django-tidb/django_tests_dir/django/tests/test_utils/tests.py", line 1657, in test_execute_tree self.assertEqual(callbacks, [branch_1, branch_2, leaf_3, leaf_1, leaf_2]) AssertionError: Lists differ: [] != [<function CaptureOnCommitCallbacksTests.t[412 chars]ee0>] Second list contains 5 additional elements. First extra element 0: <function CaptureOnCommitCallbacksTests.test_execute_tree.<locals>.branch_1 at 0x107c52430> - [] + [<function CaptureOnCommitCallbacksTests.test_execute_tree.<locals>.branch_1 at 0x107c52430>, + <function CaptureOnCommitCallbacksTests.test_execute_tree.<locals>.branch_2 at 0x107c52040>, + <function CaptureOnCommitCallbacksTests.test_execute_tree.<locals>.leaf_3 at 0x107c52dc0>, + <function CaptureOnCommitCallbacksTests.test_execute_tree.<locals>.leaf_1 at 0x107e17310>, + <function CaptureOnCommitCallbacksTests.test_execute_tree.<locals>.leaf_2 at 0x107c52ee0>]
FAIL: test_execute_recursive (test_utils.tests.CaptureOnCommitCallbacksTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/zhangyangyu/repos/django-tidb/django_tests_dir/django/tests/test_utils/tests.py", line 1604, in test_execute_recursive self.assertEqual(len(callbacks), 2) AssertionError: 0 != 2
test_reset_sequences
/test_execute_tree
/test_execute_recursive
fail with above error if testing against backends not supporting transactions, like MySQL MyIASM engine.
Change History (7)
comment:1 by , 3 years ago
Description: | modified (diff) |
---|---|
Summary: | test_reset_sequences fails for backends not supporting transactions → test_reset_sequences/test_execute_tree/test_execute_recursive fail for backends not supporting transactions |
follow-up: 3 comment:2 by , 3 years ago
Component: | Testing framework → Core (Other) |
---|---|
Summary: | test_reset_sequences/test_execute_tree/test_execute_recursive fail for backends not supporting transactions → Some test_utils tests fail on databases that don't support transactions. |
Triage Stage: | Unreviewed → Accepted |
Type: | Uncategorized → Cleanup/optimization |
comment:3 by , 3 years ago
Replying to Mariusz Felisiak:
Thanks for the report. I was able to reproduce even more failures:
ERROR: test_failure_in_setUpTestData_should_rollback_transaction (test_utils.tests.TestBadSetUpTestData) FAIL: test_reset_sequences (test_utils.test_testcase.TestTestCase) FAIL: test_class_attribute_identity (test_utils.test_testcase.TestDataTests) FAIL: test_execute (test_utils.tests.CaptureOnCommitCallbacksTests) FAIL: test_execute_recursive (test_utils.tests.CaptureOnCommitCallbacksTests) FAIL: test_execute_tree (test_utils.tests.CaptureOnCommitCallbacksTests) FAIL: test_no_arguments (test_utils.tests.CaptureOnCommitCallbacksTests) FAIL: test_pre_callback (test_utils.tests.CaptureOnCommitCallbacksTests) FAIL: test_using (test_utils.tests.CaptureOnCommitCallbacksTests)
CaptureOnCommitCallbacksTests
should be skipped on databases that don't support transactions, i.e. decorated with@skipUnlessDBFeature("supports_transactions")
. I didn't check other failures. Would you like to prepare a patch?
Yes. I also find more tests fail but for me the three are most important. Let me submit a fix.
comment:4 by , 3 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
Yes. I also find more tests fail but for me the three are most important. Let me submit a fix.
Great, thanks.
comment:6 by , 3 years ago
Triage Stage: | Accepted → Ready for checkin |
---|
Thanks for the report. I was able to reproduce even more failures:
CaptureOnCommitCallbacksTests
should be skipped on databases that don't support transactions, i.e. decorated with@skipUnlessDBFeature("supports_transactions")
. I didn't check other failures. Would you like to prepare a patch?