From 67750222530a3116ad18082856a16ba25f5a84cc Mon Sep 17 00:00:00 2001 From: David Sanders <> Date: Thu, 28 Mar 2024 01:31:24 +1100 Subject: [PATCH] Fixed #35334 -- Removed supports_sequence_reset feature flag --- django/db/backends/base/features.py | 3 --- django/db/backends/oracle/features.py | 1 - django/test/testcases.py | 17 ++++++++--------- tests/backends/base/test_operations.py | 9 ++++----- tests/test_runner/tests.py | 3 +-- 5 files changed, 13 insertions(+), 20 deletions(-) diff --git a/django/db/backends/base/features.py b/django/db/backends/base/features.py index ef874d74db..12391270dd 100644 --- a/django/db/backends/base/features.py +++ b/django/db/backends/base/features.py @@ -126,9 +126,6 @@ class BaseDatabaseFeatures: # in the SQL standard. supports_tablespaces = False - # Does the backend reset sequences between tests? - supports_sequence_reset = True - # Can the backend introspect the default value of a column? can_introspect_default = True diff --git a/django/db/backends/oracle/features.py b/django/db/backends/oracle/features.py index d698baa993..5e4a2e0ef5 100644 --- a/django/db/backends/oracle/features.py +++ b/django/db/backends/oracle/features.py @@ -30,7 +30,6 @@ class DatabaseFeatures(BaseDatabaseFeatures): truncates_names = True supports_comments = True supports_tablespaces = True - supports_sequence_reset = False can_introspect_materialized_views = True atomic_transactions = False nulls_order_largest = True diff --git a/django/test/testcases.py b/django/test/testcases.py index 0a802c887b..a9ff4955d1 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -1157,15 +1157,14 @@ class TransactionTestCase(SimpleTestCase): def _reset_sequences(self, db_name): conn = connections[db_name] - if conn.features.supports_sequence_reset: - sql_list = conn.ops.sequence_reset_by_name_sql( - no_style(), conn.introspection.sequence_list() - ) - if sql_list: - with transaction.atomic(using=db_name): - with conn.cursor() as cursor: - for sql in sql_list: - cursor.execute(sql) + sql_list = conn.ops.sequence_reset_by_name_sql( + no_style(), conn.introspection.sequence_list() + ) + if sql_list: + with transaction.atomic(using=db_name): + with conn.cursor() as cursor: + for sql in sql_list: + cursor.execute(sql) def _fixture_setup(self): for db_name in self._databases_names(include_mirrors=False): diff --git a/tests/backends/base/test_operations.py b/tests/backends/base/test_operations.py index 8df02ee76b..2b6999dba2 100644 --- a/tests/backends/base/test_operations.py +++ b/tests/backends/base/test_operations.py @@ -225,11 +225,10 @@ class SqlFlushTests(TransactionTestCase): with transaction.atomic(): self.assertIs(Author.objects.exists(), False) self.assertIs(Book.objects.exists(), False) - if connection.features.supports_sequence_reset: - author = Author.objects.create(name="F. Scott Fitzgerald") - self.assertEqual(author.pk, 1) - book = Book.objects.create(author=author) - self.assertEqual(book.pk, 1) + author = Author.objects.create(name="F. Scott Fitzgerald") + self.assertEqual(author.pk, 1) + book = Book.objects.create(author=author) + self.assertEqual(book.pk, 1) class DeprecationTests(TestCase): diff --git a/tests/test_runner/tests.py b/tests/test_runner/tests.py index b900ff69ea..668e0ab0ac 100644 --- a/tests/test_runner/tests.py +++ b/tests/test_runner/tests.py @@ -16,7 +16,7 @@ from django.conf import settings from django.core.exceptions import ImproperlyConfigured from django.core.management import call_command from django.core.management.base import CommandError, SystemCheckError -from django.test import SimpleTestCase, TransactionTestCase, skipUnlessDBFeature +from django.test import SimpleTestCase, TransactionTestCase from django.test.runner import ( DiscoverRunner, Shuffler, @@ -943,7 +943,6 @@ class SetupDatabasesTests(unittest.TestCase): ) -@skipUnlessDBFeature("supports_sequence_reset") class AutoIncrementResetTest(TransactionTestCase): """ Creating the same models in different test methods receive the same PK