From: Nils Philippsen Date: Sun, 12 Dec 2021 23:35:03 +0000 (-0500) Subject: Ignore ephemeral classes in test_all_present() X-Git-Tag: rel_2_0_0b1~597 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=009747e146008ce695f33aee5ffb12a14f3a7e46;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git 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 --- diff --git a/doc/build/changelog/unreleased_14/7450.rst b/doc/build/changelog/unreleased_14/7450.rst new file mode 100644 index 0000000000..56aaa1d4f7 --- /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 ca1eff62b4..06ebb01227 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__