10000 Move to non-deprecated interface for importlib-metadata (#334) · pytest-dev/pytest-randomly@ef72a3f · GitHub
[go: up one dir, main page]

Skip to content

Commit ef72a3f

Browse files
authored
Move to non-deprecated interface for importlib-metadata (#334)
Fixes #333.
1 parent 1f0ef49 commit ef72a3f

File tree

9 files changed

+36
-17
lines changed

9 files changed

+36
-17
lines changed

HISTORY.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
History
33
=======
44

5+
* Fix deprecation warning from importlib-metadata 3.9.0+.
6+
7+
Thanks to Dominic Davis-Foster for report in `Issue #333
8+
<https://github.com/pytest-dev/pytest-randomly/issue/333>`__.
9+
510
* Stop distributing tests to reduce package size. Tests are not intended to be
611
run outside of the tox setup in the repository. Repackagers can use GitHub's
712
tarballs per tag.

requirements/py36.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ attrs==20.3.0 \
1212
--hash=sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6 \
1313
--hash=sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700
1414
# via pytest
15+
backports.entry-points-selectable==1.0.2 ; python_version < "3.10" \
16+
--hash=sha256:1817925560c765efe73fb692c047fb007511388d53e6dbeec7bfcda391eb83ac \
17+
--hash=sha256:98b9fda50dab4f298f646bc7b717b6a3b90dd4d509015f1ce9e66b41a1330d46
18+
# via -r requirements.in
1519
execnet==1.8.0 \
1620
--hash=sha256:7a13113028b1e1cc4c6492b28098b3c6576c9dccc7973bfe47b342afadafb2ac \
1721
--hash=sha256:b73c5565e517f24b62dea8a5ceac178c661c4309d3aa0c3e420856c072c411b4
@@ -26,11 +30,11 @@ faker==6.6.3 \
2630
# via
2731
# -r requirements.in
2832
# factory-boy
29-
importlib-metadata==3.8.1 ; python_version < "3.8" \
33+
importlib-metadata==3.8.1 \
3034
--hash=sha256:eb83dfc8d87a64d42fb2904312d632bb8d57e47c5b435f8d4d5523d2b0efc3d0 \
3135
--hash=sha256:fc605f818ff2389df65d893ccefcd5310678c48c2855c42619464ed48556ff08
3236
# via
33-
# -r requirements.in
37+
# backports.entry-points-selectable
3438
# pluggy
3539
# pytest
3640
iniconfig==1.1.1 \

requirements/py37.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ attrs==20.3.0 \
1212
--hash=sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6 \
1313
--hash=sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700
1414
# via pytest
15+
backports.entry-points-selectable==1.0.2 ; python_version < "3.10" \
16+
--hash=sha256:1817925560c765efe73fb692c047fb007511388d53e6dbeec7bfcda391eb83ac \
17+
--hash=sha256:98b9fda50dab4f298f646bc7b717b6a3b90dd4d509015f1ce9e66b41a1330d46
18+
# via -r requirements.in
1519
execnet==1.8.0 \
1620
--hash=sha256:7a13113028b1e1cc4c6492b28098b3c6576c9dccc7973bfe47b342afadafb2ac \
1721
--hash=sha256:b73c5565e517f24b62dea8a5ceac178c661c4309d3aa0c3e420856c072c411b4
@@ -26,11 +30,11 @@ faker==6.6.3 \
2630
# via
2731
# -r requirements.in
2832
# factory-boy
29-
importlib-metadata==3.8.1 ; python_version < "3.8" \
33+
importlib-metadata==3.8.1 \
3034
--hash=sha256:eb83dfc8d87a64d42fb2904312d632bb8d57e47c5b435f8d4d5523d2b0efc3d0 \
3135
--hash=sha256:fc605f818ff2389df65d893ccefcd5310678c48c2855c42619464ed48556ff08
3236
# via
33-
# -r requirements.in
37+
# backports.entry-points-selectable
3438
# pluggy
3539
# pytest
3640
iniconfig==1.1.1 \

requirements/py38.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ attrs==20.3.0 \
1212
--hash=sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6 \
1313
--hash=sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700
1414
# via pytest
15+
backports.entry-points-selectable==1.0.2 ; python_version < "3.10" \
16+
--hash=sha256:1817925560c765efe73fb692c047fb007511388d53e6dbeec7bfcda391eb83ac \
17+
--hash=sha256:98b9fda50dab4f298f646bc7b717b6a3b90dd4d509015f1ce9e66b41a1330d46
18+
# via -r requirements.in
1519
execnet==1.8.0 \
1620
--hash=sha256:7a13113028b1e1cc4c6492b28098b3c6576c9dccc7973bfe47b342afadafb2ac \
1721
--hash=sha256:b73c5565e517f24b62dea8a5ceac178c661c4309d3aa0c3e420856c072c411b4

requirements/py39.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ attrs==20.3.0 \
1212
--hash=sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6 \
1313
--hash=sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700
1414
# via pytest
15+
backports.entry-points-selectable==1.0.2 ; python_version < "3.10" \
16+
--hash=sha256:1817925560c765efe73fb692c047fb007511388d53e6dbeec7bfcda391eb83ac \
17+
--hash=sha256:98b9fda50dab4f298f646bc7b717b6a3b90dd4d509015f1ce9e66b41a1330d46
18+
# via -r requirements.in
1519
execnet==1.8.0 \
1620
--hash=sha256:7a13113028b1e1cc4c6492b28098b3c6576c9dccc7973bfe47b342afadafb2ac \
1721
--hash=sha256:b73c5565e517f24b62dea8a5ceac178c661c4309d3aa0c3e420856c072c411b4

requirements/requirements.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
backports.entry-points-selectable ; python_version < "3.10"
12
factory_boy
23
faker
3-
importlib-metadata ; python_version < "3.8"
44
numpy
55
pytest
66
pytest-xdist

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ package_dir=
3232
py_modules = pytest_randomly
3333
include_package_data = True
3434
install_requires =
35-
importlib-metadata ; python_version < "3.8"
35+
backports.entry-points-selectable ; python_version < "3.10"
3636
pytest
3737
python_requires = >=3.6
3838
zip_safe = False

src/pytest_randomly.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
import argparse
22
import hashlib
33
import random
4-
import sys
54

5+
# if sys.version_info < (3, 10):
6+
from backports.entry_points_selectable import entry_points
67
from pytest import Collector, fixture
78

8-
if sys.version_info >= (3, 8):
9-
from importlib.metadata import entry_points
10-
else:
11-
from importlib_metadata import entry_points
12-
139
try:
1410
import xdist
1511
except ImportError:
@@ -150,7 +146,8 @@ def _reseed(config, offset=0):
150146

151147
if entrypoint_reseeds is None:
152148
entrypoint_reseeds = [
153-
e.load() for e in entry_points().get("pytest_randomly.random_seeder", [])
149+
e.load()
150+
for e in entry_points().select(group="pytest_randomly.random_seeder")
154151
]
155152
for reseed in entrypoint_reseeds:
156153
reseed(seed)

tests/test_pytest_randomly.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from types import SimpleNamespace
12
from unittest.mock import Mock
23

34
import pytest
@@ -675,10 +676,10 @@ def load(self):
675676
entry_points = []
676677

677678
def fake_entry_points():
678-
return {
679-
"pytest_randomly.random_seeder": entry_points,
680-
"ignore": lambda x: 1 / 0,
681-
}
679+
return SimpleNamespace(select=fake_select)
680+
681+
def fake_select(*, group):
682+
return entry_points
682683

683684
monkeypatch.setattr(pytest_randomly, "entry_points", fake_entry_points)
684685
reseed = Mock()

0 commit comments

Comments
 (0)
0