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

Fix unicode errors (#7044) #7099

Conversation

ret2libc
Copy link
Contributor

Fix few errors related to Unicode decoding.

  • multipart forms with invalid utf-8 characters as data can cause a UnicodeDecodeError to be raised. This should be raised as ValueError, like what is done in other parts of the code base.
  • HTTP request parser (pure-python) tries to decode the header name with utf-8/xmlcharrefreplace, which cannot decode bytes such as \xd9.

I don't think so.

  • I think the code is well written
  • Unit tests for the changes exist
  • Documentation reflects the changes
  • If you provide code modification, please add yourself to CONTRIBUTORS.txt
    • The format is <Name> <Surname>.
    • Please keep alphabetical order, the file is sorted by names.
  • Add a new news fragment into the CHANGES folder
    • name it <issue_id>.<type> for example (588.bugfix)
  • if you don't have an issue_id change it to the pr id after creating the pr
    • ensure type is one of the following: * .feature: Signifying a new feature. * .bugfix: Signifying a bug fix. * .doc: Signifying a documentation improvement. * .removal: Signifying a deprecation or removal of public API.
  • .misc: A ticket has been closed, but it is not of interest to users.
  • Make sure to use full sentences with correct case and punctuation, for example: "Fix issue with non-ascii contents in doctest text files."

(cherry picked from commit bce6e3c)

What do these changes do?

Are there changes in behavior for the user?

Related issue number

Checklist

  • I think the code is well written
  • Unit tests for the changes exist
  • Documentation reflects the changes
  • If you provide code modification, please add yourself to CONTRIBUTORS.txt
    • The format is <Name> <Surname>.
    • Please keep alphabetical order, the file is sorted by names.
  • Add a new news fragment into the CHANGES folder
    • name it <issue_id>.<type> for example (588.bugfix)
    • if you don't have an issue_id change it to the pr id after creating the pr
    • ensure type is one of the following:
      • .feature: Signifying a new feature.
      • .bugfix: Signifying a bug fix.
      • .doc: Signifying a documentation improvement.
      • .removal: Signifying a deprecation or removal of public API.
      • .misc: A ticket has been closed, but it is not of interest to users.
    • Make sure to use full sentences with correct case and punctuation, for example: "Fix issue with non-ascii contents in doctest text files."

@psf-chronographer psf-chronographer bot added the bot:chronographer:provided There is a change note present in this PR label Nov 22, 2022
@ret2libc ret2libc mentioned this pull request Nov 22, 2022
5 tasks
Copy link
Member

@Dreamsorcerer Dreamsorcerer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you disallowed maintainers write access so I can't update it, but looks like you need to drop an argument from the tests to get them working.

tests/test_multipart.py Outdated Show resolved Hide resolved
Fix few errors related to Unicode decoding.
* multipart forms with invalid utf-8 characters as data can cause a
UnicodeDecodeError to be raised. This should be raised as ValueError,
like what is done in other parts of the code base.
* HTTP request parser (pure-python) tries to decode the header name with
utf-8/xmlcharrefreplace, which cannot decode bytes such as `\xd9`.

I don't think so.

<!-- Are there any issues opened that will be resolved by merging this
change? -->

- [x] I think the code is well written
- [x] Unit tests for the changes exist
- [ ] ~Documentation reflects the changes~
- [ ] If you provide code modification, please add yourself to
`CONTRIBUTORS.txt`
  * The format is &lt;Name&gt; &lt;Surname&gt;.
  * Please keep alphabetical order, the file is sorted by names.
- [x] ~Add a new news fragment into the `CHANGES` folder~
  * name it `<issue_id>.<type>` for example (588.bugfix)
* if you don't have an `issue_id` change it to the pr id after creating
the pr
  * ensure type is one of the following:
    * `.feature`: Signifying a new feature.
    * `.bugfix`: Signifying a bug fix.
    * `.doc`: Signifying a documentation improvement.
    * `.removal`: Signifying a deprecation or removal of public API.
* `.misc`: A ticket has been closed, but it is not of interest to users.
* Make sure to use full sentences with correct case and punctuation, for
example: "Fix issue with non-ascii contents in doctest text files."

(cherry picked from commit bce6e3c)
@ret2libc ret2libc force-pushed the patchback/backports/3.9/bce6e3c7324f53342bcd225103771c509fc4a67f/pr-7044 branch from 7f247f3 to 70a56f6 Compare November 22, 2022 20:45
@codecov
Copy link

codecov bot commented Nov 22, 2022

Codecov Report

Merging #7099 (70a56f6) into 3.9 (7e1c031) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##              3.9    #7099   +/-   ##
=======================================
  Coverage   97.31%   97.31%           
=======================================
  Files         103      103           
  Lines       30248    30265   +17     
  Branches     3760     3763    +3     
=======================================
+ Hits        29435    29453   +18     
+ Misses        618      617    -1     
  Partials      195      195           
Flag Coverage Δ
CI-GHA 97.21% <100.00%> (+<0.01%) ⬆️
OS-Linux 96.86% <100.00%> (+<0.01%) ⬆️
OS-Windows 94.33% <100.00%> (+<0.01%) ⬆️
OS-macOS 96.44% <100.00%> (-0.01%) ⬇️
Py-3.10.8 96.91% <100.00%> (+<0.01%) ⬆️
Py-3.11.0 96.33% <100.00%> (+<0.01%) ⬆️
Py-3.7.15 96.67% <100.00%> (+<0.01%) ⬆️
Py-3.7.9 94.18% <100.00%> (+<0.01%) ⬆️
Py-3.8.10 94.10% <100.00%> (ø)
Py-3.8.14 96.58% <100.00%> (+<0.01%) ⬆️
Py-3.9.13 94.10% <100.00%> (ø)
Py-3.9.14 96.33% <100.00%> (-0.01%) ⬇️
Py-3.9.15 96.57% <100.00%> (+<0.01%) ⬆️
Py-pypy7.3.9 96.17% <100.00%> (+<0.01%) ⬆️
VM-macos 96.44% <100.00%> (-0.01%) ⬇️
VM-ubuntu 96.86% <100.00%> (+<0.01%) ⬆️
VM-windows 94.33% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
aiohttp/http_parser.py 97.51% <ø> (ø)
aiohttp/multipart.py 96.81% <100.00%> (+0.02%) ⬆️
tests/test_http_parser.py 99.08% <100.00%> (+<0.01%) ⬆️
tests/test_multipart.py 100.00% <100.00%> (ø)
tests/test_client_functional.py 98.52% <0.00%> (+0.04%) ⬆️

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@ret2libc
Copy link
Contributor Author

@Dreamsorcerer are those errors in macos and windows caused by me?

@Dreamsorcerer Dreamsorcerer enabled auto-merge (squash) November 23, 2022 19:42
@Dreamsorcerer Dreamsorcerer merged commit 640bb1e into aio-libs:3.9 Nov 23, 2022
@Dreamsorcerer
Copy link
Member

@Dreamsorcerer are those errors in macos and windows caused by me?

No, CI is passed. Those 2 are still marked experimental.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot:chronographer:provided There is a change note present in this PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants