Skip to content

gh-127146: Mark test_bz2 tests with requires_subprocess - #127562

Closed
hoodmane wants to merge 1 commit into
python:mainfrom
hoodmane:bz2-tests-requires-subprocess
Closed

gh-127146: Mark test_bz2 tests with requires_subprocess#127562
hoodmane wants to merge 1 commit into
python:mainfrom
hoodmane:bz2-tests-requires-subprocess

Conversation

@hoodmane

@hoodmanehoodmane commented Dec 3, 2024

Copy link
Copy Markdown
Contributor

@freakboy3742

Copy link
Copy Markdown
Contributor

This doesn't seem quite right - iOS and Android don't support subprocesses, but have no problem implementing the bz2 tests. How are you seeing this problem manifest?

@hoodmane

Copy link
Copy Markdown
ContributorAuthor
Traceback (most recent call last):
File "/home/rchatham/cpython/Lib/test/test_bz2.py", line 252, in testWrite
self.assertEqual(ext_decompress(f.read()), self.TEXT)
~~~~~~~~~~~~~~^^^^^^^^^^
File "/home/rchatham/cpython/Lib/test/test_bz2.py", line 34, in ext_decompress
return subprocess.check_output(['bunzip2'], input=data)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/rchatham/cpython/Lib/subprocess.py", line 472, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**kwargs).stdout
^^^^^^^^^
File "/home/rchatham/cpython/Lib/subprocess.py", line 554, in run
with Popen(*popenargs, **kwargs) as process:
~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/home/rchatham/cpython/Lib/subprocess.py", line 824, in __init__
raise OSError(
errno.ENOTSUP, f"{sys.platform} does not support processes."
)
OSError: [Errno 138] emscripten does not support processes.

@hoodmane

Copy link
Copy Markdown
ContributorAuthor

Looking at ext_decompress:

defext_decompress(data):
globalhas_cmdline_bunzip2ifhas_cmdline_bunzip2isNone:
has_cmdline_bunzip2=bool(shutil.which('bunzip2'))
ifhas_cmdline_bunzip2:
returnsubprocess.check_output(['bunzip2'], input=data)
else:
returnbz2.decompress(data)

Looks like the problem is that shutil.which('bunzip2') returns something truthy for some reason.

@hoodmane

Copy link
Copy Markdown
ContributorAuthor
$ ./python.sh -c "import shutil; print(shutil.which('bunzip2'))"
/usr/bin/bunzip2

Okay the problem is that in node_entry.mjs I should do one or both of:

  1. not propagate the PATH environment variable or
  2. not mount the /usr directory.

@hoodmane

Copy link
Copy Markdown
ContributorAuthor

Thanks @freakboy3742!

@hoodmanehoodmane closed this Dec 3, 2024
@hoodmane
hoodmane deleted the bz2-tests-requires-subprocess branch December 3, 2024 14:24
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting core reviewskip newstestsTests in the Lib/test dir

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@hoodmane@freakboy3742