Skip to content

fix(builder): escape slashes in credentials - #167

Open
awais-ur-rehman wants to merge 1 commit into
python-hyper:mainfrom
awais-ur-rehman:feat/escape-credential-slashes
Open

awais-ur-rehman wants to merge 1 commit into
python-hyper:mainfrom
awais-ur-rehman:feat/escape-credential-slashes

Conversation

@awais-ur-rehman

Copy link
Copy Markdown

Summary

URIBuilder.add_credentials('user', 'pass/word') currently emits an unescaped slash, so parsing the resulting URL moves part of the credentials and the intended hostname into the path. Escape slashes in both credential fields so they stay inside the authority, as required by RFC 3986 section 3.2.1, and test that serializing and parsing preserves the host, userinfo, and path.

Breaking changes

None.

Testing

  • Added regression cases fail before the fix: 3 failed, 5 passed.
  • python -m pytest --cov rfc3986 --cov-fail-under 100 tests/: 2917 passed, 100% coverage on Python 3.12.13 (1517 existing deprecation warnings).
  • black --check src/rfc3986 tests/, isort --check-only src/rfc3986 tests/, flake8 src/rfc3986, and git diff --check pass.
  • python tests/verify_types.py: 76.87% type completeness, above the required 75%.
  • python -m build --no-isolation: sdist and wheel built successfully (setuptools deprecation notices).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant