getpass в pytest return OSError: чтение из стандартного ввода во время захвата вывода - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь написать тест в pytest, чтобы передать пароль с getpass, но я получаю эту ошибку:

OSError: reading from stdin while output is captured

вот моя функция:

def test_my_password_check(monkeypatch):   
    password = 'pytestpassword'
    monkeypatch.setattr('getpass.getpass', lambda: password)
    update_passwords()
    assert keyring.get_password('testaddress', 'testusername') == password

Я уже пробую с:

import mock
@mock.patch("getpass.getpass")
def test_username_password(getpass):
    password = 'pytestpassword'
    getpass.return_value = "xxx"
    update_passwords()
    assert keyring.get_password('testaddress', 'testusername') == password

даже с from unittest.mock import patch или update_passwords.getpass = lambda: password

Все это с одной и той же ошибкой. Что мне не хватает? Спасибо!!

...