]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Fixed ``instrument_declarative`` registry call.
authorFederico Caselli <cfederico87@gmail.com>
Fri, 16 Apr 2021 20:25:56 +0000 (22:25 +0200)
committerFederico Caselli <cfederico87@gmail.com>
Sat, 17 Apr 2021 08:46:11 +0000 (10:46 +0200)
Fixed :func:`_declarative.instrument_declarative` that called
a non existing registry method.

Fixes: #6291
Change-Id: I6fc8db84f72240cc82e7f6f3a784c424f5ccfc96

doc/build/changelog/unreleased_14/6291.rst [new file with mode: 0644]
lib/sqlalchemy/ext/declarative/extensions.py
test/ext/declarative/test_deprecations.py [new file with mode: 0644]

diff --git a/doc/build/changelog/unreleased_14/6291.rst b/doc/build/changelog/unreleased_14/6291.rst
new file mode 100644 (file)
index 0000000..150f670
--- /dev/null
@@ -0,0 +1,6 @@
+.. change::
+    :tags: bug, declarative, regression
+    :tickets: 6291
+
+    Fixed :func:`_declarative.instrument_declarative` that called
+    a non existing registry method.
index fd8bed6be887caf35f8a52a7d787cc62063e3534..5e1e3fe8539e2806a068e89a4ccba94511eda7e4 100644 (file)
@@ -32,9 +32,9 @@ def instrument_declarative(cls, cls_registry, metadata):
     MetaData object.
 
     """
-    return registry(
-        metadata=metadata, class_registry=cls_registry
-    ).instrument_declarative(cls)
+    registry(metadata=metadata, class_registry=cls_registry).map_declaratively(
+        cls
+    )
 
 
 class ConcreteBase(object):
diff --git a/test/ext/declarative/test_deprecations.py b/test/ext/declarative/test_deprecations.py
new file mode 100644 (file)
index 0000000..f205554
--- /dev/null
@@ -0,0 +1,25 @@
+import sqlalchemy as sa
+from sqlalchemy.ext.declarative import instrument_declarative
+from sqlalchemy.orm import Mapper
+from sqlalchemy.testing import expect_deprecated_20
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import is_
+from sqlalchemy.testing import is_true
+
+
+class TestInstrumentDeclarative(fixtures.TestBase):
+    def test_ok(self):
+        class Foo(object):
+            __tablename__ = "foo"
+            id = sa.Column(sa.Integer, primary_key=True)
+
+        meta = sa.MetaData()
+        reg = {}
+        with expect_deprecated_20(
+            "the instrument_declarative function is deprecated"
+        ):
+            instrument_declarative(Foo, reg, meta)
+
+        mapper = sa.inspect(Foo)
+        is_true(isinstance(mapper, Mapper))
+        is_(mapper.class_, Foo)