gh-91133: tempfile.TemporaryDirectory: fix symlink bug in cleanup #99930
+73
−14
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.


This PR fixes issue gh-91133, in which
TemporaryDirectory.cleanupcould try to fix permissions when deleting a symlink, but accidentally fix permissions of the target of the symlink instead.(It also changes the
test_flagstest case so it doesn't leave behindNOUNLINKfiles when the test fails, which is just annoying when working on any change to theTemporaryDirectorycode.)Compatibility: There could conceivably be code out there relying on
TemporaryDirectory.cleanupmodifying permissions on files outside the tempdir being cleaned up, which the fixed code will no longer do.Regarding the PR checks: "Ubuntu SSL tests with OpenSSL (3.0.7)" is failing due to a network error (instability, I assume), and the CLA Signing bot updated its comment when I signed the CLA, but not its check status. Not sure how to proceed.