gh-94808: add test coversage for PyFile_FromFd by fatelei · Pull Request #138866 · python/cpython
gh-94808: add test coversage for PyFile_FromFd
What I fixed
• Corrected PyFile_FromFd in Objects/fileobject.c to accept optional NULL strings for encoding, errors, and newline by switching the call format to use optional string specifiers:
• was "isisssO"
• now "isizzzO"
This fixes the bug where passing NULL crashed or misrouted arguments.
Unit tests added
• Extended Lib/test/test_capi/test_file.py:
• Added coverage for default buffering with buffering=-1:
◦ "rb" returns a _io.BufferedReader
◦ "r" returns a _io.TextIOWrapper
• Added a closefd=True behavior test (test_pyfile_fromfd_closefd) that ensures the underlying fd is closed when the returned object is closed (verifies EBADF on a second os.close).