Pytest, setup_method и макеты на уровне класса - PullRequest
0 голосов
/ 01 октября 2019

У меня есть тест, который изначально выглядел примерно так:

@mock.patch('serial.Serial')
class TestApi:
  def test_something(self, mock_serial):
    # The Gadget class opens a serial port with serial.Serial()
    gadget = Gadget('dummy')
    mock_serial.assert_called_with('dummy')

Это прекрасно работает ... но мне понадобится тот же gadget объект в любом другом тесте, поэтому яхотел переместить создание объекта в setup_method метод, который pytest будет вызывать перед каждым тестом. Например:

@mock.patch('serial.Serial')
class TestApi:
  def setup_method(self):
    # The Gadget class opens a serial port with serial.Serial()
    self.gadget = Gadget('dummy')

  def test_something(self, mock_serial):
    mock_serial.assert_called_with('dummy')

Похоже, что при вызове setup_method макеты не действуют, поэтому вышеприведенное не будет выполнено с:

E           serial.serialutil.SerialException: [Errno 2] could not open port dummy: [Errno 2] No such file or directory: 'dummy'

Есть ли способиспользовать макеты уровня класса из setup_method?

...