Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

call .to_s on passed body #1075

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

HoneyryderChuck
Copy link

👋 ,

I'm the maintainer of httpx, an http library which maintains an adapter for webmock. Recently, an issue was reported about multipart requests failing when the webmock adapter is turned on (webmock does not support matching multipart payloads, that was an "allowed" request). I patched it by delegating ==, used in the assertion functions, to the raw body, instead of expanding the request signature into a string.

Once I released it, I got two new issues, as that patch broke their integrations. I narrowed it down to webmock expecting the body of the request signature to be a string.

This is probably a reasonable assumption, considering that this code is quite old, but then again most adapters are maintained in repo, so perhaps this expectation has been forced in the adapters instead. Nevertheless, I'd propose that, instead of forcing client request bodies to delegate all methods to the underlying string (if there is one), webmock instead converts it to a string, and then applies its logic.

LMK what you think. I still have to find a reasonable patch on my side to work around this issue for older versions of webmock, so this forward patch is not really a blocker.

for the clients which wrap the request body
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