Do not require cloudpickle for PyPy (#892)
* Do not require cloudpickle for PyPy The cloudpickle package relies on CPython implementation details, and does not even import on PyPy: ``` ImportError while importing test module '/tmp/attrs/tests/test_3rd_party.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: /usr/lib/pypy3.8/importlib/__init__.py:127: in import_module return _bootstrap._gcd_import(name[level:], package, level) tests/test_3rd_party.py:7: in <module> import cloudpickle .tox/pypy3/lib/pypy3.8/site-packages/cloudpickle/__init__.py:4: in <module> from cloudpickle.cloudpickle import * # noqa .tox/pypy3/lib/pypy3.8/site-packages/cloudpickle/cloudpickle.py:57: in <module> from .compat import pickle .tox/pypy3/lib/pypy3.8/site-packages/cloudpickle/compat.py:13: in <module> from _pickle import Pickler # noqa: F401 E ModuleNotFoundError: No module named '_pickle' ``` Disable the dependency for PyPy and make the test handle missing cloudpickle gracefully. * Enable testing on pypy-3.8 * add a news entry Co-authored-by: Hynek Schlawack <hs@ox.cx>
This commit is contained in:
parent
ce50f40b52
commit
03dd7136cf
|
@ -22,7 +22,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "pypy-2.7", "pypy-3.7"]
|
||||
python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "pypy-2.7", "pypy-3.7", "pypy-3.8"]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Fixed the test suite on PyPy3.8 where cloudpickle does not work.
|
2
setup.py
2
setup.py
|
@ -50,7 +50,7 @@ EXTRAS_REQUIRE = {
|
|||
"docs": ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"],
|
||||
"tests_no_zope": [
|
||||
# For regression test to ensure cloudpickle compat doesn't break.
|
||||
"cloudpickle",
|
||||
'cloudpickle; python_implementation == "CPython"',
|
||||
# 5.0 introduced toml; parallel was broken until 5.0.2
|
||||
"coverage[toml]>=5.0.2",
|
||||
"hypothesis",
|
||||
|
|
|
@ -4,13 +4,16 @@
|
|||
Tests for compatibility against other Python modules.
|
||||
"""
|
||||
|
||||
import cloudpickle
|
||||
import pytest
|
||||
|
||||
from hypothesis import given
|
||||
|
||||
from .strategies import simple_classes
|
||||
|
||||
|
||||
cloudpickle = pytest.importorskip("cloudpickle")
|
||||
|
||||
|
||||
class TestCloudpickleCompat(object):
|
||||
"""
|
||||
Tests for compatibility with ``cloudpickle``.
|
||||
|
|
Loading…
Reference in New Issue