diff options
author | Nils Philippsen <nils@tiptoe.de> | 2021-12-12 18:35:03 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2021-12-14 15:46:00 -0500 |
commit | 009747e146008ce695f33aee5ffb12a14f3a7e46 (patch) | |
tree | c38f8d97fb0e71bbf73bc3e1b5e58ceb044fd8a7 | |
parent | 893b4e03921eb1a86e202988bf247251d0d2fae9 (diff) | |
download | sqlalchemy-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.rst | 9 | ||||
-rw-r--r-- | test/sql/test_compare.py | 6 |
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__ |