AttributeError для встроенных команд при вводе в Python? - PullRequest
0 голосов
/ 08 марта 2020

Мой код без кода:

def test_trial(self):
        print(__builtins__['input'])
        with patch.object(__builtins__, str(input), lambda: 'test', create=True):
            assert 1 == 1

Как вы видите, я пытаюсь протестировать функцию с входом в ней и хочу переопределить этот вход. Тем не менее, это не похоже на работу! Я получаю ошибку атрибута!

Я удалил свои пути к файлам и заменил их на ~. Все остальные мои тесты работают, в том числе и в этом файле. Сразу после этого я могу напечатать ввод, и он находит его в поле ввода. Я ударил AttributeError. Я удалил остальную часть диктов, чтобы не загромождать экран. Это встроенный диктат, и я могу физически видеть вклад, что, честно говоря, очень взволновало меня. Пожалуйста, помогите мне! Я использую conda env в коде VS, но использовал другой и не удалось. Добавление create=True не помогает. ПОЖАЛУЙСТА, ПОМОГИТЕ :( появляется встроенная функция ввода. Это означает, что она существует в dict.

Вот вывод:

<built-in function input> E
ERROR: test_trial (test_this_file.TestingAccounts)
Traceback (most recent call last):
  File "~", line 79, in test_trial
    with patch.object(__builtins__, str(input), lambda: 'test'):
  File "~/python3.7/site-packages/mock/mock.py", line 1394, in __enter__
    original, local = self.get_original()
  File "~/lib/python3.7/site-packages/mock/mock.py", line 1368, in get_original
    "{} does not have the attribute {!r}".format(target, name)
AttributeError: {'__name__': 'builtins', '__doc__':
...