Bug 47288

Summary: requests не поддерживает Basic-аутентификацию с символами вне кодировки latin-1
Product: Sisyphus Reporter: Artem Varaksa <varaksaaa>
Component: python3-module-requestsAssignee: Alexey Shabalin <shaba>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: shaba, slev
Version: unstable   
Hardware: x86_64   
OS: Linux   
See Also: https://github.com/psf/requests/issues/1926
Attachments:
Description Flags
Traceback none

Description Artem Varaksa 2023-08-18 14:43:07 MSK
Created attachment 14152 [details]
Traceback

Описание ошибки
===============

1. $ python3 -c "import requests; requests.get('http://example.com', auth=('логин', 'пароль'))"


Фактический результат: Выводится ошибка (Traceback - во вложении):

> UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-11: ordinal not in range(256)


Ожидаемый результат: Ошибки кодировки нет (возможна ошибка авторизации и т. д.).


Дополнительно
=============

curl работает:

$ curl 'http://example.org' -u "логин:пароль"


Ошибка в upstream: https://github.com/psf/requests/issues/1926
-> Проблема в разночтении деталей спецификаций.
-> Закрыта с предложением создавать Basic Auth header самостоятельно.


Данная ошибка вызывает проблему при попытке использования Basic-аутентификации, как минимум, в:

* Ansible: https://github.com/ansible/ansible/issues/21183

* python3-module-winrm:

$ python3 -c "import winrm; s = winrm.Session('http://example.org', auth=('логин', 'пароль')); r = s.run_cmd('ipconfig', ['/all'])"

Воспроизводимость
=================

Воспроизводится на виртуальных машинах:

[sisyphus]
python3-module-requests-2.31.0-alt1.noarch
python3-module-winrm-0.4.1-alt2.noarch
curl-8.2.1-alt1.x86_64

kworkstation-10.1-x86-64
education-10.1-x86-64
education-10.1-x86-64-kde
workstation-10.1-x86-64
server-10.1-x86-64
Comment 1 Artem Varaksa 2023-08-18 14:49:54 MSK
Воспроизводится и в p10 на виртуальных машинах:

[p10]
python3-module-requests-2.25.1-alt2.noarch
python3-module-winrm-0.4.1-alt1.noarch
curl-8.1.0-alt2.x86_64

kworkstation-10.1-x86-64
education-10.1-x86-64
education-10.1-x86-64-kde
workstation-10.1-x86-64
server-10.1-x86-64


Примечание: более точная ошибка, соответствующая длине "логин":
> UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-4: ordinal not in range(256)