summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNils Philippsen <nils@tiptoe.de>2021-12-12 18:35:03 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2021-12-14 15:46:00 -0500
commit009747e146008ce695f33aee5ffb12a14f3a7e46 (patch)
treec38f8d97fb0e71bbf73bc3e1b5e58ceb044fd8a7
parent893b4e03921eb1a86e202988bf247251d0d2fae9 (diff)
downloadsqlalchemy-009747e146008ce695f33aee5ffb12a14f3a7e46.tar.gz
Ignore ephemeral classes in test_all_present()
Fixed a regression in the test suite where the test called ``CompareAndCopyTest::test_all_present`` would fail on some platforms due to additional testing artifacts being detected. Pull request courtesy Nils Philippsen. In some circumstances, ephemeral class objects that are created within the scope of a test method don't seem to be garbage collected directly on exit. Filter out classes created in test modules. Fixes: #7450 Closes: #7451 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/7451 Pull-request-sha: 135a8aaba2c6941460c7f45aa1a55c8f6b9eb43d Change-Id: I621967bd916089dc1e3f98625fd2a852cd9fd712
-rw-r--r--doc/build/changelog/unreleased_14/7450.rst9
-rw-r--r--test/sql/test_compare.py6
2 files changed, 14 insertions, 1 deletions
diff --git a/doc/build/changelog/unreleased_14/7450.rst b/doc/build/changelog/unreleased_14/7450.rst
new file mode 100644
index 000000000..56aaa1d4f
--- /dev/null
+++ b/doc/build/changelog/unreleased_14/7450.rst
@@ -0,0 +1,9 @@
+.. change::
+ :tags: bug, tests, regression
+ :tickets: 7450
+
+ Fixed a regression in the test suite where the test called
+ ``CompareAndCopyTest::test_all_present`` would fail on some platforms due
+ to additional testing artifacts being detected. Pull request courtesy Nils
+ Philippsen.
+
diff --git a/test/sql/test_compare.py b/test/sql/test_compare.py
index ca1eff62b..06ebb0122 100644
--- a/test/sql/test_compare.py
+++ b/test/sql/test_compare.py
@@ -1356,6 +1356,10 @@ class CompareAndCopyTest(CoreFixtures, fixtures.TestBase):
]
def test_all_present(self):
+ """test for elements that are in SQLAlchemy Core, that they are
+ also included in the fixtures above.
+
+ """
need = set(
cls
for cls in class_hierarchy(ClauseElement)
@@ -1363,9 +1367,9 @@ class CompareAndCopyTest(CoreFixtures, fixtures.TestBase):
and (
"__init__" in cls.__dict__
or issubclass(cls, AliasedReturnsRows)
- or "inherit_cache" not in cls.__dict__
)
and not issubclass(cls, (Annotated))
+ and cls.__module__.startswith("sqlalchemy.")
and "orm" not in cls.__module__
and "compiler" not in cls.__module__
and "crud" not in cls.__module__