Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.Suggestion cannot be applied right now. Please check back later.
Calling
URL.get_decoded_url(lazy=True)caches a wrapper without decoding its fields. A later eagerget_decoded_url()returns that wrapper without validation, so an invalid UTF-8 path such ashttps://example.com/%FFsucceeds even though a fresh eager call raisesUnicodeDecodeError.Validate the cached wrapper's fields on eager calls, preserving its identity and lazy access. Two regression tests cover invalid UTF-8 across URL components, repeated eager failures and reuse of a valid cached wrapper.
Validation on Windows/Python3.13.1: 137 tests passed, including doctests and Hypothesis tests, with one existing Hypothesis deprecation warning. Both new regression methods fail before the fix. Black21.7b0 checks and
git diff --checkpass. Modern Flake8 reports the same ten diagnostics on the patch and unchanged source. The full tox matrix and other Python versions remain unverified.