]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
remote debugging
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 11 Sep 2020 20:37:56 +0000 (16:37 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 11 Sep 2020 20:37:56 +0000 (16:37 -0400)
Change-Id: I3eee96df57caea70d08993287014b5795d8a3716

test/orm/declarative/test_mixin.py

index d63c20649fcc4443748a377044fd82c8d6adb9bb..0b1416035e83a76ca62b914cfad4afdafa7d32eb 100644 (file)
@@ -1,5 +1,3 @@
-import sys
-
 import sqlalchemy as sa
 from sqlalchemy import ForeignKey
 from sqlalchemy import func
@@ -1667,6 +1665,7 @@ class DeclaredAttrTest(DeclarativeTestBase, testing.AssertsCompiledSQL):
     @testing.requires.predictable_gc
     def test_singleton_gc(self):
         counter = mock.Mock()
+
         Base.registry._class_registry.clear()
 
         class Mixin(object):
@@ -1684,37 +1683,29 @@ class DeclaredAttrTest(DeclarativeTestBase, testing.AssertsCompiledSQL):
                 return column_property(cls.my_prop + 5)
 
         eq_(counter.mock_calls, [mock.call("A")])
-        del A
         import gc
 
-        for i in range(8):
-            gc.collect()
-
-        import sysconfig
+        del A
 
-        if hasattr(sysconfig, "get_config_vars"):
-            config_vars = "\n".join(
-                "%s=%s" % (x, sysconfig.get_config_vars()[x])
-                for x in sorted(sysconfig.get_config_vars())
-            )
-        else:
-            config_vars = ""
+        status = ""
+        for i in range(8):
+            status += " %s" % (gc.collect(),)
 
         from sqlalchemy.orm.clsregistry import _key_is_empty
 
-        assert _key_is_empty(
+        if not _key_is_empty(
             "A",
             Base.registry._class_registry,
             lambda cls: hasattr(cls, "my_other_prop"),
-        ), (
-            "registry keys: %s, obj: %s refcount: %s  %s"
-            % (
+        ):
+            actual_a = Base.registry._class_registry["A"]
+            refs = gc.get_referents(actual_a)
+            assert False, "registry keys: %s, obj: %s %s referents: %s" % (
                 list(Base.registry._class_registry.keys()),
                 Base.registry._class_registry["A"],
-                sys.getrefcount(Base.registry._class_registry["A"]),
-                config_vars,
+                status,
+                refs,
             )
-        )
 
     def test_can_we_access_the_mixin_straight(self):
         class Mixin(object):