Fix tests failing on arm & s390x

Signed-off-by: Nils Philippsen <nils@tiptoe.de>
This commit is contained in:
Nils Philippsen 2021-12-15 22:40:50 +01:00
parent 3983eb0c5a
commit a4f0b35008
2 changed files with 76 additions and 1 deletions

View File

@ -0,0 +1,71 @@
From 4f0bf86eec0ea557b2df31cce28612d5f124a8a3 Mon Sep 17 00:00:00 2001
From: Nils Philippsen <nils@tiptoe.de>
Date: Sun, 12 Dec 2021 18:35:03 -0500
Subject: [PATCH] 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
(cherry picked from commit 4291e3c235569031948ebaacec4dde8776255e0e)
---
doc/build/changelog/unreleased_14/7450.rst | 9 +++++++++
test/sql/test_compare.py | 6 +++++-
2 files changed, 14 insertions(+), 1 deletion(-)
create mode 100644 doc/build/changelog/unreleased_14/7450.rst
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 a5252601c..a4684cccf 100644
--- a/test/sql/test_compare.py
+++ b/test/sql/test_compare.py
@@ -1357,6 +1357,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)
@@ -1364,9 +1368,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__
--
2.33.1

View File

@ -25,6 +25,9 @@ Summary: Modular and flexible ORM library for python
License: MIT
URL: http://www.sqlalchemy.org/
Source0: https://files.pythonhosted.org/packages/source/S/%{srcname}/%{srcname}-%{srcversion}.tar.gz
# Fix tests failing on certain architectures, merged upstream.
# https://github.com/sqlalchemy/sqlalchemy/pull/7451
Patch0: python-sqlalchemy-1.4.28-fix-tests.patch
BuildRequires: gcc
BuildRequires: python3-devel >= 3.6
@ -75,6 +78,7 @@ This package includes the python 3 version of the module.
%prep
%setup -q -n %{srcname}-%{srcversion}
%patch0 -p1 -b .fix-tests
# Remove flag for pytest-xdist. (python2-pytest-xdist is a removed dependency.)
# (--max-worker-restart=5 would end the test run after 5 crashing tests.)
@ -105,7 +109,7 @@ PYTHONPATH=. %{__python3} -m pytest test \
%{python3_sitearch}/*
%changelog
* Sun Dec 12 2021 Nils Philippsen <nils@tiptoe.de> - 1.4.28-1
* Wed Dec 15 2021 Nils Philippsen <nils@tiptoe.de> - 1.4.28-1
- version 1.4.28
- remove build dependency on python3-mock