Почему макет не исправляет пройденный класс? - PullRequest
0 голосов
/ 03 мая 2020

Я хочу проверить, инициализируется ли расширение класса tkinter.Tk правильными параметрами. Импорт работает правильно. Я могу использовать и main, и Gui, но я не понимаю, почему я получаю AssertionError: Expected 'Gui' to be called once. Called 0 times. с mocked. Это утверждение mocker.patch('bookmeister.gui.Gui') мне кажется правильным, если from bookmeister.gui import Gui работает.

from bookmeister.__main__ import main
from bookmeister.gui import Gui

def test_run(mocker):
    mocker.patch.object(Gui, 'mainloop')
    mocked = mocker.patch('bookmeister.gui.Gui')
    spy = mocker.spy(Gui, '__init__')
    main()
    mocked.assert_called_once_with('Bookstore Manager', '600x470')
    spy.assert_called_once_with('Bookstore Manager', '600x470')

Я также пытался использовать mocker.spy, но затем отображается другая ошибка.

AssertionError: Expected call: __init__('Bookstore Manager', '600x470') Actual call: __init__(<bookmeister.gui.Gui object .>, 'Bookstore Manager', '600x470')

Понятия не имею, как мне смоделировать <bookmeister.gui.Gui object .> в моем тесте.

Не могли бы вы объяснить, как я могу исправить свой код для проверки правильности инициализации?

...