Skip to content

Commit 3beb8d5

Browse files
committed
Simplify test_importlib_resources
Signed-off-by: Cristian Le <[email protected]>
1 parent e39cf5a commit 3beb8d5

File tree

1 file changed

+32
-94
lines changed

1 file changed

+32
-94
lines changed

tests/test_editable.py

+32-94
Original file line numberDiff line numberDiff line change
@@ -218,114 +218,52 @@ def test_direct_import(monkeypatch, tmp_path, editable, editable_mode, isolated)
218218
@pytest.mark.configure
219219
@pytest.mark.integration
220220
@pytest.mark.parametrize(
221-
("editable", "editable_mode", "check"),
221+
("editable", "editable_mode"),
222222
[
223-
# Without editable
224-
(False, "", "isinstance(files(pkg), pathlib.Path)"),
225-
(False, "", "any(str(x).endswith('.so') for x in files(pkg).iterdir())"),
226-
(False, "", "isinstance(files(pkg.sub_a), pathlib.Path)"),
227-
(
228-
False,
229-
"",
230-
"any(str(x).endswith('.so') for x in files(pkg.sub_a).iterdir())",
231-
),
232-
(False, "", "isinstance(files(pkg.sub_b), pathlib.Path)"),
233-
(
234-
False,
235-
"",
236-
"any(str(x).endswith('.so') for x in files(pkg.sub_b).iterdir())",
237-
),
238-
(False, "", "isinstance(files(pkg.sub_b.sub_c), pathlib.Path)"),
239-
(
240-
False,
241-
"",
242-
"any(str(x).endswith('.so') for x in files(pkg.sub_b.sub_c).iterdir())",
243-
),
244-
(False, "", "isinstance(files(pkg.sub_b.sub_d), pathlib.Path)"),
245-
(
246-
False,
247-
"",
248-
"any(str(x).endswith('.so') for x in files(pkg.sub_b.sub_d).iterdir())",
249-
),
250-
# Editable redirect
251-
(True, "redirect", "isinstance(files(pkg), pathlib.Path)"),
252-
pytest.param(
253-
True,
254-
"redirect",
255-
"any(str(x).endswith('.so') for x in files(pkg).iterdir())",
256-
marks=pytest.mark.xfail,
257-
),
258-
(True, "redirect", "isinstance(files(pkg.sub_a), pathlib.Path)"),
259-
pytest.param(
260-
True,
261-
"redirect",
262-
"any(str(x).endswith('.so') for x in files(pkg.sub_a).iterdir())",
263-
marks=pytest.mark.xfail,
264-
),
265-
(True, "redirect", "isinstance(files(pkg.sub_b), pathlib.Path)"),
266-
pytest.param(
267-
True,
268-
"redirect",
269-
"any(str(x).endswith('.so') for x in files(pkg.sub_b).iterdir())",
270-
marks=pytest.mark.xfail,
271-
),
272-
(True, "redirect", "isinstance(files(pkg.sub_b.sub_c), pathlib.Path)"),
223+
(False, ""),
273224
pytest.param(
274225
True,
275226
"redirect",
276-
"any(str(x).endswith('.so') for x in files(pkg.sub_b.sub_c).iterdir())",
277227
marks=pytest.mark.xfail,
278228
),
279-
(True, "redirect", "isinstance(files(pkg.sub_b.sub_d), pathlib.Path)"),
280-
pytest.param(
281-
True,
282-
"redirect",
283-
"any(str(x).endswith('.so') for x in files(pkg.sub_b.sub_d).iterdir())",
284-
marks=pytest.mark.xfail,
285-
),
286-
# Editable inplace
287-
(True, "inplace", "isinstance(files(pkg), pathlib.Path)"),
288-
(True, "inplace", "any(str(x).endswith('.so') for x in files(pkg).iterdir())"),
289-
(True, "inplace", "isinstance(files(pkg.sub_a), pathlib.Path)"),
290-
(
291-
True,
292-
"inplace",
293-
"any(str(x).endswith('.so') for x in files(pkg.sub_a).iterdir())",
294-
),
295-
(True, "inplace", "isinstance(files(pkg.sub_b), pathlib.Path)"),
296-
(
297-
True,
298-
"inplace",
299-
"any(str(x).endswith('.so') for x in files(pkg.sub_b).iterdir())",
300-
),
301-
(True, "inplace", "isinstance(files(pkg.sub_b.sub_c), pathlib.Path)"),
302-
(
303-
True,
304-
"inplace",
305-
"any(str(x).endswith('.so') for x in files(pkg.sub_b.sub_c).iterdir())",
306-
),
307-
(True, "inplace", "isinstance(files(pkg.sub_b.sub_d), pathlib.Path)"),
308-
(
309-
True,
310-
"inplace",
311-
"any(str(x).endswith('.so') for x in files(pkg.sub_b.sub_d).iterdir())",
312-
),
229+
(True, "inplace"),
313230
],
314231
)
315-
def test_importlib_resources(
316-
monkeypatch, tmp_path, editable, editable_mode, isolated, check
317-
):
232+
def test_importlib_resources(monkeypatch, tmp_path, editable, editable_mode, isolated):
318233
_setup_package_for_editable_layout_tests( # type: ignore[no-untyped-call]
319234
monkeypatch, tmp_path, editable, editable_mode, isolated
320235
)
321236
isolated.execute(
322237
textwrap.dedent(
323-
f"""
238+
"""
239+
from importlib import import_module
324240
from importlib.resources import files
325-
from importlib.readers import MultiplexedPath
326-
import pkg
327-
import pathlib
328-
assert {check}
241+
from pathlib import Path
242+
243+
def is_extension(path):
244+
for ext in (".so", ".pyd"):
245+
if ext in path.suffixes:
246+
return True
247+
return False
248+
249+
def check_pkg(pkg_name):
250+
try:
251+
pkg = import_module(pkg_name)
252+
pkg_root = files(pkg)
253+
print(f"pkg_root: [{type(pkg_root)}] {pkg_root}")
254+
pkg_files = list(pkg_root.iterdir())
255+
for path in pkg_files:
256+
print(f"path: [{type(path)}] {path}")
257+
assert any(is_extension(path) for path in pkg_files if isinstance(path, Path))
258+
except Exception as err:
259+
msg = f"Failed in {str(pkg)}"
260+
raise RuntimeError(msg) from err
261+
262+
check_pkg("pkg")
263+
check_pkg("pkg.sub_a")
264+
check_pkg("pkg.sub_b")
265+
check_pkg("pkg.sub_b.sub_c")
266+
check_pkg("pkg.sub_b.sub_d")
329267
"""
330268
)
331269
)

0 commit comments

Comments
 (0)