]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Remove legacy signatures from session events
authorFederico Caselli <cfederico87@gmail.com>
Thu, 30 Nov 2023 21:45:36 +0000 (22:45 +0100)
committerFederico Caselli <cfederico87@gmail.com>
Fri, 1 Dec 2023 19:27:35 +0000 (20:27 +0100)
Removed legacy signatures dating back to 0.9 release from the
:meth:`_orm.SessionEvents.after_bulk_update` and
:meth:`_orm.SessionEvents.after_bulk_delete`.

Fixes: #10721
Change-Id: I09a01b6bae5e2d8fba1ee723afce2ddb3596f4ec

doc/build/changelog/unreleased_21/10721.rst [new file with mode: 0644]
lib/sqlalchemy/orm/events.py
test/orm/test_deprecations.py

diff --git a/doc/build/changelog/unreleased_21/10721.rst b/doc/build/changelog/unreleased_21/10721.rst
new file mode 100644 (file)
index 0000000..5ec4057
--- /dev/null
@@ -0,0 +1,7 @@
+.. change::
+    :tags: change, orm
+    :tickets: 10721
+
+    Removed legacy signatures dating back to 0.9 release from the
+    :meth:`_orm.SessionEvents.after_bulk_update` and
+    :meth:`_orm.SessionEvents.after_bulk_delete`.
index e7e3e32a7ff3a3a135652ede4d90dfd02ba18ea7..f27b4e6e66084fd6f9b870753fe86ff5a58f96ea 100644 (file)
@@ -2094,16 +2094,6 @@ class SessionEvents(event.Events[Session]):
 
         """
 
-    @event._legacy_signature(
-        "0.9",
-        ["session", "query", "query_context", "result"],
-        lambda update_context: (
-            update_context.session,
-            update_context.query,
-            None,
-            update_context.result,
-        ),
-    )
     def after_bulk_update(self, update_context: _O) -> None:
         """Event for after the legacy :meth:`_orm.Query.update` method
         has been called.
@@ -2140,16 +2130,6 @@ class SessionEvents(event.Events[Session]):
 
         """
 
-    @event._legacy_signature(
-        "0.9",
-        ["session", "query", "query_context", "result"],
-        lambda delete_context: (
-            delete_context.session,
-            delete_context.query,
-            None,
-            delete_context.result,
-        ),
-    )
     def after_bulk_delete(self, delete_context: _O) -> None:
         """Event for after the legacy :meth:`_orm.Query.delete` method
         has been called.
index 23248349cd2ccc066bc94504c7e78d75bd708df8..5d6bc9a6866c6d6861907e5b1a3dc85647c8202f 100644 (file)
@@ -61,7 +61,6 @@ from sqlalchemy.testing import mock
 from sqlalchemy.testing.entities import ComparableEntity
 from sqlalchemy.testing.fixtures import CacheKeyFixture
 from sqlalchemy.testing.fixtures import fixture_session
-from sqlalchemy.testing.fixtures import RemoveORMEventsGlobally
 from sqlalchemy.testing.schema import Column
 from sqlalchemy.testing.schema import Table
 from . import _fixtures
@@ -1789,70 +1788,6 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
         self.assert_sql_count(testing.db, go, 1)
 
 
-class SessionEventsTest(RemoveORMEventsGlobally, _fixtures.FixtureTest):
-    run_inserts = None
-
-    def test_on_bulk_update_hook(self):
-        User, users = self.classes.User, self.tables.users
-
-        sess = fixture_session()
-        canary = Mock()
-
-        event.listen(sess, "after_bulk_update", canary.after_bulk_update)
-
-        def legacy(ses, qry, ctx, res):
-            canary.after_bulk_update_legacy(ses, qry, ctx, res)
-
-        event.listen(sess, "after_bulk_update", legacy)
-
-        self.mapper_registry.map_imperatively(User, users)
-
-        with testing.expect_deprecated(
-            'The argument signature for the "SessionEvents.after_bulk_update" '
-            "event listener"
-        ):
-            sess.query(User).update({"name": "foo"})
-
-        eq_(canary.after_bulk_update.call_count, 1)
-
-        upd = canary.after_bulk_update.mock_calls[0][1][0]
-        eq_(upd.session, sess)
-        eq_(
-            canary.after_bulk_update_legacy.mock_calls,
-            [call(sess, upd.query, None, upd.result)],
-        )
-
-    def test_on_bulk_delete_hook(self):
-        User, users = self.classes.User, self.tables.users
-
-        sess = fixture_session()
-        canary = Mock()
-
-        event.listen(sess, "after_bulk_delete", canary.after_bulk_delete)
-
-        def legacy(ses, qry, ctx, res):
-            canary.after_bulk_delete_legacy(ses, qry, ctx, res)
-
-        event.listen(sess, "after_bulk_delete", legacy)
-
-        self.mapper_registry.map_imperatively(User, users)
-
-        with testing.expect_deprecated(
-            'The argument signature for the "SessionEvents.after_bulk_delete" '
-            "event listener"
-        ):
-            sess.query(User).delete()
-
-        eq_(canary.after_bulk_delete.call_count, 1)
-
-        upd = canary.after_bulk_delete.mock_calls[0][1][0]
-        eq_(upd.session, sess)
-        eq_(
-            canary.after_bulk_delete_legacy.mock_calls,
-            [call(sess, upd.query, None, upd.result)],
-        )
-
-
 class ImmediateTest(_fixtures.FixtureTest):
     run_inserts = "once"
     run_deletes = None