Почему не работает команда «печать» при использовании патча для пробного теста?Python

Программы на Python
Ответить
Anonymous
 Почему не работает команда «печать» при использовании патча для пробного теста?

Сообщение Anonymous »

В моем исходном коде та же проблема, но это более короткая версия с той же проблемой/
Вот код:

Код: Выделить всё

import unittest
from unittest.mock import patch
import io

def greet_user(name):
print(f"Hello, {name}!")

class TestGreetUser(unittest.TestCase):

@patch('sys.stdout', new_callable=io.StringIO)
def test_with_patch(self, mock_stdout):

greet_user("Alice")
print("OUTPUT WITH PATCH:")
print(mock_stdout.getvalue()) #trying to print what was on the console

def test_without_patch(self):

print("OUTPUT WITHOUT PATCH:")
greet_user("Alice")

if __name__ == '__main__':
unittest.main()
Вывод следующий:

Код: Выделить всё

.OUTPUT WITHOUT PATCH:
Hello, Alice!
.
----------------------------------------------------------------------
Ran 2 tests in 0.011s

OK
Почему я не получаю никакой пользы, когда пытаюсь сделать это с помощью патча ? Я понимаю, что при использовании патча вывод, выводимый на консоль, «перенаправляется» наock_stdout , но почему я не могу напечатать это значение?

Подробнее здесь: https://stackoverflow.com/questions/792 ... t-not-work
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»