From: Federico Caselli Date: Thu, 30 Nov 2023 21:45:36 +0000 (+0100) Subject: Remove legacy signatures from session events X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=76a2fa36c0073b635a3aaf840c83a9d624cca662;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Remove legacy signatures from session events 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 --- diff --git a/doc/build/changelog/unreleased_21/10721.rst b/doc/build/changelog/unreleased_21/10721.rst new file mode 100644 index 0000000000..5ec405748f --- /dev/null +++ b/doc/build/changelog/unreleased_21/10721.rst @@ -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`. diff --git a/lib/sqlalchemy/orm/events.py b/lib/sqlalchemy/orm/events.py index e7e3e32a7f..f27b4e6e66 100644 --- a/lib/sqlalchemy/orm/events.py +++ b/lib/sqlalchemy/orm/events.py @@ -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. diff --git a/test/orm/test_deprecations.py b/test/orm/test_deprecations.py index 23248349cd..5d6bc9a686 100644 --- a/test/orm/test_deprecations.py +++ b/test/orm/test_deprecations.py @@ -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