From c68f9fb87868c45fcadcc942ce4a35f10ff2f7ea Mon Sep 17 00:00:00 2001 From: Federico Caselli Date: Sat, 18 Apr 2020 18:10:59 +0200 Subject: Enable pypy tests on github workflow Fixes: #5223 Change-Id: I0952e54ed9af2952ea340be1945311376ffc1ad2 --- lib/sqlalchemy/orm/mapper.py | 2 +- lib/sqlalchemy/testing/plugin/pytestplugin.py | 2 +- lib/sqlalchemy/util/__init__.py | 1 + lib/sqlalchemy/util/compat.py | 1 + lib/sqlalchemy/util/langhelpers.py | 4 ++-- 5 files changed, 6 insertions(+), 4 deletions(-) (limited to 'lib/sqlalchemy') diff --git a/lib/sqlalchemy/orm/mapper.py b/lib/sqlalchemy/orm/mapper.py index 7b94bfa87..e73993e50 100644 --- a/lib/sqlalchemy/orm/mapper.py +++ b/lib/sqlalchemy/orm/mapper.py @@ -1253,7 +1253,7 @@ class Mapper( if key == "__init__" and hasattr(method, "_sa_original_init"): method = method._sa_original_init if isinstance(method, types.MethodType): - method = method.im_func + method = method.__func__ if isinstance(method, types.FunctionType): if hasattr(method, "__sa_reconstructor__"): self._reconstructor = method diff --git a/lib/sqlalchemy/testing/plugin/pytestplugin.py b/lib/sqlalchemy/testing/plugin/pytestplugin.py index a4ace4e24..dfefd3b95 100644 --- a/lib/sqlalchemy/testing/plugin/pytestplugin.py +++ b/lib/sqlalchemy/testing/plugin/pytestplugin.py @@ -385,7 +385,7 @@ def %(name)s(%(args)s): code, {"target": target, "fn": fn}, fn.__name__ ) if not add_positional_parameters: - decorated.__defaults__ = getattr(fn, "im_func", fn).__defaults__ + decorated.__defaults__ = getattr(fn, "__func__", fn).__defaults__ decorated.__wrapped__ = fn return update_wrapper(decorated, fn) else: diff --git a/lib/sqlalchemy/util/__init__.py b/lib/sqlalchemy/util/__init__.py index 5fdcdf654..7ce0ce12b 100644 --- a/lib/sqlalchemy/util/__init__.py +++ b/lib/sqlalchemy/util/__init__.py @@ -73,6 +73,7 @@ from .compat import py2k # noqa from .compat import py36 # noqa from .compat import py37 # noqa from .compat import py3k # noqa +from .compat import pypy # noqa from .compat import quote_plus # noqa from .compat import raise_ # noqa from .compat import raise_from_cause # noqa diff --git a/lib/sqlalchemy/util/compat.py b/lib/sqlalchemy/util/compat.py index c71deffbc..d4da21664 100644 --- a/lib/sqlalchemy/util/compat.py +++ b/lib/sqlalchemy/util/compat.py @@ -20,6 +20,7 @@ py37 = sys.version_info >= (3, 7) py36 = sys.version_info >= (3, 6) py3k = sys.version_info >= (3, 0) py2k = sys.version_info < (3, 0) +pypy = hasattr(sys, "pypy_version_info") cpython = platform.python_implementation() == "CPython" diff --git a/lib/sqlalchemy/util/langhelpers.py b/lib/sqlalchemy/util/langhelpers.py index bbdd3381f..85a065e99 100644 --- a/lib/sqlalchemy/util/langhelpers.py +++ b/lib/sqlalchemy/util/langhelpers.py @@ -165,7 +165,7 @@ def %(name)s(%(args)s): env.update({targ_name: target, fn_name: fn}) decorated = _exec_code_in_env(code, env, fn.__name__) - decorated.__defaults__ = getattr(fn, "im_func", fn).__defaults__ + decorated.__defaults__ = getattr(fn, "__func__", fn).__defaults__ decorated.__wrapped__ = fn return update_wrapper(decorated, fn) @@ -784,7 +784,7 @@ def monkeypatch_proxied_specials( fn = getattr(from_cls, method) if not hasattr(fn, "__call__"): continue - fn = getattr(fn, "im_func", fn) + fn = getattr(fn, "__func__", fn) except AttributeError: continue try: -- cgit v1.2.1